namespace std {
template<input_iterator I>
using const_iterator = /*see below*/;
}
概要
任意のイテレータ型I
を、定数イテレータ型へ変換する。
効果
I
がconstant-iterator
のモデルとなる場合 :I
- それ以外の場合 :
basic_const_iterator<I>
例
#include <iterator>
int main() {
static_assert(std::same_as<std::const_iterator<int*>, std::basic_const_iterator<int*>>);
static_assert(std::same_as<std::const_iterator<const int*>, const int*>);
using vec_iter = std::vector<int>::iterator;
static_assert(std::same_as<std::const_iterator<vec_iter>, std::basic_const_iterator<vec_iter>>);
static_assert(std::same_as<std::const_iterator<std::const_iterator<vec_iter>>, std::const_iterator<vec_iter>>);
}
出力
バージョン
言語
- C++23
処理系
- Clang: ??
- GCC: 13.1 ✅
- Visual C++: 2022 Update 6 ✅