Здравствуйте, Sheridan, Вы писали:
S>Ы? Нужено ли оно вообще? S>Сколько помню себя каждый раз когда решал применять это была больше блажь, нежели реальная необходимость...
Если ты имеешь ввиду С++, то по-моему нужен крайне редко. А вот typeof на этапе компиляции не помешал бы.
Здравствуйте, Sheridan, Вы писали:
S>Ы? Нужено ли оно вообще? S>Сколько помню себя каждый раз когда решал применять это была больше блажь, нежели реальная необходимость...
Здравствуйте, Sheridan, Вы писали:
S>Ы? Нужено ли оно вообще?
AFAIR, Страуструп в "Дизайне и эволюции..." давал обоснование того, зачем RTTI была включена в С++, почитай. Под рукой книжки нету, так что привести цитату не могу.
Здравствуйте, lazymf, Вы писали:
L>AFAIR, Страуструп в "Дизайне и эволюции..." давал обоснование того, зачем RTTI была включена в С++, почитай. Под рукой книжки нету, так что привести цитату не могу.
Дык вот и у меня нету
[RSDN@Home][1.2.0][alpha][648]
[Высшее право часто есть высшее зло. [Теренций]]
Здравствуйте, Sheridan, Вы писали: S>Например в каких случаях без оного не обойтись?
Практически в любых случаях расширяемой архитектуры. RTTI суть частный случай метаданных, специфичный для ООП. Позволю себе напомнить, что элементарная загрузка DLL в винде использует связывание исходящих вызовов при помощи метаданных, опубликованных библиотекой. Таблицу экспортов можно было бы назвать RunTime Function Info по аналогии с RTTI. Как только мы переходим в мир ООП и компонентного программирования, позднее связывание начинает требовать больше метаданных, а конкретно RTTI.
В частности, основным стимулом введения богатой поддержки RTTI в Delphi послужила компонентная природа предлагаемой модели программирования.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
я таки был вынужден использовать RTTI (typeid) и включить для всего проекта необходимые опции компилятора .
Недавно заиспользовал typeid для протаскивания типов через узкий интерфейс, сохранением в unknown_type и, при получении типа, сравнением typeid-ов сохранённых и получаемых данных.
Кроме того, dynamic_cast — вообще замечательная вещь, например в Builder, когда метод, обработчик события, получает указатель на TObject* а тебе необходимо убедиться что это TButton*.
Здравствуйте, lazymf, Вы писали:
L>Здравствуйте, Sheridan, Вы писали:
S>>Ы? Нужено ли оно вообще?
L>AFAIR, Страуструп в "Дизайне и эволюции..." давал обоснование того, зачем RTTI была включена в С++, почитай. Под рукой книжки нету, так что привести цитату не могу.
На сколько я помнб страуструп сказал в "Язык программирования С++" что если вы не знаете с каким типом сейчас работаете, то это скорее всего кривое проектирование (я с ним в этом полностью согласен). И если вам надо определить тип данных во время выполнения то ни в коем случе не используйте переменную "тип данных" а используйте RTTI.
Здравствуйте, Sheridan, Вы писали:
S>Ы? Нужено ли оно вообще? S>Сколько помню себя каждый раз когда решал применять это была больше блажь, нежели реальная необходимость...
В статически типизированном языке с ADT — ну просто на фиг не нужно. В языках с ограниченной и неполной системой типов — бывает полезным. С той же Java без rtti вообще никуда.
malkolinge wrote: > Хотел бы посмотреть как без РТТИ были бы реализованы всеми вами > обажаемые фреймворки для юнит тестирования итп %)
Ну смотри — http://tut-framework.sourceforge.net/
Здравствуйте, Sheridan, Вы писали:
S>Ы? Нужено ли оно вообще? S>Сколько помню себя каждый раз когда решал применять это была больше блажь, нежели реальная необходимость...