Einzelnen Beitrag anzeigen

Der schöne Günther

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

Compiler warnt nicht vor nicht initialisiertem Rückgabewert wenn...

  Alt 11. Mär 2015, 18:02
Delphi-Version: XE7
... es eine generische Methode ist.

Ich will nicht wissen wie viele solcher Stellen ich bereits überall im Code habe. Auf XE7, Win32 und Win64 gibt es keine Warnungen mit folgendem Code:

Delphi-Quellcode:
program Project22;

type
   {$DEFINE GENERIC}
   TSomeClass = class
      public function someFunc{$IFDEF GENERIC}<T>{$ENDIF}(): Boolean;
   end;


function TSomeClass.someFunc{$IFDEF GENERIC}<T>{$ENDIF}(): Boolean;
begin
   // Nope
end;

begin
   WriteLn( TSomeClass.Create().someFunc{$IFDEF GENERIC}<TObject>{$ENDIF}() );
end.

Ich sehe ein dass manche Typen die T annehmen kann (String, Interface, ...) nicht uninitialisiert sein können. Aber selbst wenn ich den Typ auf ": class" einschränke kommt keine Warnung.

Habe ich einen Denkfehler oder ist das eine weitere Delphi-Eigenheit™ ?


// Edit:
Ich merke grade, eigentlich warnt er in einer generischen Methode vor so ziemlich gar nichts. Also schon fast Blindflug. Delphi ist halt nur was für Profis.

Geändert von Der schöne Günther (11. Mär 2015 um 18:27 Uhr)
  Mit Zitat antworten Zitat