25

これを使用するとコンパイルエラーが発生します:

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: エラー: '(std::_Bind(int)>) (int)' の呼び出しに一致しません

std::bindを に変換する方法を教えてもらえますかstd::function?

4

1 に答える 1

27
std::function<int(int)> bar = std::bind(foo, 2, std::placeholders::_1);
于 2012-07-07T06:44:52.963 に答える