История изменений
Исправление CatsCantFly, (текущая версия) :
Касты исчезли из пользовательского кода в код внутренностей стандартной библиотеки и инстанцирования шаблонов == кастов в пользовательском прикладном коде нет. Соответственно, он не ломается от расширения числа обобщаемых классов, в отличие от портянки if-ов с динамик кастом к каждому конкретному типу
- При каждом расширении придется дописать к Object еще один тип. Вот и все накладные расходы (учитывая, что мы говорим все еще о классах, которые нельзя обобщить общим интерфейсом - вы же полезете добавлять еще одну проверку в простыню динамик кастов)
- Все совместимо, функция в визиторе принимает любой тип
- Если бы я хотел, я бы написал там else. Причем тут подход?
Исходная версия CatsCantFly, :
Касты исчезли из пользовательского кода в код внутренностей стандартной библиотеки и инстанцирования шаблонов == кастов в пользовательском прикладном коде нет. Соответственно, он не ломается от расширения числа обобщаемых классов, в отличие от портянки if-ов с динамик кастом к каждому конкретному типу
1. При каждом расширении придется дописать к Object еще один тип. Вот и все накладные расходы (учитывая, что мы говорим все еще о классах, которые нельзя обобщить общим интерфейсом - вы же полезете добавлять еще одну проверку в простыню динамик кастов) 2. Все совместимо, функция в визиторе принимает любой тип 3. Если бы я хотел, я бы написал там else. Причем тут подход?