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



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



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

TMyClass и TMyClass<T>

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

{$mode delphi}?

Версия какая? На транке компилируется.
...
Рейтинг: 0 / 0
03.10.2019, 22:14
    #39871395
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FPC: Генерики.
Код: 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
03.10.2019, 22:19
    #39871397
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FPC: Генерики.
Kazantsev Alexeyrgreat,

{$mode delphi}?

Ага.

{$IFDEF FPC}
{$MODE DELPHI}


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

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

Спасибо, прокатило.
...
Рейтинг: 0 / 0
04.10.2019, 19:29
    #39871869
Квейд
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FPC: Генерики.
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
04.10.2019, 19:37
    #39871872
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FPC: Генерики.
Квейд,

автор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
04.10.2019, 19:54
    #39871876
ёёёёё
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FPC: Генерики.
Квейд,

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

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

Такую кучу костылей приходиться ставить...
...
Рейтинг: 0 / 0
04.10.2019, 20:33
    #39871888
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FPC: Генерики.
Оно корректно даже определить какую 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
04.10.2019, 20:55
    #39871897
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FPC: Генерики.
Error: Compilation raised exception internally

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

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

?

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

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

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

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

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

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

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

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

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

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


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