Namespaces
Variants

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

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

Compare deux chemins de manière lexicographique.

1) Vérifie si lhs et rhs sont égaux. Équivalent à ! ( lhs < rhs ) && ! ( rhs < lhs ) .
2) Vérifie si lhs et rhs ne sont pas égaux. Équivalent à ! ( lhs == rhs ) .
3) Vérifie si lhs est inférieur à rhs . Équivalent à lhs. compare ( rhs ) < 0 .
4) Vérifie si lhs est inférieur ou égal à rhs . Équivalent à ! ( rhs < lhs ) .
5) Vérifie si lhs est supérieur à rhs . Équivalent à rhs < lhs .
6) Vérifie si lhs est supérieur ou égal à rhs . Équivalent à ! ( lhs < rhs ) .
7) Obtient le résultat de la comparaison à trois voies entre lhs et rhs . Équivalent à lhs. compare ( rhs ) <=> 0 .

Ces fonctions ne sont pas visibles par la recherche non qualifiée ou qualifiée ordinaire, et ne peuvent être trouvées que par la recherche dépendante des arguments lorsque std::filesystem::path est une classe associée des arguments. Cela empêche les conversions indésirables en présence d'une using namespace std :: filesystem ; directive using .

Les opérateurs < , <= , > , >= , et != sont synthétisés à partir de operator <=> et operator == respectivement.

(depuis C++20)

Table des matières

Paramètres

lhs, rhs - les chemins à comparer

Valeur de retour

1-6) true si la comparaison correspondante donne vrai, false sinon.
7) std :: strong_ordering :: less si lhs est inférieur à rhs , sinon std :: strong_ordering :: greater si rhs est inférieur à lhs , sinon std :: strong_ordering :: equal .

Notes

L'égalité et l'équivalence de chemins ont des sémantiques différentes.

En cas d'égalité, telle que déterminée par operator== , seules les représentations lexicales sont comparées. Par conséquent, path ( "a" ) == path ( "b" ) n'est jamais true .

Dans le cas d'équivalence, tel que déterminé par std::filesystem::equivalent() , on vérifie si deux chemins résolvent vers le même objet du système de fichiers. Ainsi equivalent ( "a" , "b" ) retournera true si les chemins résolvent vers le même fichier.

Exemple

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Applicable à Comportement publié Comportement corrigé
LWG 3065 C++17 autorisait la comparaison de tout élément convertible en path en présence d'une using-directive rendu hidden friend

Voir aussi

compare les représentations lexicales de deux chemins de manière lexicographique
(fonction membre publique)
(C++17)
vérifie si deux chemins font référence au même objet du système de fichiers
(fonction)