【发布时间】:2013-02-14 20:28:36
【问题描述】:
所以我昨天在 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;
} );
...
}
【问题讨论】:
标签: c++ c++11 move-semantics