名前空間
変種
操作

std::iter_value_t, std::iter_reference_t, std::iter_difference_t, std::iter_rvalue_reference_t, std::iter_common_reference_t

提供: cppreference.com
< cpp‎ | iterator
 
 
イテレータライブラリ
イテレータコンセプト
イテレータプリミティブ
iter_value_titer_difference_titer_reference_titer_rvalue_reference_titer_common_reference_t
(C++20)(C++20)(C++20)(C++20)(C++20)

アルゴリズムのコンセプトとユーティリティ
間接呼び出し可能コンセプト
共通アルゴリズム要件
ユーティリティ
イテレータアダプタ
ストリームイテレータ
イテレータのカスタマイゼーションポイント
イテレータ操作
(C++11)
(C++11)
範囲アクセス
(C++11)(C++14)
(C++11)(C++14)
(C++17)(C++20)
(C++14)(C++14)
(C++14)(C++14)
(C++17)
(C++17)
 
ヘッダ <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 */

using iter_rvalue_reference_t = decltype(ranges::iter_move(std::declval<T&>()));
(4) (C++20以上)
template< std::readable T >

using iter_common_reference_t = std::common_reference_t<std::iter_reference_t<T>,

                                                        std::iter_value_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共通参照型を計算します。 これはその参照型とその値型への左辺値参照型の間の共通の参照型です。

[編集] 関連項目

型が * 演算子を適用することによって間接的に読み込み可能であることを指定します
(コンセプト) [edit]
前置または後置インクリメント演算子で semiregular 型をインクリメントできることを指定します
(コンセプト) [edit]
indirectly_readable 型の値型を計算します
(クラステンプレート) [edit]
weakly_incrementable 型の差型を計算します
(クラステンプレート) [edit]
イテレータの性質への統一されたインタフェースを提供します
(クラステンプレート) [edit]