程序异常负责报告运行时发生的错误。如果我们能在编译时发现错误,显然效果更好。这是大多数类型系统以及自定义类型接口说明的主要目的。不过,我们也能对其他一些编译时可知的属性做一些简单检查,并以编译器错误消息的形式报告所发现的问题。例如:
如果4<=sizeof(int)不满足,输出信息integers are too small。也就是说,如果当前系统一个int占有的空间不足4个字节,就会报错。我们把这种表达某种期望的语句称为断言(assertion)。
static_assert机制能用于任何可以表达为常量表达式(见1.7节)的东西。例如:

通常情况下,static_asser t(A,S)的作用是当A不为true时把S作为一条编译器错误信息输出。
static_assert最重要的用途是为泛型编程中作为形参的类型设置断言(见5.4节,11.6节)。
对于运行时检查的断言,使用异常。