powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FPC: Генерики.
25 сообщений из 114, страница 1 из 5
FPC: Генерики.
    #39871386
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
  THashTableString<TValue> = class(THashTable<String,TValue>);
  THashTableString = class(THashTableString<String>);  // Error: Class type expected, but got "<erroneous type>"



Почему?
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871389
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
  TArrayEx<T> = record
    function IndexesOf(Value: T): TArrayEx<integer>;  // Fatal: Syntax error, "identifier" expected but ";" found
  end;



Так тоже нельзя?
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871391
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По первому пункту как я понял нельзя иметь одновременно и генерик класс и обычный о одним названием.

TMyClass и TMyClass<T>

Или есть методы как можно это разрешить?
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871393
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

{$mode delphi}?

Версия какая? На транке компилируется.
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871395
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
  THashTableString<TValue> = class(THashTable<String,TValue>);
  THashTableString = class(THashTableString<String>);  // Error: Class type expected, but got "<erroneous type>"


Может так?
Код: pascal
1.
2.
3.
  THashTableString<TValue> = class(THashTable<String,TValue>);
  THashTableStringAlias = THashTableString<String>; 
  THashTableString = class(THashTableStringAlias);
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871397
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexeyrgreat,

{$mode delphi}?

Ага.

{$IFDEF FPC}
{$MODE DELPHI}


Версия какая? На транке компилируется.
Lazarus 2.1.0
FPC 3.3.1

Вроде как с транка.
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871399
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyМожет так?
Код: pascal
1.
2.
3.
  THashTableString<TValue> = class(THashTable<String,TValue>);
  THashTableStringAlias = THashTableString<String>; 
  THashTableString = class(THashTableStringAlias);

Спасибо, прокатило.
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871869
Фотография Квейд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Код: pascal
1.
2.
3.
  TArrayEx<T> = record
    function IndexesOf(Value: T): TArrayEx<integer>;  // Fatal: Syntax error, "identifier" expected but ";" found
  end;



Так тоже нельзя?

// grammar nazi on

Код: pascal
1.
 function IndicesOf(Value: T): TArrayEx<integer>;  



// grammar nazi off
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871872
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Квейд,

авторWhich is correct indexes or indices?

Both "indexes" and "indices" are acceptable plural forms of the word "index" or to refer to more than one index. Index is one of those rare words that have two different plurals in English. "Indices" is originally a Latin plural, while "Indexes" has taken the English way of making plurals, using –s or –es.
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871876
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Квейд,

+1000!
-------
rgreat,

-1000, фу, еще и споришь!
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871878
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изыдите, латиняне!
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871887
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин до чего в FPC все грустно с генериками.

Такую кучу костылей приходиться ставить...
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871888
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оно корректно даже определить какую overload функцию использовать не может :(

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  TArrayEx<T> = record
    function Add(Value: T): integer; overload; {$IFDEF Inline} inline; {$ENDIF}
    function Add(Values: array of T): integer; overload;
    function Add(Values: TArrayEx<T>): integer; overload;
    function AddUnique(Value: T): integer; {$IFDEF Inline} inline; {$ENDIF}
end;

function TArrayEx<T>.AddUnique(Value: T): integer;
begin
  Result:=IndexOf(Value);
  if Result<0 then begin
    Result:=Add(Value);  // Error: Can't determine which overloaded function to call
  end;
end;
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871897
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Error: Compilation raised exception internally

Приехали...
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871901
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему вместо:
Код: pascal
1.
2.
var
  x : TArrayEx<integer>;

я вынужден писать:
Код: pascal
1.
2.
var
  x : specialize TArrayEx<integer>;

?

Что это за хрень? Нафига этот костыль?
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871902
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А все, {$mode DELPHI} помогло.
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871943
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat,

зато там они фактически макросы, дельфи не сможет много что из fpc-го
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871944
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan),

Пока я вижу что верно и обратное.
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871961
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan),

Шаблоны, макросы там отдельная тема ;)

rgreatПока я вижу что верно и обратное.
Недоделок хватает везде, но концептуально в фпц круче.
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871962
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexeykealon(Ruslan),

Шаблоны, макросы там отдельная тема ;)

rgreatПока я вижу что верно и обратное.
Недоделок хватает везде, но концептуально в фпц круче.

В FPC появилась возможность объявлять переменные там, где надо, а не сваливать все в кучу в начало функции?
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871963
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyНедоделок хватает везде, но концептуально в фпц круче.Концептуально и линукс круче винды.
Но на практике виндой пользоватся проще и удобней.
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871964
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя за прошедшие 10 лет лазарь заметно похорошел.
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871965
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat...Концептуально и линукс круче винды...

По каким позициям, конкретно?
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871967
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
FPC: Генерики.
    #39871968
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreatёёёёё,

https://www.google.com/search?as_q=преимущества линукс
Ну там же конкретно написано, что "Linux концептуально слабее Windows".
...
Рейтинг: 0 / 0
25 сообщений из 114, страница 1 из 5
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FPC: Генерики.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]