我有一个功能:
static Bwah boo(){
Bwah bwah;
return bwah;
}
主要功能:
int main(){
Bwah boo = Assigner::boo();
cout << "got here.." << endl;
}
Bwah的析构函数仅在“到达”打印后被调用一次。 这是保证还是编译器优化?
答案 0 :(得分:10)
这是一种称为返回值优化(RVO)的优化。这是一种常见的优化,但你不能依赖它。
以下是两个非常好的学习链接:
维基百科的文章特别直接解决了您的问题。但另一篇文章更深入地探讨了整个问题。