operator==,!=,<,<=,>,>=,<=>(std::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.
lhs
y rhs
son iguales. Equivalente a !(lhs < rhs)&&!(rhs < lhs).lhs
y rhs
no son iguales. Equivalente a !(lhs == rhs).lhs
es menor que rhs
. Equivalente a lhs.compare(rhs)<0.lhs
es menor que o igual a rhs
. Equivalente a !(rhs < lhs).lhs
es mayor que rhs
. Equivalente a rhs < lhs.lhs
es mayor que o igual a rhs
. Equivalente a !(lhs < rhs).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 | (desde C++20) |
Contenido |
[editar]Parámetros
lhs, rhs | - | Las rutas de acceso a comparar. |
[editar]Valor de retorno
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
Esta sección está incompleta Razón: sin 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) | |
(C++17) | Verifica si dos rutas de acceso se refieren al mismo objeto de sistema de archivos. (función) |