gpt4 book ai didi

c++ - Lambda 和 bind 在 VS2010 中不能一起工作

转载 作者:太空狗 更新时间:2023-10-29 21:07:26 25 4
gpt4 key购买 nike

此代码无法在 VS2010 下编译:

#include <functional>

using namespace std;

void test()
{
auto f = [] (int) {};
bind(f, 10);
}

它给出了一个指向bind 实现内部的长错误。如果我切换到普通函数而不是 lambda,bind 工作正常,所以我相信这是 VS2010 中的一个错误,但也许我遗漏了一些东西。你能帮帮我吗?

最佳答案

似乎 VC10 无法处理作为 std::bind 参数的 lambda。它似乎需要一个函数指针或一个函数对象。我不知道这是否是一个错误,但我怀疑是,因为 lambda 函数应该在编译期间成为函数对象。

无论如何,如果你需要一个解决方法,这个为我编译:

std::function<void(int)> func = [] (int) {};
std::bind(func, 10);

关于c++ - Lambda 和 bind 在 VS2010 中不能一起工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5064580/

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