четверг, ноября 06, 2014

Пространства имен. Неработающая фича Delphi.

В процессе очередного рефакторинга обнаружилось, что пространства имен в Delphi, которые для нативных дельфей стали доступны еще в Delphi 2006, если не раньше, попросту не работают. Как именно они не работают я отписал в QC#128737. А также оформил небольшой фич-риквест QC#128740. Не сочтите за труд, поддержите голосованием.

2 комментария:

Николай Зверев комментирует...

К сожалению, это так.

Кстати из той же документации (ну или из какой-то из версий) я для себя вынес, что namespace'ов как таковых и нет. Просто позволили использовать точку в имени юнита (для разделения VCL от FMX, в частности), a для совместимости со старым кодом ввели параметр unit scope names.

Kazantsev Alexey комментирует...

Я полистал доку на 2006, 2009 и XE2, по пространствам имен там различий нет, вроде. Да, нормальной реализации пространств имен в Delphi никогда небыло, но и описанная в документации, этакая эрзац реализация на деле оказалась недоделкой. Как будто действительно просто разрешили пользоваться точкой. Но это скорее всего не так, наверняка задумка была сделать хоть что-то похожее на пространства имен, но ниасилили (т.е. сделали что-то - использование в декларации же работает, со странностями, но работает - но до ума не довели).