Здравствуйте, _Claus_, Вы писали:
_C_>докумекал я — проблема была в неявном преобразовании, которое Н отказывался делать. в Boo это автоматом, а здесь все укажи да расскажи.
Ну, да. Downcasting — это еще тот багодром. Статически-типизированный язык с автоматическим downcast-ом — это треш, на мой взгляд.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, _Claus_, Вы писали:
VD>>Скорее всего map_objects это хэш-таблица хранящая в качестве значения элементы типа object. Естественно, что возвращая obj (типа object) вместо "х" ничего хорошего не получишь. _C_>привет к автомату. но это мелочь.
Вообще не понял, что тут написано.
_C_>оно вообще показывает не в макрокод, а в использующую стороку — [Persist]class x.
Я же объяснил почему так просхоидит. Ты генерируешь имя в контексте раскрытия макроса. Это приводит к использованию клокешона (местоположения) находящегося в стеке. А там как раз локешон "вызова" макроса.
_C_>поэтому, если б оно показало а) в сгенерированный макрос и б) на последний statement — сразу было бы понятно. мне. спасибо!
Задай своему имени местоположению, и сообщение покажет на это местоположение.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, VladD2, Вы писали:
VD>Ну, да. Downcasting — это еще тот багодром. Статически-типизированный язык с автоматическим downcast-ом — это треш, на мой взгляд.
В принципе согласен, но авто downcast от object (и только от object) может быть полезен в языках претендующих на близость к скриптовым. Чего больше — вреда или пользы, утверждать не буду.
Здравствуйте, Ziaw, Вы писали:
Z>В принципе согласен, но авто downcast от object (и только от object) может быть полезен в языках претендующих на близость к скриптовым. Чего больше — вреда или пользы, утверждать не буду.
Если язык статически типизирован, то автоматический downcast — это вредительство. Проблема в том, что автоматический upcast есть практически в любом языке в котором есть иерархическая система типов. Если же поддерживаются и автоматический downcast и upcast можно легко получить ситуацию когда вместо статической типизации появится динамическая.
На мой взгляд, если нужна динамика в статически типизированном языке, то ее нужно как-то выделять. Например, как в шарпе — спец.типом, или как в немереле — макросом. Но решение Бу автоматически делает язык скриптовым со всеми вытекающими проблемами. Тогда почему не использовать Руби или Питон?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.