operator==,!=,<,<=,>,>=,<=>(std::filesystem::path)
friend bool operator==( const path& lhs, const path& rhs ) noexcept; |
(1) | (начиная с C++17) |
friend bool operator!=( const path& lhs, const path& rhs ) noexcept; |
(2) | (начиная с C++17) (до C++20) |
friend bool operator<( const path& lhs, const path& rhs ) noexcept; |
(3) | (начиная с C++17) (до C++20) |
friend bool operator<=( const path& lhs, const path& rhs ) noexcept; |
(4) | (начиная с C++17) (до C++20) |
friend bool operator>( const path& lhs, const path& rhs ) noexcept; |
(5) | (начиная с C++17) (до C++20) |
friend bool operator>=( const path& lhs, const path& rhs ) noexcept; |
(6) | (начиная с C++17) (до C++20) |
friend std::strong_ordering operator<=>( const path& lhs, const path& rhs ) noexcept; |
(7) | (начиная с C++20) |
Выполняет лексикографическое сравнение двух путей.
Эти функции не видны обычному неквалифицированному или квалифицированному поиску и могут быть найдены только с помощью зависящего от аргумента поиска, когда std::filesystem::path
является ассоциированным классом аргументом. This prevents undesirable conversions in the presence of a using namespace std::filesystem; using-directive.
Операторы |
(начиная с C++20) |
Содержание |
[править] Параметры
lhs, rhs | — | пути для сравнения |
[править] Возвращаемое значение
[править] Заметки
Равенство и эквивалентность путей имеют различную семантику.
В случае равенства, по определению оператора operator==
, сравнивается лишь лексическое представление путей. В связи с этим path("a") == path("b") никогда не даст результат true.
В случае эквивалентности, по определению std::filesystem::equivalent(), проверяется, соответствуют ли два пути одному объекту файловой системы. Потому equivalent("a", "b") вернет результат true, если пути представляют один и тот же файл.
[править] Пример
Этот раздел не завершён Причина: нет примера |
[править] Отчет об ошибках
Следующие изменения поведения были применены с обратной силой к ранее опубликованным стандартам C++:
Номер | Применён | Поведение в стандарте | Корректное поведение |
---|---|---|---|
LWG 3065 | C++17 | допускалось сравнение любых объектов, способных преобразовываться к классу path , при использовании using-директивы
|
сделаны скрытыми дружественными |
[править] См. также
лексикографическое сравнение двух путей (public функция-элемент) | |
(C++17) |
проверяет, ссылаются ли два пути на один и тот же объект файловой системы (функция) |