Срок действия
Rvalues («временных значений»), привязанных к const
ссылкам, будет увеличен до конца времени жизни ссылки.Поэтому, если вам не нужно изменять этот вектор, подойдет следующее:
const std::vector<A>& b = MyFunc();
, если , вам нужно изменить вектор, просто закодируйте его так, чтобы его было легче читать, покау вас есть доказательство (полученное с помощью профилирования), что эта линия даже имеет значение с точки зрения производительности.
В противном случае полагайтесь на C ++ 1x с его ссылками на rvalue и перемещайте семантику «очень скоро сейчас» и оптимизируйте эту копию без необходимости что-либо делать.