Нужно ли предоставлять операторы == и / или! =? Я прочитал здесь: Почему компиляторы C ++ не определяют operator == и operator! =? что я делаю, но когда я на самом деле попробовал (не предоставил и не попытался их использовать), программа скомпилировалась нормально. Так, что происходит?
Использование VS2010, если это имеет значение.
Эти операторы определены для фундаментальных, определенных языком типов, а не для ваших пользовательских. Так что это будет работать для int
с, например. Но не для class foo;
если вы не предоставите их явно — компилятор не знает как сравнить свои собственные определенные типы, если вы еще не сказали, как это сделать.
Других решений пока нет …