Espacios de nombres
Variantes
Acciones

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

De cppreference.com
< cpp‎ | filesystem‎ | path
 
 
 
 
friend bool operator==( const path& lhs, const path& rhs ) noexcept;
(1)(desde C++17)
friend bool operator!=( const path& lhs, const path& rhs ) noexcept;
(2)(desde C++17)
(hasta C++20)
friend bool operator<( const path& lhs, const path& rhs ) noexcept;
(3)(desde C++17)
(hasta C++20)
friend bool operator<=( const path& lhs, const path& rhs ) noexcept;
(4)(desde C++17)
(hasta C++20)
friend bool operator>( const path& lhs, const path& rhs ) noexcept;
(5)(desde C++17)
(hasta C++20)
friend bool operator>=( const path& lhs, const path& rhs ) noexcept;
(6)(desde C++17)
(hasta C++20)
friend std::strong_ordering
    operator<=>( const path& lhs, const path& rhs ) noexcept;
(7)(desde C++20)

Compara dos rutas de acceso lexicográficamente.

1) Verifica si lhs y rhs son iguales. Equivalente a !(lhs < rhs) && !(rhs < lhs).
2) Verifica si lhs y rhs no son iguales. Equivalente a !(lhs == rhs).
3) Verifica si lhs es menor que rhs. Equivalente a lhs.compare(rhs) < 0.
4) Verifica si lhs es menor que o igual a rhs. Equivalente a !(rhs < lhs).
5) Verifica si lhs es mayor que rhs. Equivalente a rhs < lhs.
6) Verifica si lhs es mayor que o igual a rhs. Equivalente a !(lhs < rhs).
7) Obtiene el resultado de la comparación de tres vías de lhs y rhs. Equivalente a lhs.compare(rhs) <=> 0.

Estas funciones no son visibles a una búsqueda no calificada o calificada, y pueden encontrarse solamente mediante la búsqueda dependiente de argumento cuando std::filesystem::path es una clase asociada de los argumentos. Esto evita conversiones no deseadas en la presencia de una directiva using using namespace std::filesystem;.

Los operadores <, <=, >, >=, y != se sintetizan de operator<=> y operator==, respectivamente.

(desde C++20)

Contenido

[editar] Parámetros

lhs, rhs-Las rutas de acceso a comparar.

[editar] Valor de retorno

1-6) true si la comparación correspondiente produce, false de lo contrario.
7) std::strong_ordering::less si lhs es menor que rhs, de lo contrario std::strong_ordering::greater si rhs es menor que lhs, de lo contrario std::strong_ordering::equal.

[editar] Notas

La igualdad de rutas de acceso y la equivalencia tienen semánticas diferentes.

En el caso de igualdad, según lo determinado por operator==, solo se comparan las representaciones léxicas. Por lo tanto, path("a") == path("b") nunca es true.

En el caso de equivalencia, según lo determinado por std::filesystem::equivalent(), se verifica si dos rutas se resuelven en el mismo objeto del sistema de archivos. Por lo tanto equivalent("a", "b") devolverá true si las rutas se resuelven en el mismo archivo.

[editar] Ejemplo

[editar] Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

IDAplicado aComportamiento según lo publicadoComportamiento correcto
LWG 3065C++17Se admitía la comparación de todo lo que fuera convertible a path en la presencia de una directiva using.La comparación se hizo friend oculto.

[editar] Véase también

Compara las representaciones lexicográficas de dos rutas de acceso lexicográficamente.
(función miembro pública) [editar]
(C++17)
Verifica si dos rutas de acceso se refieren al mismo objeto de sistema de archivos.
(función) [editar]