std::experimental::ranges::reference_t, std::experimental::ranges::rvalue_reference_t, std::experimental::ranges::iter_common_reference_t
来自 cppreference.cn
< cpp | experimental | ranges
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。