Generic Function

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

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

Generic Function

Сообщение vitya007 » 02.12.2016 10:55:37

Generic в функциях не поддерживаются?

Код: Выделить всё
program test;

type
  TTestType<T> = class
   v: T;
  public
   procedure Proc; virtual; abstract;
   procedure ProcT<T2>();
  end;
 
  TTestTypeSpec = TTestType<Single>;
   
procedure TTestType<T>.ProcT<T2>();
begin

end;
   
begin

end.


Код: Выделить всё
fpc.exe test.pas -MDelphi -WG -O4
test.pas(8,17) Fatal: Syntax error, ";" expected but "<" found
vitya007
новенький
 
Сообщения: 32
Зарегистрирован: 10.05.2011 22:23:27

Re: Generic Function

Сообщение zub » 02.12.2016 11:58:02

На текущий момент нет. Оформите багрепорт.
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Generic Function

Сообщение Дож » 02.12.2016 13:14:31

Есть нечто в транке http://lists.freepascal.org/fpc-pascal/ ... 45746.html
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Generic Function

Сообщение vitya007 » 02.12.2016 13:48:13

http://wiki.freepascal.org/Generics_proposals
Здесь тоже инфа, но не почему-то не могу заставить это работать
vitya007
новенький
 
Сообщения: 32
Зарегистрирован: 10.05.2011 22:23:27

Re: Generic Function

Сообщение zub » 02.12.2016 13:52:03

Потому что вам в багтрекер.
Транк на этом вылетает с IE.
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Generic Function

Сообщение Дож » 02.12.2016 13:55:46

vitya007, proposal переводится как «предложение», на этой странице разработчики fpc записывали варианты синтаксиса для дженериков в паскале. Используя эту страницу трудно заставить что-то работать.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Generic Function

Сообщение vitya007 » 02.12.2016 14:00:26

Дож писал(а):vitya007, proposal переводится как «предложение», на этой странице разработчики fpc записывали варианты синтаксиса для дженериков в паскале. Используя эту страницу трудно заставить что-то работать.


Не обратил внимание. Смотрел код.
Ладно. Твоя ссылка
Дож писал(а):сть нечто в транке http://lists.freepascal.org/fpc-pascal/ ... 45746.html


Код: Выделить всё
program test;

{$mode objfpc}

generic function Add<T>(aLeft, aRight: T): T;
begin
   Result := aLeft + aRight;
end;

begin
   Writeln(specialize Add<String>('Generic ', 'routines') + specialize Add<String>(' with ', 'Free Pascal'));
end.


Код: Выделить всё
fpc.exe test.pas -O4
test.pas(5,1) Fatal: Syntax error, "BEGIN" expected but "identifier GENERIC" found
vitya007
новенький
 
Сообщения: 32
Зарегистрирован: 10.05.2011 22:23:27

Re: Generic Function

Сообщение Дож » 02.12.2016 14:13:27

vitya007, не вижу версии fpc
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Generic Function

Сообщение zub » 02.12.2016 14:19:27

Код: Выделить всё
fpc.exe test.pas -O4
Free Pascal Compiler version 3.1.1 [2016/11/08] for i386
Copyright (c) 1993-2016 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling test.pas
Linking test.exe
11 lines compiled, 0.0 sec, 26736 bytes code, 1316 bytes data

Ты специально вырезал инфу про версию своего компилятора? чтоб было покороче и попонятней?
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Generic Function

Сообщение vitya007 » 02.12.2016 14:28:58

zub писал(а):
Код: Выделить всё
fpc.exe test.pas -O4
Free Pascal Compiler version 3.1.1 [2016/11/08] for i386
Copyright (c) 1993-2016 by Florian Klaempfl and others
Target OS: Win32 for i386
Compiling test.pas
Linking test.exe
11 lines compiled, 0.0 sec, 26736 bytes code, 1316 bytes data

Ты специально вырезал инфу про версию своего компилятора? чтоб было покороче и попонятней?


Оказывается уже 3.1.1 есть.
PS. в следующий раз буду больше выкладывать.

Добавлено спустя 30 секунд:
Странно, а где ты ее взял?
vitya007
новенький
 
Сообщения: 32
Зарегистрирован: 10.05.2011 22:23:27

Re: Generic Function

Сообщение zub » 02.12.2016 14:34:46

Снизу
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Generic Function

Сообщение vitya007 » 02.12.2016 14:37:48

http://freepascal.org/download.var
Почему тут нету?
И где 3.1.1 скачать? :D
vitya007
новенький
 
Сообщения: 32
Зарегистрирован: 10.05.2011 22:23:27

Re: Generic Function

Сообщение zub » 02.12.2016 14:50:32

zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: Generic Function

Сообщение vitya007 » 02.12.2016 17:00:35

zub писал(а):http://svn.freepascal.org/svn/fpc/trunk


что-то я не пойму как собрать это
vitya007
новенький
 
Сообщения: 32
Зарегистрирован: 10.05.2011 22:23:27

Re: Generic Function

Сообщение vitya007 » 05.12.2016 14:15:15

Так, а кто знает как засунуть generic function в class ?

Код: Выделить всё
program test;

type
   generic TFClass<TC> = class
      generic function Res<TF>(): TF;
   end;
   
   generic function TFClass.Res<TF>: TF;
   begin
   
   end;

begin

end.


Код: Выделить всё
FPC 3.1.1
fpc.exe test.pas -Mobjfpc -O4
test.pas(5,27) Fatal: Internal error 200511173
vitya007
новенький
 
Сообщения: 32
Зарегистрирован: 10.05.2011 22:23:27

След.

Вернуться в Free Pascal Compiler

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24

Рейтинг@Mail.ru