0
У меня есть следующий класс:Использования станда :: any_of с лямбдой призвания перегруженного оператора равенства
Class Foo {
public:
bool operator ==(const Foo& f);
...
private:
set<pair<int,int>> points;
...
}
Перегруженный оператор равенство возвращает истину, если два объекта Foo имеет равные множества точек. Он работает, как и ожидалось, если я использую его как таковой:
Foo a = Foo();
Foo b = Foo();
if (a == b) ...
Вопрос в том, почему следующее не удается скомпилировать?
vector<Foo> foos = ...
Foo c = ...
if (any_of(foos.begin(),foos.end(),[c](const Foo& f) { return (f == c); }))
{
// stuff
}
Вы должны опубликовать компиляцию. – Barry