Неужели недоработка компилятора?
Никак не могу скомпилировать следующий модуль в Visual Studio 2003 (SP1) с режимом /Za компилятора. Без режима /Za компилируется нормально.
В чем ошибка?
Никаких дополнительных инструкций (language extensions) модуль не использует.
Вот какое сообщение выдает компилятор:
Compiling...
EM.CPP
EM.CPP(236) : error C2059: syntax error : ';'
EM.CPP(243) : error C2059: syntax error : '='
EM.CPP(279) : error C2059: syntax error : ')'
EM.CPP(286) : error C2059: syntax error : ')'
Build log was saved at "file://e:\nichael\projects\cpp\ERASE21\TEST\Debug\BuildLog.htm"
test - 4 error(s), 0 warning(s)
---------------------- Done ----------------------
Build: 0 succeeded, 1 failed, 0 skipped
P.S. В iso646.h есть макрос с таким именем. Может, как-то влияет?
Код:
#define compl ~
Вот только не пойму , откуда берется хэдер iso646.h
Его вроде нигде в заголовочном файле нет.
И в файле <stdio.h> он также не включается.
Хотя если этот хэдер входит в состав CRT, почему без /Za все компилируется? Может для опции /Za используется одна версия CRT, в остальных случаях - другая?
Находится в настройках здесь: С/С++ -> Advanced -> Show Includes
Ни в том, ни в другом нет ни определения compl, ни макроса compl.
???
Каков может быть вывод?