namespace std::filesystem {
bool operator==(const path& lhs, const path& rhs) noexcept; // (1) C++17
class path {
public:
friend bool operator==(const path& lhs, const path& rhs) noexcept; // (1) C++20
};
}
概要
等値比較を行う
戻り値
-
(1):
-
C++17
return !(lhs < rhs) && !(rhs < lhs);
-
C++20
return lhs.compare(rhs) == 0;
-
備考
- (1) :
lhs.compare(rhs) == 0
と等価 (C++17) - この演算子はパス要素列の等価性を判定するため、パスが意味的に同一かどうかを判定することはできない。パス文字列の意味的な等価性判定には、
filesystem::equivalent()
を使用する - この演算子により、
operator!=
が使用可能になる (C++20)
例
出力
バージョン
言語
- C++17
処理系
- Clang:
- GCC: 8.1 ✅
- Visual C++: 2017 Update 7 ✅
参照
- P1614R2 The Mothership has Landed
- C++20での三方比較演算子の追加と、関連する演算子の自動導出