如果调用了拷贝构造函数,则会生成一个临时变量,临时变量使用完后会消除该变量,也就是执行析构
如题,再看“有闲人对设计新的语言感兴趣的么?一起来讨论一下吧。”这个帖子的时候,gtkmm举了如下的例子
-
class T
-
{
-
public:
-
T(){}
-
T(const T&){
-
throw 0;
-
}
-
};
-
-
T test( int i)
-
{
-
T t1,t2;
-
return t1;
-
return t2;
-
}
-
-
int main(int argc, char *argv[])
-
{
-
T t = test(0);
-
return 0;
- }
问题是为什么多一个return就会导致不使用这种优化行为?明明那个return不会被执行?