c++11新特性

  1. 本文仅简单列出c++11新特性
  2. C++ auto类型推导:自动类型推导。
  3. C++ decltype类型推导:解决auto不能适用的场景。
  4. 返回值类型后置:为了解决函数返回值类型依赖于参数而导致难以确定返回值类型的问题。decltype 和 auto 结合使用。
  5. 对模板实例化中连续右尖括号>>的改进:以前模板实例化的连续两个右尖括号(>>)会被编译器解释成 右移操作符,而不是 模板参数表的结束。
  6. 使用using定义别名(替代typedef):优点:简洁,如模板别名
  7. 支持函数模板的默认模板参数:在 C++98/03 标准中,类模板可以有默认的模板参数,但是却不支持函数的默认模板参数。
  8. 在函数模板和类模板中使用可变参数:template<typename... Types>。

    1.当所有模板参数都有默认参数时,函数模板的调用如同一个普通函数。但对于类模板而言,哪怕所有参数都有默认参数,在使用时也必须在模板名后跟随<>来实例化。
    2.除了上面提到的部分之外,函数模板的默认模板参数在使用规则上和其他的默认参数也有一些不同,它没有必须写在参数表最后的限制。甚至于,根据实际场景中函数 模板被调用的情形,编译器还可以自行推导出部分模板参数的类型。

  9. tuple元组详解(c++11新引入类模板(可变模板参数定义的类模板)):tuple 最大的特点是:实例化的对象可以存储任意数量、任意类型的数据。应用场景广泛,例如当需要存储多个不同类型的元素时,可以使用 tuple;当函数需要返回多个数据时,可以将这些数据存储在 tuple 中,函数只需返回一个 tuple 对象即可。
  10. 列表初始化:C++11支持列表初始化可以用于任何类型对象的初始化。在初始化时,{}前面的等于号是否书写对初始化行为没有影响。
  11. lambda匿名函数用法详解
  12. 非受限联合体(union):联合体(Union)是一种构造数据类型。在一个联合体内,我们可以定义多个不同类型的成员,这些成员将会共享同一块内存空间。

 

上一篇:Typescript express 新手教程 S1


下一篇:TypeScript编译配置选项