Здравствуйте, vsb, Вы писали:
N>>Правила таки о том, что это надо делать одновременно. Если ты переопределил hashCode() => переопредели и equals(), и наоборот.
vsb>Ну дык Hashable extends Equatable или Hasher extends Equator и опять же имеем типизированную проверку этого факта.
Боюсь, в таком варианте надо для надёжности вводить один класс с двумя функциональностями. Если не побьют за нарушение SRP.
N>>Ну в плюсах есть такая возможность, но по умолчанию они используют таки стандартные сравнения.
vsb>А что такое стандартное сравнение для MyClass? operator== вроде не генерится автоматом, т.е. для обычного класса не определены ни сравнение ни хеширование.
Тогда не скомпилируется. Стандартное — это то, что находится "естественным" поиском для a==b