std::experimental::ranges::reference_t, std::experimental::ranges::rvalue_reference_t, std::experimental::ranges::iter_common_reference_t
From cppreference.com
< cpp | experimental | ranges
| Defined in header <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&&; } |
(2) | (ranges TS) |
| template< Readable T > using iter_common_reference_t = ranges::common_reference_t<ranges::reference_t<T>, |
(3) | (ranges TS) |
1) デリファレンス可能な型
T の *参照型* を取得します。3)
Readable 型の *共通参照型* を計算します。これは、その参照型と、その値型の左辺値参照との共通参照型です。[編集] 注釈
-> auto&& 制約は、式の型が void でないことをチェックします。