Преднамеренные предупреждения компилятора для Visual C ++, которые появляются в списке ошибок? - PullRequest
8 голосов
/ 02 июля 2010

Как вы можете специально создать предупреждение компилятора (в модели #error, кроме как предупреждение) в Visual C ++, которое будет отображаться в списке ошибок с правильным файлом и номером строки?

GCC и другие компиляторы предлагают #warning, а компилятор MSVC - нет.

«Решение» на http://support.microsoft.com/kb/155196 не анализируется в списке ошибок Visual Studio.

Ответы [ 2 ]

11 голосов
/ 02 июля 2010

Просто добавьте это к вашему общему включаемому файлу (например, 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?!?!

А на вкладке Список ошибок будет красиво показано предупреждение в таблице:

Type       Num   Description                                             File    Line
[Warning]  13    warning W0000: #pragma VSWARNING: Is this correct?!?!   file.h  11

точно так же, как обычное предупреждение компилятора Visual Studio.

1 голос
/ 02 июля 2010

Это глупый ответ на ваш вопрос, но часто, если мне нужно добавить преднамеренное предупреждение, я набираю что-то вроде:

#pragma asdfkljasdlfjasklfjklasjdfklj

, которое выдает предупреждение Unknown Pragma со строкойномер и все.

...