c++在演进过程中逐渐增强和扩展了对类型处理的能力
在c++11中
- 引入了右值引用,从而通过重新定义值类别(value category)来对表达式进行分类,右值引用能够表达移动语义,解决了传统c++产生的中间临时变量需要多次拷贝的问题
- 引入了强枚举类型特征,约束了枚举值的域,同时不允许隐式转换成数值类型,也不允许不同枚举类型之间进行比较
- 放松了对union特性的约束,使其能够与非平凡类组合,增强了实用性
- 引入了auto关键字,对初始化变量类型进行推导,减轻了程序员需要手写复杂类型(诸如迭代器类型)的负担
- 引入了decltype特性,通过已有对象,变量获取其类型,解决了难以声明一个对象的类型(诸如lambda对象类型)的问题
- 引入了nullptr_t类型,避免了整数类型与指针类型导致的重载歧义问题
在c++17中
- 引入了variant作为类型安全的union,使这些类型的表达变得更容易,更正确
- 引入了optional类型来表达一个对象是否存在的概念
在c++20中
- 引入了concept特性来对类型做约束,如此无论是在代码角度上,还是从编译错误信息的角度上,都更加可读
你好 我是大帅哥
你好 大帅哥
好的 吾皇万岁万岁万万岁
你好 我叫槐诗
奖励你一丈红 不用谢
好的 谢谢
我来也
刚找到是吧
哈哈哈哈哈