Я должен предположить, что ваша #comment
о том, как дешево (= быстро) тест на равенство, была там по причине.Учитывая это, вы, вероятно, должны продолжать использовать дешевый тест на равенство.Это очень быстро, намного быстрее, чем eq
, не говоря уже о любом виде глубокого сравнения.
Возможно, что объект с прямо или косвенно перегруженным оператором ==
может узурпироватьтест для своих целей.Но если он делает это, вы можете даже предпочесть его опосредованный ответ.
Какой подход вы выберете, может зависеть от того, что вы знаете о классах объекта.Подходы, применимые к общим случаям, не всегда оптимальны для конкретных случаев.Чем больше вы знаете о чем-то, тем больше вы можете оптимизировать это - и наоборот.
Так что, если вы знаете , что вы не используете класс с применимой перегрузкой, нет никаких оснований возиться с не встроенной библиотечной функцией, и есть все основания этого не делать.Если вы не знаете о перегрузке или знаете о ней и не хотите, чтобы она применялась, возможно, используйте медленный подход.
Пока вы понимаете проблемы перегрузки,Ошибочно считать один подход правильным, а другой неправильным.У каждого своя цель.Если бы всегда было неправильно делать то, что вы делаете, то эта операция была бы либо запрещена, либо, по крайней мере, предупреждена.
Вы заметите, что не помечены.