是
std::vector<double> foo ()
{
std::vector<double> t;
...
return t;
}
和
std::vector<double> foo ()
{
std::vector<double> t;
...
return std::move (t);
}
相同呢?
更确切地说,是return x
总是等同于return std::move (x)
?
是
std::vector<double> foo ()
{
std::vector<double> t;
...
return t;
}
和
std::vector<double> foo ()
{
std::vector<double> t;
...
return std::move (t);
}
相同呢?
更确切地说,是return x
总是等同于return std::move (x)
?
他们不是等价的,你应该总是使用return t;
。
更长的版本是,当且仅当return语句可享有返回值优化,然后回返结合右值引用(或通俗“的move
是隐含”)。
拼写出return std::move(t);
然而,实际上抑制返回值优化!