Espacios de nombres
Variantes
Acciones

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

De cppreference.com
< cpp‎ | filesystem‎ | path
 
 
 
 
friendbool operator==(const path& lhs, const path& rhs )noexcept;
(1) (desde C++17)
friendbool operator!=(const path& lhs, const path& rhs )noexcept;
(2) (desde C++17)
(hasta C++20)
friendbool operator<(const path& lhs, const path& rhs )noexcept;
(3) (desde C++17)
(hasta C++20)
friendbool operator<=(const path& lhs, const path& rhs )noexcept;
(4) (desde C++17)
(hasta C++20)
friendbool operator>(const path& lhs, const path& rhs )noexcept;
(5) (desde C++17)
(hasta C++20)
friendbool operator>=(const path& lhs, const path& rhs )noexcept;
(6) (desde C++17)
(hasta C++20)
friendstd::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 usingusingnamespace 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.

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.

[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]
close