gpt4 book ai didi

c++ - 为什么编译器在我的 lambda 上使用复制构造函数而不是 move 构造函数?

转载 作者:搜寻专家 更新时间:2023-10-31 01:38:22 25 4
gpt4 key购买 nike

<分区>

我正在尝试使用通用捕获语法来 move unique_ptr到 lambda,然后将其包装在 std::function 中.代码非常简单:

#include <functional>
#include <memory>

using namespace std;

int main()
{
unique_ptr<int> x;
function<void()> y = [x(move(x))]() {};
}

这选择了 template<typename T> function(T t)构造函数,但它失败了,因为它试图复制 lambda。为什么它调用的是复制构造函数而不是 move 构造函数,我该如何解决这个问题?

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