这是代码
#include <string>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
class test {
struct con {
string s1;
string s2;
};
public:
void somefunc();
private:
bool pred(con c1, con c2);
vector<con> vec;
};
void test::somefunc()
{
vector<con> v;
vector<con>::iterator it = find_first_of(vec.begin(), vec.end(), v.begin(), v.end(), pred);
}
bool test::pred(con c1, con c2)
{
return 0;
}
它给出了错误
est.cpp(24) : error C2664: 'struct test::con *__cdecl std::find_first_of(struct test::con *,struct test::con *,struct test::con *,struct test::con * ,bool (__thiscall *)(struct test::con,str uct test::con))' : 无法将参数 5 从 'bool (struct test::con,struct test::con)' 转换为 'bool (__thiscall * )(struct test::con,struct test::con)' 范围内具有此名称的函数均不匹配目标类型
我不明白什么是 (__thiscall*) 以及如何将我的谓词函数转换为它。