Как можно создать предупреждение компилятора (в модели #error, за исключением предупреждения) нарочно в Visual C++, который обнаружится в Ошибочном Списке с корректным файлом и номером строки?
GCC и другие компиляторы предлагают #warning, но компилятор MSVC не делает.
"Решение" по http://support.microsoft.com/kb/155196 не анализирует в ошибочном списке Visual Studio.
Просто добавьте это в ваш общий включаемый файл (например, stdafx.h):
#define __STR2__(x) #x
#define __STR1__(x) __STR2__(x)
#define __LOC__ __FILE__ "("__STR1__(__LINE__)") : warning W0000: #pragma VSWARNING: "
#define VSWARNING(x) message(__LOC__ x)
Используйте это как:
#pragma VSWARNING("Is this correct?!?!")
Компилятор выведет:
c:\dir\file.h(11) : warning W0000: #pragma VSWARNING: Is this correct?!?!
А вкладка Error List покажет предупреждение в таблице:
Type Num Description File Line
[Warning] 13 warning W0000: #pragma VSWARNING: Is this correct?!?! file.h 11
точно как обычное предупреждение компилятора Visual Studio.
Это своего рода глупый ответ на ваш вопрос, но часто, если мне нужно добавить преднамеренное предупреждение, я набираю что-то вроде:
#pragma asdfkljasdlfjasklfjklasjdfklj
, что выдает Unknown Pragma
предупреждение с номером строки и всем остальным.