Lig*_*ica 6

没有.

断言失败表示阻止程序完成的问题(执行[运行时断言]或编译[静态断言]).

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

  • @Tomalak,@ Navaw - 虽然,如果我可以沉迷于一些语言律师,如果编译器遇到格式错误的代码(包括失败的`static_assert`),标准从不要求编译停止 - 只有诊断必须发出消息.在此之后,编译器可以随意做任何事情,包括完成编译. (5认同)

vin*_*nes 3

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