Ich war mir sicher, dass es im Delphi/Pascal auch einen Compilerschalter gab, wo der Compiler einen Fehler oder eine Warnung warf, wenn das Result einer Funktion nicht ausgewertet wird.
Das ist Teil des Compiler-Schalters $X (Erweiterte Syntax):
Zitat:
Dient nur der Abwärtskompatibilität. Verwenden Sie diese Option (entspricht {$X-}) nicht in Ihren Delphi-Anwendungen. Mit dieser Option wird die erweiterte Syntax von Delphi aktiviert oder deaktiviert:
Funktionsanweisungen. Im Modus {$X+} können Funktionsaufrufe als Prozedurenaufrufe verwendet werden, d. h. das Ergebnis eines Funktionsaufrufs kann ignoriert werden, anstatt an eine andere Funktion übergeben oder in einer Operation bzw. Zuweisung verwendet zu werden. Im Allgemeinen werden die von einer Funktion ausgeführten Berechnungen durch das Funktionsergebnis repräsentiert, das nicht ignoriert werden sollte. Manchmal führen Funktionen aber lediglich eine bestimmte Operation durch (z. B. einer globalen Variablen einen Wert zuweisen) und geben keinen Wert zurück, der weiterverwendet werden kann.
Result-Variable. Wenn die Option aktiviert ist (entspricht {$X+}), kann die vordefinierte Result-Variable für den Rückgabewert der Funktion verwendet werden.
Nullterminierte Strings. Wenn diese Option aktiviert ist, können Delphi-Strings nullbasierten Zeichen-Arrays (array[0..X] of Char) zugewiesen werden, die mit PChar-Typen kompatibel sind.
Leider ist bei $X- auch die Verwendung von
Result anstatt des Funktionsnamen für den Rückgabewert nicht mehr möglich. Das wird aber aktuell soviel verwendet, dass vermutlich kaum ein Programm noch mit $X- compileren würde.