Oracle Solaris Studio 12.2:C++ 用户指南

9.1 避免临时对象

C++ 函数经常会产生必须创建并销毁的隐式临时对象。对于重要的类,临时对象的创建和销毁会占用很多处理时间和内存。C++ 编译器消除了某些临时类,但是并不能消除所有的临时类。

您编写的函数要将临时对象的数目减少到理解程序所需的最小数目。这些技术包括:使用显式变量而不使用隐式临时对象,以及使用引用变量而不使用值参数。另外一种技术是实现和使用诸如 += 这样的操作,而非实现和使用只包含 += 的操作。例如,下面的第一行引入了用于保存 a + b 结果的临时对象,而第二行则不是。


T x = a + b;
T x(a); x += b;