11之前,初始化方法包括:小括号、大括号、赋值号,这让人困惑。基于这个原因,给他来个统一,即,任何初始化都能够使用大括号来实现。实现的方法使用另外一个新特性:初始化列表。下一个特性介绍。
// 11之前
Rect r1 = {3, 7, 30};
Rect r2(3, 7, 20);
int ia[6] = {27, 89, 20};
// 11之后
int values[] {1, 2, 3};
vector<int> v {1, 2, 3};
complex<double> c {4.0, 3.0};
ERROR:narrowing? ? 不允许窄化的转换?
前面的一致性初始化中的大括号会形成一个初始化列表。具体实现代码如下: