class A;
A func() {
A a;
return a;
}
这个应该是错误用法吧?a在func结束后应该被destruct了
但为啥还经常见到这种用法?
J***o 发帖数: 553
2
semantically speaking, the returned object is a copy of a so it doesnt
matter a got destructed or not. the actual implementation may vary depends
on compiler. most compilers utilize RVO/NRVO so the unnecessary copy is
eliminated.
【在 g*********e 的大作中提到】 : class A; : A func() { : A a; : return a; : } : 这个应该是错误用法吧?a在func结束后应该被destruct了 : 但为啥还经常见到这种用法?