- 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
)に対応する番兵型へ変換する。
S
がinput_iterator
のモデルとなる場合 :const_iterator
<S>
- それ以外の場合 :
S
#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
- Clang: ??
- GCC: 13.1 [mark verified]
- Visual C++: 2022 Update 6 [mark verified]