在Visual Studio 2008上满足某个条件时,有没有办法故意触发编译错误?
答案 0 :(得分:9)
您可以使用#error预处理器功能。
你可以这样使用它:
#ifdef WIN32
... code for windows
#else
#error only windows is supported
#endif
答案 1 :(得分:2)
在C ++中,您可以使用以下宏来在指定的常量条件为false时导致编译时断言
#define COMPILE_ASSERT(expr) extern int __assertutil[(expr) != 0]
COMPILE_ASSERT(42 != 8); // Fine
COMPILE_ASSERT(42 == 8); // Error
这是有效的,因为在表达式为false的情况下,它的常量值为0. C ++中的数组的常量大小不能为0,这会导致编译错误。
答案 2 :(得分:2)
compiler directive #error?
怎么样?答案 3 :(得分:0)
有语言特定的预处理器指令。在C#中:
#define DEBUG class MainClass {
static void Main()
{
#if DEBUG
#error DEBUG is defined
#endif
}
}
来自MSDN。
答案 4 :(得分:0)
int i =(float)(5.0);
答案 5 :(得分:0)
我想知道你是否正在寻找一种在编译之前验证源代码的方法。如果是这样,您可以使用预构建步骤并使其失败(使用0以外的代码退出)以中止编译。