++11放松了就地初始化(类内直接赋值)的使用限制并引入了构造函数后面的初始化列表设置....但是如要注意模板实际参数始终都以实际类型优先, double和int是这个特性的常见例子, 例如1, 如果默认参数是double就会被推导为double
C++11引入了extern模板....如果使用委派构造, 就必须在构造函数体中进行其余成员的初始化
一种解决方案是修改构造的顺序, 让参数最多的构造函数作为委派构造的最终目标, 然后在这个构造函数的初始化列表中完成成员初始化...., 所以不会降低效率
标准库中的std::result_of()内部的type命名本质就是decltype
decltype有所谓的推导四原则:
如果目标是一个没有带括号的标记符表达式(也就是除去关键字...如果目标是被重载的函数则编译错误
否则, 对于带括号的表达式, 如果目标是将亡值, 那么返回右值引用
对于带括号的表达式, 如果目标是左值, 返回左值引用
否则返回目标本身类型
推导四规则中最麻烦的是规则