草庐IT

randomVector

全部标签

c++ - c++0x 中的返回值是否将通过右值引用传递?

假设我有一个函数:typedefstd::vectorVecType;VecTyperandomVector();intprocessing(){VecTypev=randomVector();returnstd::accumulate(v.begin(),v.end(),0);}C++0x是否明确表示将从randomVector的返回值中避免虚假拷贝?或者编译器是否需要实现RVO?在我看来,值randomVector()应该被视为右值,因此应该调用v的移动构造函数,但我不完全确定这是真的。 最佳答案 规则如下如果编译器可以执行RV