我有一個包含一些boost :: numeric :: ublas :: matrix的類。我想重載類的操作符(+ - */=),以便我可以用一個語句對這組矩陣進行操作。運算符爲包含boost :: numeric :: ublas :: matrix的類重載<double>
但是,這似乎需要我的班級的臨時實例攜帶值而不修改原始類。這對我來說很有意義,但是,當我在函數內部創建一個新的實例並返回它,我得到:
警告:引用局部變量「臨時」返回
我很新的C++和運算符重載的例子似乎都返回新的臨時對象。我也想避免實例化新矩陣的開銷,這導致我遍歷所有元素。我應該怎麼做呢?性能是一個問題。
您正在創建一個新矩陣,您需要創建一個新矩陣。這意味着複製您的數據並對其執行算術運算。 – GManNickG 2009-12-31 17:34:33
你需要返回一個值,而不是一個參考 - 真的沒有辦法繞過這個。 – 2009-12-31 17:35:28
我真的很高興我問過。謝謝 – ccook 2009-12-31 17:46:58