Эквивалент целенаправленно расплывчатый.(Чтобы избежать таких вещей, как подразумевание operator==
, необходимо определить ; в общем случае это не так.)
Однако концептуально две вещи эквивалентны, если их данные представляют один и тот же объект.Если у класса есть данные, которые могут отличаться при «копировании», то вам нужно сделать operator==
(и, возможно, operator<
вместе с rel_ops
), чтобы убедиться, что «эквивалент» реализован в отношении этого.(По сути, убедитесь, что изменяемые данные не являются, так сказать, «частью класса».)
Обычно лучше не идти по этому пути, потому что в конечном итоге вам придется исправлять множество вещейчтобы убедиться, что он работает правильно.Если что-то нужно скопировать, пусть, если будет полностью скопировано.Это имеет гораздо больше смысла.