August 2021
Intermediate to advanced
450 pages
5h 35m
Chinese
异常负责报告运行时发现的错误。如果错误能在编译时发现,当然更好。这是大多数类型系统以及自定义类型接口说明设施的主要目的。不过,我们也能对大多数编译时可知的性质做一些简单检查,并以编译器错误消息的形式报告所发现的问题。例如:
如果4<=sizeof(int)不成立,即当前系统中一个int占据的空间不足4字节,则输出integers are too small信息。将这种表达我们的期望的机制称为断言(assertion)。
static_assert机制能用于任何可以表示为常量表达式(参见1.6节)的东西。例如:
一般而言,static_assert(A,S)的作用是当A不为true时,将S作为一条编译器错误信息输出。如果你不希望打印特定消息,可以忽略S,编译器会提供一条默认消息:
默认消息通常是static_assert所在位置加上表示断言谓词的字符。
static_assert最重要的用途是在泛型编程中为类型参数设置断言(参见7.2节、13.9节)。
Read now
Unlock full access