Einzelnen Beitrag anzeigen

Der schöne Günther

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

Generics und Rekursion- Was hat sich geändert?

  Alt 1. Mär 2016, 10:30
Delphi-Version: 10 Seattle
Folgendes funktionierte in XE7 noch, in 10 Seattle muss ich den Typ explizit angeben sonst sagt er mir
Code:
[dcc32 Fehler] Project1.dpr(20): E2531 Methode 'someGenericStuff' erfordert explizite Typargumente
Ich finde in den Changelogs nichts. XE8 habe ich nicht ausprobiert. Gibt es irgendetwas diese Änderungen beschreibt?

Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

type
   TSomeClass = class
      class procedure someGenericStuff<T: class>(const arg: T);
      class procedure someOtherGenericStuff<T: class>(const arg: T);
    end;

{ TSomeClass }

class procedure TSomeClass.someGenericStuff<T>(const arg: T);
begin
   someOtherGenericStuff(arg); // Geht immer
   someGenericStuff
      {$IF CompilerVersion > 28}<T>{$ENDIF} //Sonst E2531
   (arg);
end;

class procedure TSomeClass.someOtherGenericStuff<T>(const arg: T);
begin
   //
end;

begin
   TSomeClass.someGenericStuff(nil);
end.

(Ja, der Code macht keinen Sinn, es geht nur ums Kompilieren)
  Mit Zitat antworten Zitat