[c++17] --- c++17相对于c++11的新增特性

时间:2022-04-16 01:25:44

1 新增语言特性

1.1 New attributions

[[nodiscard]]、[[maybe_unused]]等。

1.2 constexpr if(编译时if)

constexpr if:可以在编译期间进行条件编译,减少运行时的开销。

1.3 Structured Binding Declaration( 结构化绑定声明)

结构化绑定:可以将一个结构体或元组的成员绑定到多个变量中。

1.4 Inline variables(内联变量)

inline变量:可以在头文件中定义变量,避免多重定义的问题。

1.5 Fold expressions(折叠表达式)

折叠表达式可以在编译时对一个参数包进行操作,得到一个结果。

1.6 Nested namespace definition(嵌套命名空间定义)

inline namespace:可以在一个命名空间中使用inline namespace,可以使得库的版本管理更加灵活。

1.7 UTF-8 character literals(UTF-