Здравствуйте, Init64, Вы писали:
I>Этот код я компилировал еще в MSVC 2003. А там вроде NRVO даже близко не пахнет. Так что теоритически все должно отработать так как я описал в первом посте. Вопрос по-прежнему остается открытым.
Если я все правильно понимаю, то я сам виноват в том, что Вы запутались
TestClass TestFunc()
{
TestClass a; // Named RVO
return a;
}
TestClass TestFunc()
{
return TestClass(); // RVO
}
Попробуйте скомпилировать вариант с NRVO, в 2003 — он не должен Вас удивить.
... << RSDN@Home 1.1.4 stable rev. 510>>