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以上) |
bool operator<(const path& lhs, const path& rhs )noexcept; | (3) | (C++17以上) |
bool operator<=(const path& lhs, const path& rhs )noexcept; | (4) | (C++17以上) |
bool operator>(const path& lhs, const path& rhs )noexcept; | (5) | (C++17以上) |
bool operator>=(const path& lhs, const path& rhs )noexcept; | (6) | (C++17以上) |
2つのパスを辞書的に比較します。
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) と同等です。これらの関数は通常の無修飾または修飾付きの名前探索に対しては可視ではなく、 std::filesystem::path が引数の関連クラスであるときの実引数依存の名前探索によってのみ発見されます。 これは using 指令usingnamespace std::filesystem; が存在する場合の望ましくない変換を防ぐための措置です。
目次 |
[編集]引数
lhs, rhs | - | 比較するパス |
[編集]戻り値
対応する比較が成立すれば true、そうでなければ false。
[編集]ノート
パスの等しさと同等性は異なる意味を持ちます。
operator==
によって判定される等しさの場合は、字句的表現が比較されるだけです。 そのため、 path("a")== path("b") が true になることは決してありません。
equivalent() によって判定される同等性の場合は、2つのパスが同じファイルシステムオブジェクトに解決されるかどうかが調べられます。 そのため、 equivalent("a", "b") は、それらのパスが同じファイルに解決されれば true を返します。
[編集]欠陥報告
以下の動作変更欠陥報告は以前に発行された C++ 標準に遡って適用されました。
DR | 適用先 | 発行時の動作 | 正しい動作 |
---|---|---|---|
LWG 3065 | C++17 | allowed comparison of everything convertible to path in the presence of a using-directive | made hidden friend |
[編集]関連項目
2つのパスの字句的表現を辞書的に比較します (パブリックメンバ関数) |