gpt4 book ai didi

c++ - 停止右值调用移动赋值 C++ 11

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:13:19 24 4
gpt4 key购买 nike

考虑一个我不想修改的简单 C++ 类:

class foo {};

然后,如果我执行以下操作,我将调用移动赋值运算符:

foo f{};

f = foo{};

有没有一种方法可以在不修改 foo 或使用中间 g 的情况下调用复制分配,如下所示:

foo f{};
foo g{};
f = g;

几乎就像有 std::dont_move 一样!

最佳答案

std::dont_move() 很容易自己实现:

template <typename T>
const T& force_copy(T&& v)
{
return v;
}

参见 usage example

关于c++ - 停止右值调用移动赋值 C++ 11,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42156488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com