Технически, да, вы заказываете их непосредственно у члена a
, что, например, должно подойти.std::set
.В основном они ведут себя как целые числа, т.е.если a Однако - плохая идея определять дваоператоры в одном классе, которые подразумевают разные вещи, потому что это может запутать пользователей этого класса.Насколько я знаю, он не будет напрямую ломать любые контейнеры STL, поскольку они используют только один из двух операторов, но меня, конечно, смущает, что вы можете иметь этот случай, где! (Bar В таком случае я бы предпочел предоставить в качестве члена только оператор, более естественный для класса, и сделать другой доступным через автономную структуру, которая можетбыть предоставлен в качестве параметра шаблона для контейнера STL.Для меня это проясняет, что это способ упорядочения экземпляров класса, который не обязательно эквивалентен другим операторам-членам.