М>сорри за неровный стиль изложения. но, думаю, мысль моя понятна. семантика операции + и — может быть сколь угодно сложной и если она выполняется над разными типами -- это хороший способ спрятать под капот реализацию логики.
Это прекрасно в теории. На практике за overload +/- во многих местах бьют канделябром по рукам, и правильно делают. А иногда не бьют, и тоже правильно делают
Более того, «семантика операции + и — может быть сколь угодно сложной» скрывает под собой толпу подводных камней, которую я, в принципе, выразил
тутАвтор: Mamut
Дата: 30.01.15
:
Цитата: Any dev can build systems without worrying about implementation internals. Just fit types together
Возражение: После чего в пятницу вечером сервер ложится и не поднимается, потому что какой-то новичок написал код, позволяющий создавать отчеты о продажах за целый год, что начало поднимать с диска терабайты данных в память. А что? API-вызов всего лишь требует типа TDate
Так и со сложными +/-, которые прячут что-то под капотом. В результате строка a = b + c может спокойно положить сервер, потому что под капотом b делает full database lock, а c поднимает в память четыре терабайта данных