Namespaces
Variants

std::experimental::ranges:: reference_t, std::experimental::ranges:: rvalue_reference_t, std::experimental::ranges:: iter_common_reference_t

From cppreference.net
ヘッダーで定義 <experimental/ranges/iterator>
template < class T >
concept bool /*dereferenceable*/ = requires ( T & t ) { { * t } - > auto && ; } ;
( 説明専用* )
template < /*dereferenceable*/ T >
using reference_t = decltype ( * declval < T & > ( ) ) ;
(1) (ranges TS)
template < /*dereferenceable*/ T >

requires requires ( T & t ) { { ranges:: iter_move ( t ) } - > auto && ; }

using rvalue_reference_t = decltype ( ranges:: iter_move ( declval < T & > ( ) ) ) ;
(2) (ranges TS)
template < Readable T >

using iter_common_reference_t = ranges:: common_reference_t < ranges :: reference_t < T > ,

ranges :: value_type_t < T > & > ;
(3) (ranges TS)
1) 逆参照可能な型 T 参照型 を取得する。
2) 逆参照可能な型 T rvalue reference type を取得する。すなわち、 ranges::iter_move の戻り値の型。
3) 読み取り可能な型の Readable 型の 共通参照型 を計算する。これはその参照型とその値型への左辺値参照の共通参照型である。

注記

- > auto && 制約は、式の型が void ではないことをチェックします。