Skip to content

Latest commit

 

History

History
80 lines (60 loc) · 2.18 KB

File metadata and controls

80 lines (60 loc) · 2.18 KB

operator==

  • filesystem[meta header]
  • std::filesystem[meta namespace]
  • function[meta id-type]
  • cpp17[meta cpp]
namespace std::filesystem {
  bool operator==(const directory_iterator& a, const directory_iterator& b) noexcept; // (1) C++17

  class directory_iterator {
  public:
    bool operator==(default_sentinel_t) const noexcept; // (2) C++23
  };
}
  • default_sentinel_t[link /reference/iterator/default_sentinel_t.md]

概要

directory_iteratorオブジェクトが等値かを判定する。

  • (1) : 2つのdirectory_iteratorオブジェクトを等値比較する。
  • (2) : directory_iteratorオブジェクトが終端(ディレクトリの末尾)に到達しているかを判定する。

戻り値

  • (1) : 2つのdirectory_iteratorオブジェクトが等値である場合はtrue、そうでなければfalseを返す。
  • (2) : *this == directory_iterator()と等価。すなわち、イテレータが終端を指していればtrue、そうでなければfalseを返す。

#include <cassert>
#include <filesystem>
#include <fstream>
#include <iterator>

namespace fs = std::filesystem;

int main()
{
  fs::create_directory("dir");
  std::ofstream{"dir/a.txt"};

  fs::directory_iterator a{"dir"};
  fs::directory_iterator b = a;

  // (1) 2つのイテレータの等値比較
  assert(a == b);

  ++b;

  // (1) デフォルト構築したイテレータ(終端)との比較
  fs::directory_iterator end{};
  assert(b == end);

  // (2) default_sentinelとの比較で終端を判定する (C++23)
  assert(b == std::default_sentinel);
}
  • fs::create_directory[link /reference/filesystem/create_directory.md]
  • std::default_sentinel[link /reference/iterator/default_sentinel.md.nolink]

出力

バージョン

言語

  • C++17

処理系

参照