【发布时间】:2015-09-24 05:12:33
【问题描述】:
我有以下课程:
Class Foo {
public:
bool operator ==(const Foo& f);
...
private:
set<pair<int,int>> points;
...
}
如果两个 Foo 对象具有相等的点集,则重载的相等运算符返回 true。如果我这样使用它,它会按预期工作:
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
}
【问题讨论】:
-
你应该发布编译错误。
标签: c++ lambda stl-algorithm