我正在考虑将中型代码库重构为始终使用大括号初始化。我应该注意哪些效率问题?
一些例子可能是POD类型和内置类型,那么具有大量构造参数的大型类呢?
答案 0 :(得分:1)
这取决于你的意思"总是使用大括号初始化"。如果你转换像
这样的构造函数X x(a, b, c);
到
X x{a, b, c};
(并且由于选择了不同的构造函数,行为不会发生变化),因此生成的代码不应该变得更高或更低效。另一方面:
std::vector<std::string> v{
"long character string a",
"long character string b",
"long character string c"};
可能效率低于
std::vector<std::string> v;
v.push_back("long character string a");
v.push_back("long character string b");
v.push_back("long character string c");
由于提到的@dyp问题,该向量无法移出initializer_list
。