これに関連して、復帰const
とそれが RVO と移動にどのように影響するかについて質問があります。私は通常、関数が次のようにconst
オブジェクトを返すようにするのが好きです。
// Return const to help ensure the potential temporary can't be used incorrectly
const std::vector<int> foo()
{
std::vector<int> bar(10, 42); // Note: this is not const
return bar;
}
これが RVO と移動にどのように影響するかについて質問があります。私が次のことをした場合:
std::vector<int> myVector = foo();
const
の戻り値の型は、 RVOfoo
や移動を阻害しますか? ローカル変数foo
自体がそうでなくてもconst
?RVO を利用してセマンティクスを移動したい場合、 を取り除く必要がありconst
ますか?