August 2021
Intermediate to advanced
450 pages
6h 57m
Chinese
在<type_traits>中,标准库提供了类型函数(见28.2节),用来确定类型的属性(类型萃取,见35.4.1节)以及从已有类型生成新类型(类型生成器;见35.4.2节)。这些类型函数主要用于在编译时支持简单和不那么简单的元编程。
在<type_traits>中,标准库提供了多种类型函数,允许程序员确定一个类型或一对类型的属性。它们的名字大多是自解释的。主类型谓词(primary type predicate)检测类型的基本属性:
类型萃取返回一个布尔值。为了访问此值,可使用后缀::value。例如:
如果你厌烦了::value符号,可以定义一个constexpr函数(见28.2.2节):
理想情况下,应对所有标准库类型萃取提供这种函数。
某些类型函数查询基本属性的组合:
这些复合类型谓词(composite type predicate)仅仅是为了提供方便的符号表示。例如,当X为左值引用或右值引用时is_reference<X>为真。 ...