Допустим, у меня есть функция:
typedef std::vector<int> VecType;
VecType randomVector();
int processing()
{
VecType v = randomVector();
return std::accumulate(v.begin(), v.end(), 0);
}
Говорит ли C ++ 0x, что ложная копия будет предотвращена из возвращаемого значения randomVector? Или компилятору нужно будет реализовать RVO? Мне кажется, что значение randomVector()
должно рассматриваться как значение r, и, следовательно, должен вызываться конструктор перемещения v, но я не совсем уверен, что это правда.