44.2 C++11扩展
这里首先列出C++11标准增加的语言特性和标准库组件。接下来将讨论应对旧版本(特别是C++98)的方法。
44.2.1 语言特性
研究语言特性列表着实让人眼花缭乱。但要记住,语言特性并不是孤立使用的。特别是,大多数C++11新特性如果脱离了其他特性构成的框架就毫无意义。下面特性列表的顺序大致就是这些特性在本书中第一次出现的顺序:
[1]使用{}列表进行一致且通用的初始化(2.2.2节,6.3.5节);
[2]从初始化器进行类型推断:auto(2.2.2节,6.3.6.1节);
[3]避免窄化转换(2.2.2节,6.3.5节);
[4]推广的且有保证的常量表达式:constexpr(2.2.3节,10.4节,12.1.6节);
[5]范围for语句(2.2.5节,9.5.1节);
[6]空指针关键字:nullptr(2.2.5节,7.2.2节);
[7]限域且强类型的枚举:enum class(2.3.3节,8.4.1节);
[8]编译时断言:static_assert(2.4.3.3节,24.4节);
[9]{}列表到std::initializer_list的语言映射(3.2.1.3节,17.3.4节);
[10]右值引用(允许移动语义;3.3.2节,7.7.2节);
[11]以>>结束的嵌套模板参数(两个>间无空格,3.4.1节);
[12]l ambda(3.4.3节,11.4节);
[13]可变参数模板(3.4.4节,28.6节);
[14]类型和模板别名(3.4.5节,6.5节,23.6节);
[15]Unicode字符(6.2.3.2节,7.3.2.2节);
[16]long long整数类型(6.2.4节);
[17]对齐控制:alignas和alignof(6.2.9节); ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access