![]() |
Compiler-Direktive {$HINTS OFF} funktioniert nicht
Ich habe ein wenig die Suche und Google bemüht, aber keinen Beitrag gefunden, der mir evtl. weiterhelfen könnte. Ich habe eine Konsolenanwendung geschrieben, die einen kleinen Benchmark ausführt. Dabei habe ich dann folgenden Code:
Delphi-Quellcode:
Die Variable RttiProperty wird danach nicht mehr verwendet. Ja, ich weiß, sollte eigentlich nicht sein, aber ich will die Zuweisung aber trotzdem. Nun erscheint pro Zuweisung an die Variable RttiProperty die Meldung:
{$HINTS OFF}
for i := 0 to TEST_LOOPS do RttiProperty := RttiType.GetProperty('One'); {$HINTS ON}
Code:
Ich würde diese Meldung ja verstehen, wenn denn {$HINTS OFF} nicht davor stehen würde, aber das ist nun mal der Fall. Warum spuckt der Compiler mir hier trotzdem einen Hinweis aus? Ich habe auch schon versucht es globaler zu definieren und nur einmal, kein Erfolg. An den Compiler-Einstellungen habe ich nichts geändert, ist alles Standard!
[DCC Hinweis] Project1.dpr(221): H2077 Auf 'RttiProperty' zugewiesener Wert wird niemals benutzt
|
AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht
hab jetzt zwar keine direkte Lösung, aber...
Wenn es eh nicht benutzt wird, warum dann nicht gleich so?
Delphi-Quellcode:
Sollte für einen Benchmark keinen Unterschied ausmachen, da Delphi hier eine interne Variable nutzt.
for i := 0 to TEST_LOOPS do
RttiType.GetProperty('One'); oder eben
Delphi-Quellcode:
for i := 0 to TEST_LOOPS do
RttiProperty := RttiType.GetProperty('One'); RttiProperty := nil; |
AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht
Jo, klar. Das hatte ich mir dann auch gedacht :stupid: Aber seltsam ist es dann immer noch, dass diese Direktive total ignoriert wird.
|
AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht
Es sollte auch noch irgendeinen anderen Compilerschalter geben, welcher geziehlt diese Meldungen deaktiviert ... vielleicht hat man ja vergessen das globale Hint auch mit abzufragen.
|
AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht
Davon das {$HINTS OFF} nicht funktioniert kann überhaupt keine Rede sein. Die Überwachung der Benutzung von Variablen ist ein Feature des Compiler Backends und ich würde behaupten das dieses nur zuverlässig für die komplette Methode deaktiviert werden kann. Im folgenden Beispiel wird der Hint für Foo nicht angezeigt, wenn bei #1 {$HINTS ON} deaktiviert wird. Bei anderen Hinweisen funktioniert das Deaktivieren auch auf Zeilenebene - für Prozedur Test2 wird der Hint durch {$HINTS OFF}/{$HINTS ON} nur zwei anstatt drei Mal ausgegeben. Für Hints gibt es im Gegensatz zu Warnungen keine Möglichkeit diese einzeln an-/auszuschalten also kann es nicht an irgendwelchen Optionen liegen.
Delphi-Quellcode:
program Hints;
{$APPTYPE CONSOLE} procedure Test; var I, Foo: Integer; begin {$HINTS OFF} for I := 0 to 1 do Foo := 1; {$HINTS ON}//#1 end; {$HINTS ON}//#2 procedure Test2; var P: Pointer; begin P := nil; Finalize(P); {$HINTS OFF} Finalize(P); {$HINTS ON} Finalize(P); end; begin end. |
AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht
Das Problem ist, dass sowas nicht wirklich in der
![]() |
AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht
Ich hätte noch einen metaphysischen Erklärungsansatz: "Der Typ da an der Tastatur meint wohl, er könnte mich zum Schweigen bringen. Aber ich lasse mich nicht unterdrücken und sage meine Meinung, ob er will oder nicht. Compiler aller Länder vereinigt euch!"
|
AW: Compiler-Direktive {$HINTS OFF} funktioniert nicht
Viva la revolución! :mrgreen:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:57 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