C++11中的移动构造函数又把NRV优化翻出来了,都是采用临时中间值优化,两者不能共存。
参数传递如何实现?
【实现模型1】引入临时对象,使用拷贝构造函数初始化。然后利用bitwise copy将其拷贝到x0的位置。比如:
void foo( X x0 );
X xx;
foo( xx );
改写成
X __temp0;
__temp0.X::X ( xx );
foo( __t...
分类:
其他好文 时间:
2014-12-15 10:27:49
阅读次数:
280
《More Effective C++》中讲到,在C++中真正的临时对象是看不见的,它们不出现在你的源代码中。建立一个没有命名的非堆(non-heap)对象会产生临时对象,这种未命名的对象通常在两种条件下产生:为了使函数成功调用而进行隐式类型转换和函数返回对象时。1 size_t countCh.....
分类:
其他好文 时间:
2014-10-20 13:14:45
阅读次数:
263