我仍然不確定何時返回值是C++中的一個好主意,如果不是。在以下情況下,可以嗎?何時按值返回好嗎?
vector<int> to_vec(const Eigen::MatrixXi& in){
vector<int> out;
// copy contents of in into out
return out;
}
Eigen::MatrixXi to_eigen(const vector<int>& in){
Eigen::MatrixXi out;
// copy contents of in into out
return out
}
根據這些對象vector
和MatrixXi
是如何工作的,它可能會導致昂貴的拷貝。另一方面,我假設他們利用C++的移動功能通過重新使用基礎數據以低成本複製。
不知道確切的實施,我能承擔?
搜索「複製省略」和「返回值優化」。 [在本徵移動語義]的 – molbdnilo
可能的複製(http://stackoverflow.com/questions/26959846/move-semantics-in-eigen) –
何不到載體中的引用傳遞爲函數來填充? – Rhett