在C ++ 0x中有类似static_assert的东西,它会发出警告而不是错误吗?

时间:2011-05-24 08:56:00

标签: c++ c++11 static-assert

我想对可能效率低下但不一定不正确的用法这样做。

3 个答案:

答案 0 :(得分:6)

没有

断言失败表示阻止程序完成的问题(执行[run-time assertions]或compilation [static assertions])。

事实上,只要发出诊断(包括继续执行),就允许执行任何操作。但是,在实践中,主流工具链的行为几乎都是一样的:它们会出错。你当然不能将它们破解为用户定义的东西。

答案 1 :(得分:3)

为此目的,在C ++ 0x中引入了属性。有关示例,请参阅http://docwiki.embarcadero.com/RADStudio/en/C%2B%2B0x_attribute_deprecated

答案 2 :(得分:0)

不是标准,不是。您可以在许多编译器中找到#warning,但在大多数情况下这确实不一样。