Was ist der Punkt von (void) first2 ++ hier? [Duplikat]

8

Auf dieser Seite von en.cppreference gibt es Beispiele für die mögliche Implementierung von lexikografischer Vergleich. Hier ist die grundlegende:

%Vor%

IIRC-Zeilen wie (void)some_argument; werden häufig verwendet, um Compiler-Warnungen über nicht verwendete Parameter zu unterdrücken. Aber in dieser Funktion werden alle Parameter, einschließlich first2, verwendet - Also, was ist der Punkt, an dem (void) first2++ in der for-Anweisung geschrieben wird?

Ist es eine Syntaxumgehung für den Fall, dass InputIt1 operator, überlädt?

    
Xeverous 16.04.2017, 16:30
quelle

1 Antwort

5

Er stellt sicher, dass der integrierte Kommaoperator verwendet wird - nur für den Fall, dass eine benutzerdefinierte Überladung auftritt, die etwas Unerwartetes bewirkt. Ein Wert von void type kann niemals an eine Funktion übergeben werden, daher könnte hier keine solche Überladung ausgewählt werden.

Stellen Sie sich andernfalls vor, was passieren würde, wenn diese Funktion existiert:

%Vor%

BEARBEITEN : Dies wird auch auf der verwandten cppreference Diskussionsseite erwähnt a>.

    
Alan Stokes 16.04.2017, 17:00
quelle

Tags und Links