Проблема с дженриками из дельфи

Вопросы программирования и использования среды Lazarus.

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

Проблема с дженриками из дельфи

Сообщение Alex2013 » 12.05.2020 15:23:02

В сборке OpenCV под дельфи и лазарус Laz_OpenCV_2-master ( https://github.com/six1/Laz_OpenCV_2 )
есть модуль ocv.cls.core.pas ( расширенный "OpenCV + ООП" с классам )
и в нем есть объявления типов вроде этого
Код: Выделить всё
  TVectorRect = TArray<IRect>;
  TVectorInt = TArray<integer>;
  TVectorDouble = TArray<double>;


Проблема в том что дженерик TArray явно описан в дельфи как базовый тип, а лазарус его "знать незнает".
Но попытки описать его самостоятельно (как и попытки переписать код без дженериков ) раз за разом проваливаются .

Народ что посоветуете ? :idea:
Зы
Пока спрашивал пришла светлая мысль поискать аналог generics.collections для лазаруса ... :wink:
Нашел !
https://github.com/maciej-izak/generics.collections
(Еще не пробовал но вроде то что надо )
Alex2013
долгожитель
 
Сообщения: 1909
Зарегистрирован: 03.04.2013 11:59:44

Re: Проблема с дженриками из дельфи

Сообщение iskander » 12.05.2020 15:45:44

Alex2013 писал(а):Проблема в том что дженерик TArray явно описан в дельфи как базовый тип, а лазарус его "знать незнает".

Не очень понятно при чем здесь лазарь.
Alex2013 писал(а):Но попытки описать его самостоятельно (как и попытки переписать код без дженериков ) раз за разом проваливаются .

То есть FPC-3.0.4 отказывается компилировать что-то вроде
Код: Выделить всё
type
  generic TArray<T> = array of T;
?
iskander
постоялец
 
Сообщения: 382
Зарегистрирован: 08.01.2012 18:43:34

Re: Проблема с дженриками из дельфи

Сообщение Alex2013 » 12.05.2020 16:11:55

iskander писал(а):
Alex2013 писал(а):Проблема в том что дженерик TArray явно описан в дельфи как базовый тип, а лазарус его "знать незнает".

Не очень понятно при чем здесь лазарь.
Alex2013 писал(а):Но попытки описать его самостоятельно (как и попытки переписать код без дженериков ) раз за разом проваливаются .

То есть FPC-3.0.4 отказывается компилировать что-то вроде
Код: Выделить всё
type
  generic TArray<T> = array of T;
?

Там вроде не только этот дженерик был .. (Но вообще я в дженериках "темный как штаны пожарника"... так что мог что-то напутать. )

Зы
Добавил всюду
Uses
generics.collections...
..компиляция вроде проскочила . Но теперь "новый упор" дальше "но это уже другая история "
Последний раз редактировалось Alex2013 12.05.2020 16:16:20, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 1909
Зарегистрирован: 03.04.2013 11:59:44

Re: Проблема с дженриками из дельфи

Сообщение zub » 12.05.2020 16:16:10

Alex2013
Ты не ищешь легких путей. это не комплимент.
По твоей ссылке исходный пакет совместимый с дельфовым generics.collections, он давно был включен в состав fpc в виде пакета под названием rtl-generics
Но из-за каких то терок внутри команды с Макеем (или хз почему) в релизах FPC он по умолчанию не устанавливается - нужно установить самостоятельно. В транке он работал всегда с момента добавления.

Варианты:
1. Правильный. Если ты используеш FPC транк или rc3.2 - достаточно добавить в зависимостях проекта пакет rtl-generics.
2. Тоже правильный. Для более старых версий придется собрать и подключить rtl-generics самомтоятельно.
3. Для лентяев. Скопировать содержимое fpcsrc\packages\rtl-generics\src\ в папку своего проекта
4. Для лиц злоупотребляющих разделом "Потрепаться". В составе лазаря есть копия данного пакета оформленная в виде LPK - lazarus\components\sparta\generics\sparta_generics.lpk подключаем, добавляем в зависимости проекта sparta_generics

зы. если выберешь варианты 4 или недайбог 3 - обещай не тратить сэкономленное время на злоупотребляения
Последний раз редактировалось zub 12.05.2020 16:21:21, всего редактировалось 1 раз.
zub
долгожитель
 
Сообщения: 2652
Зарегистрирован: 14.11.2005 23:51:26

Re: Проблема с дженриками из дельфи

Сообщение Alex2013 » 12.05.2020 16:18:53

Спасибо! ... что поделать, с дженериками я все еще почти не сталкивался . :roll:
Зы
Ядовитый но полезный Zub в своем репертуаре ... :wink:
Alex2013
долгожитель
 
Сообщения: 1909
Зарегистрирован: 03.04.2013 11:59:44


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 10

Рейтинг@Mail.ru