> -- PGR писал(а):
> Действительно удобная штука. Как его ещё не стянули в другие языки...
Не все так просто - WITH тесно завязан на рантайм и теги типов. Теговый рантайм Оберонов изначально продумывался для того, чтобы обеспечить максимально эффективный IS/WITH, который выполнялся бы за одно сравнение (для этого тег каждого типа знает свой уровень в иерархии и непосредственно индексирует тег предков).
Т.е. даже в критичном по быстродействию коде можно писать типизированные селекторы WITH, а не пытаться экономить на не-ОО варианте с явным полем типа и CASE - WITH будет выполняться практически так же, как и CASE.

Если вы в С++ напишете цепочку if с dynamic_cast, это будет шуровать гораздо медленней. Как и RTTI в Дельфи. Просто потому, в первом RTTI появился очень поздно и во многих реализациях не особо-то и развит до сих пор. А во втором ООП на динамических экземплярах, и никому и в голову не придет использовать объекты для передачи сообщений, да еще и разбор типа через RTTI... Т.е. не ввели WITH просто потому, что не готовы к его использованию.