私は C++ と STL にまったく慣れていません。ここで私が理解できないことがあります:
class Foo
{
public:
void operator()(int& bar) { std::cout << bar << std::endl; }
};
int main(int ac, char* av[])
{
std::vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
std::for_each(v.begin(), v.end(), Foo); // Invalid argument Foo
Foo foo;
std::for_each(v.begin(), v.end(), foo); // Valid argument foo
return 0;
}
最初の試行で無効な引数エラーが発生するのはなぜですか? どうもありがとうございました!