我发现了几个使用{...}
. 但是这些例子已经很老了。我只是想核对一下——目前的情况是否仍然如所描述的那样?
在每个上下文(尤其是模板)中,以下源代码片段始终是明确的——不管是什么T
和v
是。
T{v};
-- 总是构造一个临时类型T
并用 value 初始化它v
。T x{v};
--用 value初始化一个x
类型的变量。T
v
T x = {v};
-- 相同,因为=
在这里只是可选的。T a[] = {v};
-- 使用 value 初始化数组的所有元素v
。p = new T{v};
-- 在堆上分配一个类型的对象T
并用值初始化它v
。
因此,告诉人们“更喜欢{}
-syntax,你的源代码不会有不同的含义,这取决于what T
and v
are”仍然是正确的。