我想对可能效率低下但不一定不正确的用法这样做。
答案 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
,但在大多数情况下这确实不一样。