我使用这段代码时出现了编译错误:
std::vector<std::function<int(int)>> functions;
std::function<int(int, int)> foo = [](int a, int b){ return a + b; };
std::function<int(int)> bar = std::bind(foo, 2);
functions.push_back(bar);
错误信息:
/usr/include/c++/4.6/functional:1764:40: error: no match for call to '(std::_Bind(int)>) (int)'
有谁能告诉我如何将std::bind
转换为std::function
?
std::bind(foo, 2, std::placeholders::_1)
等同于std::bind(foo, 2,)
吗? - BlackMambastd::placeholders::...
。在这一周之前,我并不熟悉这个东西。学习新知识总是好的。 - Francis Cugler