operator==,!=,<,<=,>,>=,<=>(std::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.
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 using using namespace 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) |