В статье Перегрузка операторов Википедии приводится список языков, которые её поддерживают.
Мне смешно думать об этом. Например, любой компилятор C должен различать int * c;
и double d = (int) f * (float) g;
. В первом случае * указывает, что c является указателем на int, а во втором - оператором умножения. Хотя он не экспортируется за пределы самого компилятора, C, похоже, имеет функцию перегрузки оператора. C ++ экспортировал его вне компилятора?
Я уверен, что в других языках, таких как Java, должен быть какой-то механизм, чтобы сообщать + или * или подобные операторы, когда они используются между различными комбинациями и перестановками типов операндов.