Namespaces
Variants

std::experimental::filesystem::path:: compare

From cppreference.net
int compare ( const path & p ) const noexcept ;
(1) (filesystem TS)
int compare ( const string_type & str ) const ;
(2) (filesystem TS)
int compare ( const value_type * s ) const ;
(3) (filesystem TS)

Compare les représentations lexicales du chemin et d'un autre chemin.

1) Retourne une valeur inférieure, égale ou supérieure à 0 si la représentation native du chemin ( native ()) est respectivement lexicographiquement inférieure, égale ou supérieure à la représentation native de p ( p. native ( ) ). La comparaison est effectuée élément par élément, comme en itérant les deux chemins depuis begin () jusqu'à end ().
2) Équivalent à compare ( path ( str ) ) .
3) Équivalent à compare ( path ( s ) ) .

Table des matières

Paramètres

p - un chemin à comparer
str - une chaîne représentant le chemin à comparer
s - une chaîne terminée par un caractère nul représentant le chemin à comparer

Valeur de retour

Une valeur inférieure à 0 si le chemin est lexicographiquement inférieur au chemin donné.

Une valeur égale à 0 si le chemin est lexicographiquement égal au chemin donné.

Une valeur supérieure à 0 si le chemin est lexicographiquement supérieur au chemin donné.

Exceptions

2,3) Peut lever des exceptions définies par l'implémentation.

Notes

Pour les comparaisons bidirectionnelles, les opérateurs binaires peuvent être plus appropriés.

Exemple

#include <experimental/filesystem>
#include <iostream>
namespace fs = std::experimental::filesystem;
void demo(int rc, fs::path p1, fs::path p2)
{
    if (rc < 0)
        std::cout << p1 << " < " << p2 << '\n';
    else if (rc > 0)
        std::cout << p1 << " > " << p2 << '\n';
    else if (rc == 0)
        std::cout << p1 << " = " << p2 << '\n';
}
int main()
{
    fs::path p1 = "/a/b/"; // comme "a/b/." pour l'itération lexicographique
    fs::path p2 = "/a/b/#";
    demo(p1.compare(p2), p1, p2);
    demo(p1.compare("a/b/_"), p1, "a/b/_");
}

Sortie :

"/a/b/" > "/a/b/#"
"/a/b/" < "a/b/_"

Voir aussi

compare lexicographiquement deux chemins
(fonction)