それで、昨日 youtube で C++ のビデオを見ていたら、C++-11 の右辺値参照と移動セマンティクスに関するものに出会いました。大まかな概念は理解していると思いますが、今日 TA でコードを調べていたときに、std::pair<HostName, IPAddress>& p
以下のコードで参照 ( など) を使用しなかった理由を尋ねられました。この場合は全く考えていなかったのですが、聞いてみると「C++-11では一般的に値渡しを使うべき」という動画があったのを思い出しました。
したがって、私の質問は次のとおりです。以下のコードでは、好きかどうかstd::pair<HostName, IPAddress> p
の方が良いでしょうか? std::pair<HostName, IPAddress>& p
移動セマンティクスが使用される予定はありますか?それによって違いが生じるでしょうか?
IPAddress NameServer::lookup( const HostName& host ) const {
auto it = std::find_if( vec.begin(), vec.end(),
[host] ( std::pair<HostName, IPAddress> p ) {
return p.first == host;
} );
...
}