移动构造函数(浅拷贝)和具名返回值优化(NRVO)
针对数据量特别大的对象实例,运算过程中都要特别关注对其的拷贝操作,例如大型矩阵的乘法运算\(A_{r \times s}\cdot B_{s \times t}\) 等等。出于代码的复用性考虑,我们会将这些运算封装成函数调用。在C++新标准前,通常的做法是将对象实例通过形参列表将引用或者指针传入以避免大数据的拷贝操作,在C++17新标准之后,我们可以采用C++编译器的具名返回值优化(NRVO)功能,并搭配浅拷贝的移动构造函数来避免大数据的拷贝操作。
By [Ruichen Ni]
read more