0.simple
C++11 的一些简单或不常用的特性
auto
自动类型推到,不语。
decltype
复杂类型定义
map<int,map<int, bool>> a;
decltype(a) b;配合auto 自动推到返回值
template <typename _Tx, typename _Ty>
auto multiply(_Tx x, _Ty y)->decltype(_Tx*_Ty)
{
return x*y;
}nullptr
c++中对NULL的定义
#undef NULL
#if defined(__cplusplus)
#define NULL 0
#else
#define NULL ((void *)0)
#endif可见c++ 把 NULL 当成0处理,可能会出问题,比如传指针作为参数,传NULL的话可能被当做0,其中弯弯道道不再赘述。
c++11开始用nullptr 指代空指针。
type aliases 类型别名
代替 typedef ,在模板中巴拉巴拉。
构造函数
可以 = default =delete 。
可以委托构造,即使用其他构造函数初始化。
override & final 关键字
override 继承的时候显式声明是重载
final 最后一层实现,不能被继续继承
explicit 显示转换
阻止隐式类型转换,如下这种
noexcept
声明不会抛出异常,如果一个异常没有在函数里面被处理,这个函数就会终止这个程序,抛出std::terminate,之后就会调用std::abort。
常量表达式的结果会被转换成一个bool类型的值。该值为true,表示函数不会抛出异常,反之,则有可能抛出异常。这里, 不带常量表达式的noexcept相当于声明了noexcept(true),即不会抛出异常
others
......
最后更新于
这有帮助吗?