“类型名称{}”在C ++中的含义是什么?

时间:2013-03-18 09:21:43

标签: c++ syntax

我在源代码中找到了以下构造:

variable_type variable_name{func(arg1, arg2, arg3)};

在下一版本的代码中,此构造已被以下版本替换:

variable_type variable_name = func(arg1, arg2, arg3);

所以,我的问题是第一行是什么意思,它与第二行有什么不同?我也想知道为什么使用第一行而不是第二行可能更好或更糟?

2 个答案:

答案 0 :(得分:1)

这是C ++ 11大括号初始化的一个例子。

参见以下文章:

https://www.informit.com/articles/article.aspx?p=1852519

答案 1 :(得分:1)

第一行是来自C ++ 11的新功能,称为uniform initialization。这种初始化方式也可用于定义采用std::initializer_list的构造函数的类,在这种情况下,这样的构造函数优先。