![]() |
Delphi-Version: 10 Seattle
Generics und Rekursion- Was hat sich geändert?
Folgendes funktionierte in XE7 noch, in 10 Seattle muss ich den Typ explizit angeben sonst sagt er mir
Code:
Ich finde in den Changelogs nichts. XE8 habe ich nicht ausprobiert. Gibt es irgendetwas diese Änderungen beschreibt?
[dcc32 Fehler] Project1.dpr(20): E2531 Methode 'someGenericStuff' erfordert explizite Typargumente
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) |
AW: Generics und Rekursion- Was hat sich geändert?
Abgesehen, dass hier scheinbar seit jeher ein Bug vorliegt (ein auf class constrainter Generic erlaubt den Typ Pointer) siehe
![]() scheint es sich um eine Regression zu handeln, was die Type Inference angeht - bitte reporten. |
AW: Generics und Rekursion- Was hat sich geändert?
Seit wann können die "doofen" Generics Typen anhand der Parameter automatisch bestimmen?
Delphi-Quellcode:
class procedure TSomeClass.someGenericStuff<T>(const arg: T);
begin someOtherGenericStuff<T>(arg); someGenericStuff<T>(arg); end; TSomeClass.someGenericStuff<TObject>(nil); // oder sonstwas |
AW: Generics und Rekursion- Was hat sich geändert?
Zitat:
![]() |
AW: Generics und Rekursion- Was hat sich geändert?
Zitat:
![]() |
AW: Generics und Rekursion- Was hat sich geändert?
Zitat:
Im Zweifelsfall die IDE mit BDSSetLang auf Englisch umstellen und nochmal probieren. Das hat nebenbei noch den Vorteil, daß man die originalen Menü- und Dialog-Texte bekommt und die Fehlermeldungen nicht noch rückübersetzen muss. |
AW: Generics und Rekursion- Was hat sich geändert?
Ich hatte "All L10N" angegeben. Ich musste es erst nachschlagen*, aber "L10N" ist wohl das Profi-Kürzel für "Localisation". Das ist doch nicht falsch, oder?
Oder sind die Chancen höher, dass der Fall schneller bearbeitet wird wenn es englisch ist? Zitat:
![]() |
AW: Generics und Rekursion- Was hat sich geändert?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz