zoukankan      html  css  js  c++  java
  • C++——各版本新特性

    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)
  • 相关阅读:
    后缀表达式
    约瑟夫环
    能手进阶:Linux操作琐细驱动编译与运转
    VLC 0.8.5
    Gimpshop 2.2.11
    Blender 2.42
    有助于数据确立平安环境的次要效率阐明');
    DivFix 0.20
    Ubuntu Dapper 提速脚本
    你值得知道的五佳非主流阅读器
  • 原文地址:https://www.cnblogs.com/yrm1160029237/p/14246166.html
Copyright © 2011-2022 走看看