2
チェーン時にコピーを回避する方法は?
以下の小さな例のように、連鎖タイプのクラスを作成しています。メンバー関数をチェーンすると、コピーコンストラクターが呼び出されるようです。コピーコンストラクタの呼び出しを取り除く方法はありますか?以下の私のおもちゃの例では、私が一時的なものだけを扱っていることは明らかであり、したがって、(標準ではないかもしれませんが、論理的には)省略があるはずです。省略をコピーするための2番目の最適な選択は、移動コンストラクターを呼び出すことですが、これは当てはまりません。 class test_class { private: int i = 5; public: test_class(int i) : i(i) {} test_class(const test_class& t) { i = t.i; std::cout << "Copy constructor"<< std::endl; } test_class(test_class&& t) { i = t.i; std::cout << "Move constructor"<< std::endl; } auto& increment(){ i++; return *this; } }; int main() { …