我创建了一个以这种方式返回对象的方法:
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();
我的问题是:首先,方法写对了吗?如何避免编写第二种用法?实在是太难看了……
注意:“MyObject”是可移动的。