最終更新日時(UTC):
が更新

履歴 編集

class
<iterator>

std::default_sentinel_t(C++20)

namespace std {
  struct default_sentinel_t {};

  inline constexpr default_sentinel_t default_sentinel{};
}

概要

default_sentinel_tは、任意の範囲の終端を示すことのできる番兵型である。

配列のようにイテレータ自身が範囲の終端を示すのではなく、別の方法で範囲の終端を計算可能である場合にイテレータ型の定義を簡易化するために使用できる。

イテレータ型でこの型との間の等値比較演算子(==!=は導出される)を適切に定義し、その範囲を示すクラス(コンテナやView)のend()がこの型の値を返すようにすることで利用する。

#include <iostream>
#include <iterator>
#include <ranges>
#include <vector>

int main() {
  std::vector<int> vec = {1, 2, 3, 4, 5};

  std::counted_iterator ci{std::ranges::begin(vec), 3};

  for (; ci != std::default_sentinel; ++ci) {
    std::cout << *ci << " ";
  }
}

出力

1 2 3

バージョン

言語

  • C++20

処理系

参照