考虑一个我不想修改的简单C++类:
class foo {};
Run Code Online (Sandbox Code Playgroud)
然后,如果我执行以下操作,我将调用移动赋值运算符:
foo f{};
f = foo{};
Run Code Online (Sandbox Code Playgroud)
有没有办法在不修改foo或使用这样的中间件的情况下调用复制赋值g:
foo f{};
foo g{};
f = g;
Run Code Online (Sandbox Code Playgroud)
差不多好像有std::dont_move!
std::dont_move() 很容易自己实现:
template <typename T>
const T& force_copy(T&& v)
{
return v;
}
Run Code Online (Sandbox Code Playgroud)
请参阅用法示例