Einzelnen Beitrag anzeigen

Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

Fehler "Type-Parameter 'T' must be value type" obwohl er es ist

  Alt 25. Nov 2021, 09:51
Delphi-Version: 10.4 Sydney
Ich habe folgenden Code der unter 10.0 Seattle bestens funktioniert hat, unter 10.4 Sydney allerdings streikt:

Delphi-Quellcode:
program Project1;

type
   TSomeClass<T: record> = class abstract(TObject)
      //
   end;

   TSomeRecord = record
      someValueType: Byte;
      //someManagedType: IInterface;
   end;

   TRecordClass = class abstract(TSomeClass<TSomeRecord>)
      //
   end;

begin
   //
end.
Wenn TSomeRecord nun ein Feld vom Typ IInterface enthält dann streikt 10.4.

Bemängelt wird die Zeile
TRecordClass = class abstract(TSomeClass<TSomeRecord>) mit dem Hinweis
Zitat:
[dcc32 Error] Project1.dpr(16): E2512 Type parameter 'T' must be a non-nullable value type
Ich verstehe das nicht. Was genau ist sein Problem?
  Mit Zitat antworten Zitat