Skip to content

Latest commit

 

History

History
97 lines (86 loc) · 2.2 KB

File metadata and controls

97 lines (86 loc) · 2.2 KB

C++17语言新特性

  • 折叠表达式
  • 类模板实参推导
  • auto占位的非类型模板形参
  • if constepxr
  • inline变量
  • 结构化绑定
  • if 和 switch 语句中的初始化器
  • u8-char
  • 简化的嵌套命名空间
  • using声明语句声明多个名称
  • 将noexcept作为类型系统的一部分
  • 新的求值顺序规则
  • 强制的复制消除
  • lambda表达式捕获*this
  • constexpr 的 lambda 表达式
  • 属性命名空间不必重复
  • 新属性 [[fallthrough]] [[nodiscard]] [[maybe_unused]]
  • __has_include

C++17新头文件

C++17标准库新特性

工具类型:

  • tuple :
    • apply
    • deduction_guides
    • make_from_tuple
  • variant
  • as_const
  • searchers
  • optional
  • any
  • not_fn

内存管理

  • 未初始化内存算法
    • destroy_at
    • destroy
    • destroy_n
    • uninitialized_move
    • uninitialized_value_construct
  • weak_from_this
  • memory_resource 与 polymorphic_allocator
  • aligned_alloc
  • 通透的 owner_less
  • shared_ptr 的数组支持
  • 带有显式对齐的分配函数

编译时编程

  • byte
  • conjunction/disjunction/negation
  • 类型特征变量模板(xxx_v)
  • is_swappable
  • is_invocable
  • is_aggregate
  • has_unique_object_representations

算法

  • clamp
  • 并行算法与执行策略
  • reduce
  • inclusive_scan
  • exclusive_scan
  • gcd
  • lcm

迭代器与容器

  • map/set extract 与 map/set merge
  • map/unordered_map try_emplace 与 insert_or_assign
  • 连续迭代器
  • 非成员 size/empty/data

数值

  • 数学特殊函数
  • 三维 hypot

其他

  • launder
  • to_chars/from_chars
  • is_always_lock_free
  • scoped_lock
  • 缓存线接口
  • uncaught_exceptions
  • timespec_get
  • duration 与 time_point 的取整函数