【问题标题】:Overloaded plus operator with preallocated result C++ [duplicate]具有预分配结果的重载加号运算符C++ [重复]
【发布时间】:2018-10-31 11:53:15
【问题描述】:

我正在尝试创建一个矩阵类,其中重载的加号运算符的输出是一个新矩阵,其中包含传入的两个矩阵的总和。但是,我想预先分配结果以缩短时间这个运营商的效率。到目前为止,我搜索过的所有地方都表明,重载的 operator+ 实例化了一个它按值返回的新对象,然后将其复制到分配给它的任何变量。有没有办法避免这种情况?

【问题讨论】:

标签: c++ c++11


【解决方案1】:

现代 c++ 编译器会忽略返回值的副本,如果他们不这样做,那么您只需要确保您的类是可移动的,这样也可以避免它们复制。

将您的代码放入http://godbolt.org 以查看生成的程序集。

【讨论】:

    猜你喜欢
    • 2017-10-14
    • 2019-02-21
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2011-10-27
    • 1970-01-01
    • 2012-12-22
    • 2016-09-26
    相关资源
    最近更新 更多