ISO C++98/03关键字共 63 个:
asm | do | if | return | typedef |
---|---|---|---|---|
auto | double | inline | short | typeid |
bool | dynamic_cast | int | signed | typename |
break | else | long | sizeof | union |
case | enum | mutable | static | unsigned |
catch | explicit | namespace | static_cast | using |
char | export | new | struct | virtual |
class | extern | operator | switch | void |
const | false | private | template | volatile |
const_cast | float | protected | this | wchar_t |
continue | for | public | throw | while |
default | friend | register | true | |
delete | goto | reinterpret_cast | try |
alignof 用于获取取指定表达式指定的( 类似 sizeof,可以直接是类型名)的对齐(alignment)。alignas 用于声明时指定对齐类似于现有的类型。和 sizeof 类似,两者的操作数都不被求值。
类似 const 但更强大,修饰 函数 或 对象,表示函数结果或对象是编译时决定的常量,以便优化。( const 不能修饰一般的函数,也不一定指定声明的对象能编译期的常量表达式,更可能只是只读对象。而在 C 语言 中,const 完全只能指定只读对象。)
二者分别表示 16 位 字符型 和 32 位字符型,类似 char 和 wchar_t,也是一般只专用于表示字符的 整数类型,且设计上用于表示 Unicode 字符。char16_t 和 char32_t 是 C++11 新增的,以克服 wchar_t 在不同平台上无法保证确定宽度的缺点。
用于编译时推断类型。此外参与函数声明的另一种语法:指定返回 auto,同时 decltype 引导 trailing-return-type 指定实际应该返回类型。decltype 的操作数也不被求值。
字面量 nullptr 是具有 std::nullptr_t 类型的右值,是空 指针 常量。C++98/03 中表示空指针常量的 NULL 或 0 都会在重载中引起混淆,而纯库的解决方案在这里也遇到困难,所以有必要加入新的关键字来专门表示空指针。
实践表明动态异常规范会影响运行时性能。新增的 noexcept 表示静态异常规范,只指定函数(模版)是否有异常抛出,这里 noexcept 即 noexcept(true),表示没有异常抛出。除了异常规范,noexcept 可以作用于一个表达式来判断是否有异常,这对于模版代码非常有用。
用于编译时的静态断言:若指定的表达式为 false 则编译失败。
C11 标准和 C98/03 标准的 auto 是不同的。C98/03 标准中,auto 表示自动储存类型;C11 标准中,auto 表示由编译器静态判断其应有的类型。
ISO C++98/03关键字共 63 个。