Сообщение от 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 