operator==,!=,<,<=,>,>=,<=>(std::filesystem::path)
来自cppreference.com
                    
                                        
                    < cpp | filesystem | path
                    
                                                            
                    |   bool operator==( const path& lhs, const path& rhs ) noexcept;  | 
(1) | (C++17 起) | 
|   bool operator!=( const path& lhs, const path& rhs ) noexcept;  | 
(2) |  (C++17 起)  (C++20 前)  | 
|   bool operator<( const path& lhs, const path& rhs ) noexcept;  | 
(3) |  (C++17 起)  (C++20 前)  | 
|   bool operator<=( const path& lhs, const path& rhs ) noexcept;  | 
(4) |  (C++17 起)  (C++20 前)  | 
|   bool operator>( const path& lhs, const path& rhs ) noexcept;  | 
(5) |  (C++17 起)  (C++20 前)  | 
|   bool operator>=( const path& lhs, const path& rhs ) noexcept;  | 
(6) |  (C++17 起)  (C++20 前)  | 
|   std::strong_ordering operator<=>( const path& lhs, const path& rhs ) noexcept;  | 
(7) | (C++20 起) | 
以字典序比较二个path 。
1) 检查 
lhs 与 rhs 是否相等。等价于 !(lhs < rhs) && !(rhs < lhs) 。2) 检查 
lhs 与 rhs 是否不相等,等价于 !(lhs == rhs) 。3) 检查 
lhs 是否小于 rhs 。等价于 lhs.compare(rhs) < 0 。4) 检查 
lhs 是否小于或等于 rhs 。等价于 !(rhs < lhs) 。5) 检查 
lhs 是否大于 rhs 。等价于 rhs < lhs 。6) 检查 
lhs 是否大于或等于 rhs 。等价于 !(lhs < rhs) 。7) 获得 
lhs 与 rhs 的三路比较结果。等价于 lhs.compare(rhs) <=> 0 。这些函数对通常无限定或有限定查找不可见,而只能在 std::filesystem::path 为参数的关联类时由实参依赖查找找到。这阻止 using namespace std::filesystem; using 指令存在的情况下的不想要的转换。
参数
| lhs, rhs | - | 要比较的路径 | 
返回值
1-6) 若对应比较关系成立则返回 true ,否则返回 false 。
7) 若 
lhs 小于 rhs 则为 std::strong_ordering::less ,否则若 rhs 小于 lhs 则为 std::strong_ordering::greater ,否则为 std::string_ordering::equal 。注解
路径相等与等价有不同语义。
相等情况下,以 operator== 确定,只比较字典表示。从而 path("a") == path("b") 决不可能为 true 。
等价情况下,以 equivalent() 确定,检查二个路径是否解析到同一文件系统对象。从而若路径解析到同一文件,则 equivalent("a", "b") 将返回 true 。
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
| DR | 应用于 | 出版时的行为 | 正确行为 | 
|---|---|---|---|
| LWG 3065 | C++17 |  允许 using 指令存在的情况下比较任何能转换成 path 的类型
 | 
使之为隐藏的友元 | 
参阅
|   以字典序比较二个路径的字典表示  (公开成员函数)  |