0

そのようにオブジェクトを返すメソッドを作成しました:

MyObject && 
MyController::getMyObject (const otherObject & options) const
{
    MyObject tmp;

    tmp.doSometing(options);

    return std::move(tmp);
}

コードの後半で、このメソッドを次のような連鎖呼び出しで使用したいと考えました。

controller.getMyObject(options).doAnotherThing();

「doAnotherThing」の呼び出しは空のオブジェクトに依存しています。私は状況を修正する方法を知っています:

auto tmp = controller.getMyObject(options);

tmp.doAnOtherThing();

私の質問は: そもそも、メソッドは正しく書かれていますか? 使い方の2番目の方法を書かないようにするにはどうすればよいですか? ほんとうにうらやましい…

注: 「MyObject」は移動可能です。

4

2 に答える 2