В gcc я могу делать предупреждения во время компиляции так:
#if !defined(_SOME_FEATURE_) #warning _SOME_FEATURE_ not defined-- be careful! #endif
Но в Visual Studio это не работает. Есть ли альтернативный синтаксис для #warning?
Ближайшим эквивалентом будет #pragma message или, возможно, #error (последний останавливает компиляцию, первый просто выводит указанное сообщение об ошибке).
#pragma message
#error
Использование #pragma message("Some message")
#pragma message("Some message")
Здесь есть хорошая статья о том, как добиться эффекта, подобного #warning в visual studio:
http://goodliffe.blogspot.co.uk/2009/07/c-how-to-say-warning-to-visual-studio-c.html
Редактировать: Вот соответствующий раздел по ссылке выше, однако я рекомендую прочитать статью.
#define STRINGIZE_HELPER(x) #x #define STRINGIZE(x) STRINGIZE_HELPER(x) #define WARNING(desc) message(__FILE__ "(" STRINGIZE(__LINE__) ") : Warning: " #desc) // usage: #pragma WARNING(FIXME: Code removed because...)
Еще одна мысль - это время компиляции в стиле шаблона. Boost имеет полный набор из них, если вы хотите проверить ошибки кода времени компиляции.
#pragma WEIRD_VALUES_HERE
- это способ, которым я всегда видел это. У M $, вероятно, где-то есть прагмы на их сайте.