我已经为我的c ++类实现了operator<
,并且当我为包含对象向量的类尝试了它时;它失败,并给 operator __surrogate_func
当我从类中删除对象向量时,一切正常。 我发现了与此问题类似的问题,但我不知道为什么我收到此错误?因为我只是比较向量。 error C2672: 'operator __surrogate_func': no matching overloaded function found when using std::upper_bound
class A
{
public:
A() {}
inline int getAVal() { return m_a; }
inline int getBVal() { return m_b; }
inline void setAVal(int a) { m_a = a; }
inline void setBVal(int b) { m_b = b; }
inline bool operator<(const A& r)
{
return std::tie(m_a, m_b) < std::tie(r.m_a, r.m_b);
}
private:
int m_a;
int m_b;
};
class B
{
B() {}
inline bool operator<(const B& r)
{
return std::tie(m_aVec) < std::tie(r.m_aVec);
}
private:
std::vector<A> m_aVec;
};