Namespaces
Variants

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

From cppreference.net
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 lexicográficamente.

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

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

Los operadores < , <= , > , >= y != son sintetizados a partir de operator <=> y operator == respectivamente.

(since C++20)

Contenidos

Parámetros

lhs, rhs - las rutas a comparar

Valor de retorno

1-6) true si la comparación correspondiente produce, false en caso 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 y equivalencia de rutas tienen semánticas diferentes.

En 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 resuelven al mismo objeto del sistema de archivos. Por lo tanto, equivalent ( "a" , "b" ) devolverá true si las rutas resuelven al mismo archivo.

Ejemplo

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
LWG 3065 C++17 permitía la comparación de todo convertible a path en presencia de una using-directive convertido en hidden friend

Véase también

compara las representaciones léxicas de dos rutas lexicográficamente
(función miembro pública)
(C++17)
verifica si dos rutas se refieren al mismo objeto del sistema de archivos
(función)