C2X标准中遇到未知属性时,实现需执行何种操作?
C2X属性说明符序列:未识别属性的处理规则
C2X引入的属性说明符序列包含以下几种形式:
- 标准属性:例如
[[fallthrough]] - 带命名空间的属性:例如
[[gnu::unused]] - 带参数的标准属性:例如
[[deprecated("reason")]] - 同时带命名空间和参数列表的属性:例如
[[gnu::nonnull(1)]]
针对“实现遇到无法识别的属性时如何处理”的问题,根据C2X标准的规定:
实现必须忽略无法识别的属性,不能将其视为编译错误终止程序构建;但同时,实现**可以选择输出诊断信息(如警告)**来提示开发者存在未被识别的属性。
内容的提问来源于stack exchange,提问作者Madagascar
相关产品推荐
相关产品推荐

