运算符<给运算符__surrogate_func错误

时间:2019-04-17 10:34:25

标签: c++ vector operator-overloading

我已经为我的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;
};

0 个答案:

没有答案