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) |
Parámetros
| lhs, rhs | - | Las rutas de acceso a comparar. |
Valor de retorno
true si la comparación correspondiente produce, false de lo contrario.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
| Esta sección está incompleta Razón: sin 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) | |
(C++17) |
Verifica si dos rutas de acceso se refieren al mismo objeto de sistema de archivos. (función) |