LINUX.ORG.RU

История изменений

Исправление a--, (текущая версия) :

Эта ветка обсуждения началась с вопроса как ещё при проектировании языка заложить возможность развиваться не накапливая «грехи».

Один из вариантов ответа — правильно вводить новые фичи. Как антипример пойдет конечно же с++.

ЕМНИП сначала была только перегрузка функций: f(int), f(float), f(double). Потом завезли шаблоны, и появилась возможность template<class T> f(T arg). И вместо того, чтобы эти две возможности сделать исключающими друг друга по какому-то разумному принципу, их решили сделать совместно используемыми, и для этого навертели такие правила, которые вряд ли кто-то помнит полностью. (И еще ЕМНИП была статья Александреску, как эти правила сломать, стремясь к чему-то хорошему).

Исходная версия a--, :

Эта ветка обсуждения началась с вопроса как ещё при проектировании языка заложить возможность развиваться не накапливая «грехи».

Один из вариантов ответа — правильно вводить новые фичи. Как антипример пойдет конечно же с++.

ЕМНИП сначала быыла только перегрузка функций: f(int), f(float), f(double). Потом завезли шаблоны, и появилась возможность template<class T> f(T arg). И вместо того, чтобы эти две возможности сделать исключающими друг друга по какому-то разумному принципу, их решили сделать совместно используемыми, и для этого навертели такие правила, которые вряд ли кто-то помнит полностью. (И еще ЕМНИП была статья Александреску, как эти правила сломать, стремясь к чему-то хорошему).