6.7.12 静态断言
语法
- 静态断言声明有两种形式:
c
static_assert(constant-expression, string-literal);
static_assert(constant-expression);1
2
2
约束
- 该常量表达式比较结果必须不等于
0。
语义
这里要求的常量表达式必须是整数常量表达式。
若该表达式比较结果不等于
0,则这条声明没有任何效果。若该表达式比较结果等于
0,则违反约束,且实现必须产生诊断。若写了字符串字面量,诊断消息应包含该字符串文本。
NOTE
这是一条翻译期规则。它的用途不是运行时保护,而是让程序在进入链接或运行前就暴露结构布局、常量关系、平台假设等错误。