Intentional compiler warnings for Visual C++ that appear in Error List?
How can you create a compiler warning (in the model of #error, except as a warning) on purpose in Visual C++ that will show up on the Error List with the correct file and line number?
开发者_运维技巧GCC and other compilers offer #warning, but the MSVC compiler does not.
The "solution" at http://support.microsoft.com/kb/155196 does not parse in the Visual Studio error list.
Just add this to your common include file (ex, 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)
Use this like:
#pragma VSWARNING("Is this correct?!?!")
The compiler will output:
c:\dir\file.h(11) : warning W0000: #pragma VSWARNING: Is this correct?!?!
And the Error List tab will show the warning nicely in the table:
Type Num Description File Line
[Warning] 13 warning W0000: #pragma VSWARNING: Is this correct?!?! file.h 11
exactly like a normal Visual Studio compiler warning.
This is kind of a silly answer to your question, but often, if I need to add an intentional warning, I will type something like:
#pragma asdfkljasdlfjasklfjklasjdfklj
which issues a Unknown Pragma
warning with line number and all.
精彩评论