C++17 关键新特性介绍及代码讲解 (2) — New auto rules for direct-list-initialization
一句话概括:
对于使用 brace-list ( 即花括弧 { }
) 进行初始化的 auto
变量,更新了 auto
变量类型的推导规则,更新后的规则更加清晰。
更新后的规则如下:
- copy-initialization 的情况:
{ }
里的变量类型需要完全一致, 此时auto
推导为std::initializer_list
类型;其他情况为语法错误。
auto x1 = {
1, 2 }; // decltype(x1) is std::initializer_list<int>
auto x2