これらのエラーが発生しています。なんで?
/usr/include/c++/4.7/algorithm:63:0 からインクルードされたファイルで、prog.cpp:2 から: /usr/include/c++/4.7/bits/stl_algo.h: '_OIter std::transform のインスタンス化で(_IIter、_IIter、_OIter、_UnaryOperation) [with _IIter = __gnu_cxx::__normal_iterator >; _OIter = std::back_insert_iterator >; _UnaryOperation = main()::]': prog.cpp:10:98: ここから必要 /usr/include/c++/4.7/bits/stl_algo.h:4951:2: エラー: '(main への呼び出しに一致しません()::) (int&)' prog.cpp:10:64: 注: 候補は: in file include from /usr/include/c++/4.7/algorithm:63:0, from prog.cpp:2: /usr /include/c++/4.7/bits/stl_algo.h:4951:2: 注: int (*)(int, int) /usr/include/c++/4.7/bits/stl_algo.h:4951:2: 注: 候補3 つの引数を想定し、2 つの引数を指定 prog.cpp:10:79: note: main():: prog.cpp:10:79: note:
#include <algorithm>
#include <vector>
int main()
{
std::vector<int> v {1, 2, 3, 4, 5, 6};
std::vector<int> r;
std::transform(v.begin(), v.end(), std::back_inserter(r), [] (int a, int b) { return a + b; });
}
r
このコードは、数値の各ペアを合計してベクトルに入れることになっていますが、機能していません。何故ですか?