Skip to content

Latest commit

 

History

History
60 lines (45 loc) · 1.82 KB

const_sentinel.md

File metadata and controls

60 lines (45 loc) · 1.82 KB

const_sentinel

  • iterator[meta header]
  • std[meta namespace]
  • type-alias[meta id-type]
  • cpp23[meta cpp]
namespace std {
  template<semiregular S>
  using const_sentinel = /*see below*/;
}
  • semiregular[link /reference/concepts/semiregular.md]

概要

任意の番兵型Sを、定数イテレータ型(const_iterator)に対応する番兵型へ変換する。

効果

#include <iterator>

int main() {
  static_assert(std::same_as<std::const_sentinel<int*>, std::basic_const_iterator<int*>>);
  static_assert(std::same_as<std::const_sentinel<const int*>, const int*>);

  using vec_iter = std::vector<int>::iterator;
  
  static_assert(std::same_as<std::const_sentinel<vec_iter>, std::basic_const_iterator<vec_iter>>);
  static_assert(std::same_as<std::const_sentinel<std::const_iterator<vec_iter>>, std::const_iterator<vec_iter>>);
  
  static_assert(std::same_as<std::const_sentinel<std::default_sentinel_t>, std::default_sentinel_t>);
  static_assert(std::same_as<std::const_sentinel<std::unreachable_sentinel_t>, std::unreachable_sentinel_t>);
}
  • std::const_sentinel[color ff0000]
  • std::default_sentinel_t[link /reference/iterator/default_sentinel_t.md]
  • std::unreachable_sentinel_t[link /reference/iterator/unreachable_sentinel_t.md]

出力

バージョン

言語

  • C++23

処理系

参照