Espacios de nombres
Variantes

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

De cppreference.com
 
 
 
 
<tbody> </tbody>
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)

Parámetros

lhs, rhs - Las rutas de acceso a comparar.

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.

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.

Ejemplo

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.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
LWG 3065 C++17 Se 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.

Véase también

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