operator==,!=,<,<=,>,>=,<=>(std::filesystem::path)
| 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.
Diese Funktionen sind für gewöhnliche unqualifizierte oder qualifizierte Suche nicht sichtbar und können nur durch argumentabhängige Suche gefunden werden, wenn std::filesystem::path eine zugeordnete Klasse der Argumente ist. Dies verhindert unerwünschte Konvertierungen bei einer using-directive wie using namespace std::filesystem;.
|
Die Operatoren |
(seit C++20) |
Inhalt |
[edit] Parameter
| lhs, rhs | - | die zu vergleichenden Pfade |
[edit] Rückgabewert
[edit] Anmerkungen
Pfadgleichheit und Pfadäquivalenz haben unterschiedliche Semantiken.
Im Falle der Gleichheit, wie sie von operator== bestimmt wird, werden nur die lexikalischen Darstellungen verglichen. Daher ist path("a") == path("b") niemals true.
Im Falle der Äquivalenz, wie sie von std::filesystem::equivalent() bestimmt wird, wird geprüft, ob zwei Pfade auf dasselbe Dateisystemobjekt *verweisen*. Somit gibt equivalent("a", "b") true zurück, wenn die Pfade auf dieselbe Datei verweisen.
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] 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 von allem, was in Gegenwart einer using-directive in path konvertierbar ist |
versteckte Freundfunktion gemacht |
[edit] Siehe auch
| vergleicht die lexikalischen Darstellungen zweier Pfade lexikographisch (public member function) | |
| (C++17) |
prüft, ob zwei Pfade auf dasselbe Dateisystemobjekt verweisen (Funktion) |