命名空间
变体
操作

static_assert

来自 cppreference.cn
< c‎ | error
定义于头文件 <assert.h>
#define static_assert _Static_assert
(始于 C11)
(C23 中移除)

这个便利宏展开为关键字 _Static_assert

内容

[编辑] 示例

#include <assert.h>
 
int main(void)
{
    static_assert(2 + 2 == 4, "2+2 isn't 4");   // well-formed
 
    static_assert(sizeof(int) < sizeof(char),   // compile-time error
                  "this program requires that int is less than char");
}

[编辑] 注释

自 C23 起,static_assert 本身就是一个关键字,它也可能是一个预定义的宏,因此 <assert.h> 不再提供它。

[编辑] 参考文献

  • C23 标准 (ISO/IEC 9899:2024)
  • 7.2/3 诊断 <assert.h> (页码:待定)
  • C17 标准 (ISO/IEC 9899:2018)
  • 7.2/3 诊断 <assert.h> (页码:135)
  • C11 标准 (ISO/IEC 9899:2011)
  • 7.2/3 诊断 <assert.h> (页码:186)

[编辑] 参见

C++ 文档 关于 静态断言