870920 Menu

SwingCoder之C++备忘录·10

冷僻关键字

关键字 说  明
asm 内联汇编,嵌入ASM汇编语言的代码,常用花括号括起来。也可一条汇编语句使用一个该前缀。64位编译器不支持该关键字
compl 逐位取反,位运算符~的替代名
explicit 显式构造单参类的对象。此关键字只能前缀于类的单参数构造函数,明确告诉编译器,不使用隐式类型转换的方式构造该类的对象,必须显式构造。此举可避免可能出现的问题和额外的转换开销。默认情况下,任何单参数的构造函数(即转换构造函数)均可执行隐式转换。只要有可能,单参构造函数尽量使用该前缀。
export 类似于extern外部声明关键字,但针对的是模板函数和模板类的对象。用来指明该模板类或模板函数的实现与声明是分离式的(头源分离)。目前,VC和GCC均不支持之。C++11已废除此关键字
mutable 前缀于类的数据成员之前,指明该数据可被本类的const成员函数调用并修改
volatile 通知编译器,使用该前缀声明的变量或对象,编译时不做优化。即:运算时,不把该变量或对象复制到CPU寄存器中,依然放在内存中。这样可以防止并发编程中多个线程访问该数据时无法同步的问题
noexcept C++ 11新增的关键字,用于函数原型的最后,指明该函数不抛出任何异常
decltype C++ 11新增的关键字,可将变量的类型声明为该关键字所构成的表达式的类型,定义模板时很有用。示例:double x; decltype(&x) y; // y的类型与x一致,为double类型
thread_local C++ 11新增的关键字,可将变量声明为静态存储,其持续性与特定线程相关。即:定义该变量的线程过期时,该变量将不再存在
  注:所有标准C++关键字均是小写字母,非下划线开头