我在源代码中发现了以下结构:
variable_type variable_name{func(arg1, arg2, arg3)};
在下一个版本的代码中,此构造已被以下构造替换:
variable_type variable_name = func(arg1, arg2, arg3);
所以,我的问题是第一行是什么意思,它与第二行有什么不同?我也想知道为什么使用第一行而不是第二行可能更好或更差?
第一行是 C++11 的一个新特性,称为统一初始化。这种初始化风格也可以用在定义了一个构造函数的类上std::initializer_list
,在这种情况下,这样的构造函数具有优先权。