1

我在源代码中发现了以下结构:

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

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

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

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

4

2 回答 2

1

第一行是 C++11 的一个新特性,称为统一初始化。这种初始化风格也可以用在定义了一个构造函数的类上std::initializer_list,在这种情况下,这样的构造函数具有优先权。

于 2013-03-18T09:30:02.410 回答
1

这是 C++11 大括号初始化的示例。

例如,请参阅以下文章:

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

于 2013-03-18T09:26:15.467 回答