qq_44632983 2021-05-31 22:52 采纳率: 50%
浏览 16
已采纳

C++都有哪些官方标准?每个版本的标准相对于前一版本增加了哪些新特性?

C++都有哪些官方标准?每个版本的标准相对于前一版本增加了哪些新特性?

  • 写回答

1条回答 默认 最新

  • 小P聊技术 2021-06-01 09:16
    关注

    C++ 11

    • auto关键字
    • decltype关键字
    • nullptr字面值
    • constexpr关键字
    • for(declaration : expression)
    • Lambda表达式
    • initializer_list
    • 标准库bind函数
    • 智能指针shared_ptr,unique_ptr
    • 右值引用&&
    • STL容器std::array,std::forward_list,std::unordered_map,std::unordered_set

     

    C++ 14

    • 拓展了lambda表达式,更加泛型:支持auto
    • 拓展了类型推导至任意函数:C11只支持lambda返回类型的auto
    • 弃用关键字 [[deprecated]]

     

    C++ 17

    • 拓展了constexpr至switch if等:C++11的constexpr函数只能包含一个表达式
    • typename 嵌套
    • inline 内联变量
    • 模板参数推导
    • 元组类 std::tuple:std::pair实现两个元素的组合,它实现多个
    • 类模板std::variant表示一个类型安全的联合体。
    • 引用包装器 std::reference_wrapper
    • 变长参数模板
    • 结构化绑定(函数多值返回时用{}合成struct)
    • 非类型模板参数可传入类的静态成员
    • 在if和switch中可进行初始化
    • 初始化(如struct)对象时,可用花括号进行对其成员进行赋值
    • 简化多层命名空间的写法
    • lambda表达式可捕获*this的值,但this及其成员为只读
    • 十六进制的单精度浮点数
    • 继承与改写构造函数
    using B1::B1;//表示继承B1的构造函数
    • 当模板参数为非类型时,可用auto自动推导类型
    • 判断有没有包含某文件__has_include
    • [[fallthrough]]用于switch语句块内,表示会执行下一个case或default
    • [[nodiscard]]表示函数的返回值没有被接收,在编译时会出现警告。
    • [[maybe_unused]]即便没使用也不警告

    https://blog.csdn.net/qq811299838/article/details/90371604

     

    C++ 20

    • concept用于声明具有特定约束条件的模板类型
    // 声明一个数值类型的concept
    template<typename T>
    concept number = std::is_arithmetic<T>::value;
    • 范围库(Ranges Library)
    • 协程(Coroutines)
    • 模块(modules)
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大