Показать сообщение отдельно
Старый 06.01.2013, 18:23   #4
jimon
 
Сообщений: n/a
Ответ: Вызов конструктора в списке аргументов функции

Сообщение от wolfhound512 Посмотреть сообщение
У меня GCC компилятор пишет именно о невозможности преобразования из myClass в myClass&, поэтому суть претензий не понятна была.
Но в студии такая функция работает нормально:
myClass& foo(myClass& obj) {
   \\изменение obj
   return obj;
}

foo( myClass() );
Для такого случая надо использовать исключительно первый вариант?
ну да, когда ты передаешь ссылку и создаешь класс inplace то получается временный объект, менять его смысла нету, он разрушится как только функция вернет результат, потому чтобы не плодить лишних багов такое поведение запретили в стандарте, а visual studio разрешает

можно конечно копнуть глубже, но нужно ли ? если уж сильно хочется то вот статья которая объясняет такое поведение http://blogs.msdn.com/b/vcblog/archi...10-part-2.aspx
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
wolfhound512 (06.01.2013)