【发布时间】:2021-07-15 10:35:05
【问题描述】:
我的用例是我有一个类 X,它有一个返回 X 的修改副本的成员函数。其中一些成员函数可能像这样堆叠
X X_before{init};
X X_after = X_before.op_1().op_2().op_3();
在上面的代码中 op_1 将创建一个副本。现在我在想的是,实际上没有理由 op_2 和 op_3 也需要创建一个新副本,因为 X_before.op_1() 现在是一个右值。有没有办法可以在当前的 C++ 中实现这一点?我正在使用 C++14,但我也很想知道这在以后的版本中是否可行。
【问题讨论】: