Дженерики

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Ответить
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Дженерики

Сообщение Mirage »

Кто работал с дженериками в FPC, просветите плиз как обстоят с ними дела сейчас (вроде неофициально как-то были) и совместимы ли они с оными в Tiburon? Насколько я знаю, не совместимы, но может в режиме совместимости с Delphi будут совместимы?
Аватара пользователя
*vmr
постоялец
Сообщения: 168
Зарегистрирован: 08.01.2007 00:46:07
Откуда: Киев
Контактная информация:

Сообщение *vmr »

Думаю их полностью переделают под дельфийские, забив на то что есть сейчас (они ж то и были неофициально)
Хотя люди уже успели понаписывать кода... вон только в JCL гляньте...
Mirage
энтузиаст
Сообщения: 881
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia
Контактная информация:

Сообщение Mirage »

Надеюсь, что так, хотя в планах вроде такого нет.
Я почему интересуюсь - в D2009 изменения очень серьезные, причем, в основном, в положительную сторону. Думаю, господству D7 скоро (годик-два) придет конец. И можно дропнуть её поддержку ради дженериков и анонимных методов (хотя какие они нафиг методы?).
Кстати, последними тоже проникся в FPC случайно не предвидится?
При ближайшем рассмотрении, выясняется, что "запоминание" контекста анонимными методами довольно серьезная фича, напрочь отсутствующая в С++, если чё.
В общем, с использованием дженериков, перегрузок операторов (наконец пригодятся) и, предположительно, анонимных методов, можно очень эффективные и удобные библиотеки писать. Хотелось бы, чтобы они еще и кроссплатформенными были.
Впрочем, годик на развитие FPC еще есть.:)
Аватара пользователя
*vmr
постоялец
Сообщения: 168
Зарегистрирован: 08.01.2007 00:46:07
Откуда: Киев
Контактная информация:

Сообщение *vmr »

Mirage писал(а):хотя какие они нафиг методы?

Методы, методы :)
Название связано с внутренней реализацией — лямбды являются ничем иным как методами класса (а на самом деле интерфейса), в полях которого хранится контекст вызова

Mirage писал(а):При ближайшем рассмотрении, выясняется, что "запоминание" контекста анонимными методами довольно серьезная фича, напрочь отсутствующая в С++

Хе, этой фичи даже в С++ х0 не предвидется...
... и в Джаве тоже нету.


Интересует также как там обстоят дела с Юникодом в фрипаскале. Все-таки без него совместимости с новыми дельфями не будет
vital
новенький
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение vital »

*vmr писал(а):Думаю их полностью переделают под дельфийские, забив на то что есть сейчас (они ж то и были неофициально)
Хотя люди уже успели понаписывать кода... вон только в JCL гляньте...


А можно пример синтаксиса этих самых неофициальных дженериков? В референсе от 2.2.0 я такого не нашел.
По уму, много чего ещё надо в соответствие с дельфой приводить: области видимости, перегрузку операторов, класс-хелперы, автоинлайн, который, впрочем, в дельфе(по крайней мере в 2006-й) достаточно криво работает :D
Аватара пользователя
*vmr
постоялец
Сообщения: 168
Зарегистрирован: 08.01.2007 00:46:07
Откуда: Киев
Контактная информация:

Сообщение *vmr »

vital писал(а):А можно пример синтаксиса этих самых неофициальных дженериков?

http://freepascal.ru/article//freepasca ... 628121838/
vital
новенький
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение vital »

М-да... Дельфийский вариант получше будет, проработанней, что-ли. В FPC они, словно, нечто инородное, прикрученное "чтобы было" :D
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

>>М-да... Дельфийский вариант получше будет, проработанней, что-ли. В FPC они, словно, нечто инородное, прикрученное "чтобы было"

синтаксически может, реализация в fpc получше будет
vital
новенький
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение vital »

zub писал(а):реализация в fpc получше будет

Чем?
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

например к параметрическим типам не применимы операции типа +,-,= и т.д. нельзя сделать параметрический object. я сильно не ковырялся
Ответить