Я реализовал operator<
для своих классов C ++ и когда я попробовал это для класса, который содержит объектный вектор;он терпит неудачу и дает оператор __surrogate_func
Когда я удаляю объектный вектор из класса, все в порядке.Я нашел этот похожий вопрос о вопросе, но я не знаю, почему я получаю эту ошибку?Потому что я просто сравниваю вектор. ошибка C2672: 'operator __surrogate_func': не найдена соответствующая перегруженная функция при использовании 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;
};