涉及什么机制,如果返回类型,可以从初始化列表中构造,我没有指定我返回的类型,如:
std::array<int, 3> make_array()
{
return { 1, 2, 3 };
}
Run Code Online (Sandbox Code Playgroud)
代替
std::array<int, 3> make_array()
{
return std::array<int, 3>{ 1, 2, 3 };
}
Run Code Online (Sandbox Code Playgroud)
如果我在没有指定类型的情况下返回初始化列表,是否涉及任何性能损失?我实际上是在返回一个数组,即转换为std::array?
Joh*_*itb 17
不涉及性能处罚.返回值的构造等价于
std::array<int, 3> x = { 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)
甚至没有std::array涉及实例的单个副本或移动.