У меня есть следующий оператор <, который должен сортировать сначала по значению, а затем по другому значению:
inline bool operator < (const obj& a, const obj& b)
{
if(a.field1< b.field1)
return true;
else
return a.field2 < b.field2;
}
У меня такое ощущение, что это неверно и что вы не можете сделать это без еще одного третьего сравнительного теста для переменных-членов, но я не могу найти ни одного примера, где это не работает. Так что же это действительно так, как ожидалось? спасибо
редактировать :Я бы закодировал это как:
inline bool operator < (const obj& a, const obj& b)
{
if(a.field1< b.field1)
return true;
else if(a.field1> b.field1)
return false;
else
return a.field2 < b.field2;
}
есть ли отличия? Спрашиваю, потому что по опыту знаю, что мой правильный, но он длиннее первого