>>>> по поводу твоего страха о изменении поведения сложения *примитивных* типов
>>>>freehck: Когда это он у меня появился? Я-то почему не в курсе?
>>>>freehck: А если функция (+) может быть перегружена, то я ни в чём не могу быть уверен
>>>> и не важно, совершается ли какое-либо действие через метод или перегруженный оператор!
>>>>freehck: Да что вы прицепились к этому вашему любимому различию между именованием функций буквами и мат.символами? Об этом не было речи вообще. И всё подряд методами называете зачем-то. ООП - это не весь мир. И перегрузка операторов работает не только для объектов, даже в том же C++.
> Тут оппонент видимо уже настолько ушел в спор, что забыл что обсуждается. А обсуждалось, вопреки далее Вами написанному, то, что возможность перегрузки операторов повлечёт известные проблемы языков с подобным подходом, такие как:
1) Усложнение понимания кода программистом,
2) Невозможность реализовать вывод типов.
Посмотрите выше по треду #4 и #10. Про подход Rust к этому делу - ни слова, вопреки тому, что Вы утверждаете:
> Обсуждается подход реализованный в RUST, и если это не пустой разговор,
> хотелось бы обоснованных аргументов, на примере RUST, где по его утверждению
> "..программист уже не сможет быть уверен в том, какой именно экземпляр
> функции, реализующей оператор, будет вызван":
> http://www.opennet.ru/openforum/vsluhforumID3/107586.html#66
Тем не менее, Ваш пример #66 - ни к селу, ни к городу, по очевидной причине: пока Вы в рамках одного проекта - грепайте на здоровье, но что Вы будете делать функцией, которая была перегружена в стороннем модуле? Что Вы тогда собственно грепать собрались? А ваша IDE может и не подсветить Вам, что, мол, Вы ошибочно применили не ту функцию, потому что шаблон перегруженной функции совпал с каким-то другим. В случае же, если перегрузки нет - Вы наверняка получаете ошибку на этапе компиляции (а скорее всего даже раньше: IDE может Вам и подсветить строчку, предупреждая о неправильном типе).