1

rightvalues をもう少し使用しようとしましたが、混乱しました。正しい値を使用する関数をどのように設計すればよいでしょうか。

// Pass by whatever-it's-called
void RockyBalboa::DoSomething(std::string&& str){ 
     m_fighters.push_back(str);
}
// Pass by reference
void RockyBalboa::DoSomething(std::string& str){
     m_fighters.push_back(std::move(str)); 
}

そして、これら 2 つの関数呼び出しの実質的な違いは何でしょうか? アンパサンドを 2 つ付けて渡すとどうなりますstd::moveか?

4

1 に答える 1