std::iter_value_t, std::iter_reference_t, std::iter_difference_t, std::iter_rvalue_reference_t, std::iter_common_reference_t
提供: cppreference.com
ヘッダ <iterator> で定義
|
||
template< class T > concept /*dereferenceable*/ = /* see below */; // 説明専用 |
||
template< class T > using iter_value_t = /* see below */; |
(1) | (C++20以上) |
template< /*dereferenceable*/ T > using iter_reference_t = decltype(*std::declval<T&>()); |
(2) | (C++20以上) |
template< class T > using iter_difference_t = /* see below */; |
(3) | (C++20以上) |
template< /*dereferenceable*/ T> requires /* see below */ |
(4) | (C++20以上) |
template< std::readable T > using iter_common_reference_t = std::common_reference_t<std::iter_reference_t<T>, |
(5) | (C++20以上) |
イテレータの関連型を計算します。 説明専用のコンセプト dereferenceable
は、式 *std::declval<T&>()
が有効かつ参照可能な型 (特に、 void でない) である場合に限り、満たされます。
1)
T
の値型を計算します。 std::iterator_traits<T> が特殊化されていなければ、 std::iter_value_t<T> は std::readable_traits<T>::value_type です。 そうでなければ、 std::iterator_traits<T>::value_type です。2)
T
の参照型を計算します。3)
T
の差型を計算します。 std::iterator_traits<T> が特殊化されていなければ、 std::iter_difference_t<T> は std::incrementable_traits<T>::difference_type です。 そうでなければ、 std::iterator_traits<T>::difference_type です。4)
T
の右辺値参照型を計算します。 このエイリアステンプレートに対する制約の「see below」部分は、式 ranges::iter_move(std::declval<T&>()) が有効かつ参照可能な型 (特に、 void でない) である場合に限り、満たされます。5)
T
の共通参照型を計算します。 これはその参照型とその値型への左辺値参照型の間の共通の参照型です。[編集] 関連項目
型が * 演算子を適用することによって間接的に読み込み可能であることを指定します (コンセプト) | |
前置または後置インクリメント演算子で semiregular 型をインクリメントできることを指定します (コンセプト) | |
indirectly_readable 型の値型を計算します (クラステンプレート) | |
weakly_incrementable 型の差型を計算します (クラステンプレート) | |
イテレータの性質への統一されたインタフェースを提供します (クラステンプレート) |