Namespaces
Variants

operator==,!=,<,<=,>,>=,<=> (std::filesystem::path)

From cppreference.net
friend bool operator == ( const path & lhs, const path & rhs ) noexcept ;
(1) (seit C++17)
friend bool operator ! = ( const path & lhs, const path & rhs ) noexcept ;
(2) (seit C++17)
(bis C++20)
friend bool operator < ( const path & lhs, const path & rhs ) noexcept ;
(3) (seit C++17)
(bis C++20)
friend bool operator <= ( const path & lhs, const path & rhs ) noexcept ;
(4) (seit C++17)
(bis C++20)
friend bool operator > ( const path & lhs, const path & rhs ) noexcept ;
(5) (seit C++17)
(bis C++20)
friend bool operator >= ( const path & lhs, const path & rhs ) noexcept ;
(6) (seit C++17)
(bis C++20)
friend std:: strong_ordering
operator <=> ( const path & lhs, const path & rhs ) noexcept ;
(7) (seit C++20)

Vergleicht zwei Pfade lexikographisch.

1) Prüft, ob lhs und rhs gleich sind. Entspricht ! ( lhs < rhs ) && ! ( rhs < lhs ) .
2) Prüft, ob lhs und rhs ungleich sind. Entspricht ! ( lhs == rhs ) .
3) Prüft, ob lhs kleiner als rhs ist. Entspricht lhs. compare ( rhs ) < 0 .
4) Prüft, ob lhs kleiner oder gleich rhs ist. Entspricht ! ( rhs < lhs ) .
5) Prüft, ob lhs größer als rhs ist. Entspricht rhs < lhs .
6) Prüft, ob lhs größer oder gleich rhs ist. Entspricht ! ( lhs < rhs ) .
7) Ermittelt das Drei-Wege-Vergleichsergebnis von lhs und rhs . Entspricht lhs. compare ( rhs ) <=> 0 .

Diese Funktionen sind für gewöhnliche unqualified oder qualified lookup nicht sichtbar und können nur durch argument-dependent lookup gefunden werden, wenn std::filesystem::path eine assoziierte Klasse der Argumente ist. Dies verhindert unerwünschte Konvertierungen bei Vorhandensein einer using namespace std :: filesystem ; using-directive .

Die Operatoren < , <= , > , >= und != werden synthetisiert aus operator <=> beziehungsweise operator == .

(seit C++20)

Inhaltsverzeichnis

Parameter

lhs, rhs - die zu vergleichenden Pfade

Rückgabewert

1-6) true wenn der entsprechende Vergleich zutrifft, false andernfalls.
7) std :: strong_ordering :: less wenn lhs kleiner als rhs ist, andernfalls std :: strong_ordering :: greater wenn rhs kleiner als lhs ist, andernfalls std :: strong_ordering :: equal .

Hinweise

Pfadgleichheit und Äquivalenz haben unterschiedliche Semantiken.

Im Falle von Gleichheit, wie durch operator== bestimmt, werden nur lexikalische Darstellungen verglichen. Daher ist path ( "a" ) == path ( "b" ) niemals true .

Im Falle von Äquivalenz, wie durch std::filesystem::equivalent() bestimmt, wird geprüft, ob zwei Pfade zur selben Dateisystemobjekt aufgelöst werden . Daher wird equivalent ( "a" , "b" ) true zurückgeben, wenn die Pfade zur selben Datei aufgelöst werden.

Beispiel

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 3065 C++17 erlaubte den Vergleich aller zu path konvertierbaren Typen bei Vorhandensein einer using-directive als versteckter Freund implementiert

Siehe auch

vergleicht die lexikalischen Darstellungen zweier Pfade lexikographisch
(öffentliche Elementfunktion)
(C++17)
prüft, ob zwei Pfade auf dasselbe Dateisystemobjekt verweisen
(Funktion)