Это вопрос из двух частей. Можно ли присвоить возвращаемое значение функции ссылке? Например,
Foo FuncBar()
{
return Foo();
}
// some where else
Foo &myFoo = FuncBar();
Это нормально? Его понимание того, что FuncBar()
возвращает объект Foo, и теперь myFoo
является ссылкой на него.
Вторая часть вопроса. Это оптимизация? Так что если вы делаете это в цикле много времени, лучше делать
Foo &myFoo = FuncBar();
или
Foo myFoo = FuncBar();
И учитывать использование переменных, не будет использовать ref, требующие более медленных различий?