• 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)
  • 相关阅读:
    display:none;与visibility:hidden;的区别
    前端优化:雅虎35条
    JQ中find()和filter()的区别
    attr属性
    媒体查询器(转)@media screen and
    javascript解决URL (转)
    使用 js 处理 html entities(转)
    FileReader详解与实例---读取并显示图像文件
    HTML5中File对象初探
    createTextRange和createRange的一些用法(重点)
  • 原文地址:https://www.cnblogs.com/yrm1160029237/p/14246166.html
Copyright © 2020-2023  润新知