Вопросы программирования на Free Pascal, использования компилятора и утилит.
Модератор: Модераторы
vitya007
новенький
Сообщения: 32 Зарегистрирован: 10.05.2011 22:23:27
Сообщение
vitya007 » 02.12.2016 09: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
zub
долгожитель
Сообщения: 2890 Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:
Сообщение
zub » 02.12.2016 10:58:02
На текущий момент нет. Оформите багрепорт.
Дож
энтузиаст
Сообщения: 900 Зарегистрирован: 12.10.2008 16:14:47
Сообщение
Дож » 02.12.2016 12:14:31
zub
долгожитель
Сообщения: 2890 Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:
Сообщение
zub » 02.12.2016 12:52:03
Потому что вам в багтрекер. Транк на этом вылетает с IE.
Дож
энтузиаст
Сообщения: 900 Зарегистрирован: 12.10.2008 16:14:47
Сообщение
Дож » 02.12.2016 12:55:46
vitya007 , proposal переводится как «предложение», на этой странице разработчики fpc записывали варианты синтаксиса для дженериков в паскале. Используя эту страницу трудно заставить что-то работать.
vitya007
новенький
Сообщения: 32 Зарегистрирован: 10.05.2011 22:23:27
Сообщение
vitya007 » 02.12.2016 13:00:26
Дож писал(а): vitya007 , proposal переводится как «предложение», на этой странице разработчики fpc записывали варианты синтаксиса для дженериков в паскале. Используя эту страницу трудно заставить что-то работать.
Не обратил внимание. Смотрел код.
Ладно. Твоя ссылка
Код: Выделить всё
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
Дож
энтузиаст
Сообщения: 900 Зарегистрирован: 12.10.2008 16:14:47
Сообщение
Дож » 02.12.2016 13:13:27
vitya007 , не вижу версии fpc
zub
долгожитель
Сообщения: 2890 Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:
Сообщение
zub » 02.12.2016 13: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Ты специально вырезал инфу про версию своего компилятора? чтоб было покороче и попонятней?
vitya007
новенький
Сообщения: 32 Зарегистрирован: 10.05.2011 22:23:27
Сообщение
vitya007 » 02.12.2016 13:29:28
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 секунд: Странно, а где ты ее взял?
zub
долгожитель
Сообщения: 2890 Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:
Сообщение
zub » 02.12.2016 13:34:46
Снизу
zub
долгожитель
Сообщения: 2890 Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:
Сообщение
zub » 02.12.2016 13:50:32
vitya007
новенький
Сообщения: 32 Зарегистрирован: 10.05.2011 22:23:27
Сообщение
vitya007 » 02.12.2016 16:00:35
zub писал(а): http://svn.freepascal.org/svn/fpc/trunk
что-то я не пойму как собрать это
vitya007
новенький
Сообщения: 32 Зарегистрирован: 10.05.2011 22:23:27
Сообщение
vitya007 » 05.12.2016 13: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