FPC: Генерики.

rgreat
Дата: 03.10.2019 21:47:54
  THashTableString<TValue> = class(THashTable<String,TValue>);
  THashTableString = class(THashTableString<String>);  // Error: Class type expected, but got "<erroneous type>"


Почему?
rgreat
Дата: 03.10.2019 21:52:36
  TArrayEx<T> = record
    function IndexesOf(Value: T): TArrayEx<integer>;  // Fatal: Syntax error, "identifier" expected but ";" found
  end;


Так тоже нельзя?
rgreat
Дата: 03.10.2019 21:54:02
По первому пункту как я понял нельзя иметь одновременно и генерик класс и обычный о одним названием.

TMyClass и TMyClass<T>

Или есть методы как можно это разрешить?
Kazantsev Alexey
Дата: 03.10.2019 22:08:10
rgreat,

{$mode delphi}?

Версия какая? На транке компилируется.
Kazantsev Alexey
Дата: 03.10.2019 22:14:15
  THashTableString<TValue> = class(THashTable<String,TValue>);
  THashTableString = class(THashTableString<String>);  // Error: Class type expected, but got "<erroneous type>"

Может так?
  THashTableString<TValue> = class(THashTable<String,TValue>);
  THashTableStringAlias = THashTableString<String>; 
  THashTableString = class(THashTableStringAlias);
rgreat
Дата: 03.10.2019 22:19:11
Kazantsev Alexey
rgreat,

{$mode delphi}?


Ага.

{$IFDEF FPC}
{$MODE DELPHI}


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

Lazarus 2.1.0
FPC 3.3.1

Вроде как с транка.
rgreat
Дата: 03.10.2019 22:22:00
Kazantsev Alexey
Может так?
  THashTableString<TValue> = class(THashTable<String,TValue>);
  THashTableStringAlias = THashTableString<String>; 
  THashTableString = class(THashTableStringAlias);
Спасибо, прокатило.
Квейд
Дата: 04.10.2019 19:29:36
rgreat
  TArrayEx<T> = record
    function IndexesOf(Value: T): TArrayEx<integer>;  // Fatal: Syntax error, "identifier" expected but ";" found
  end;


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


// grammar nazi on

 function IndicesOf(Value: T): TArrayEx<integer>;  


// grammar nazi off
rgreat
Дата: 04.10.2019 19:37:55
Квейд,

автор
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.
ёёёёё
Дата: 04.10.2019 19:54:52
Квейд,

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

-1000, фу, еще и споришь!