std::experimental::ranges::reference_t, std::experimental::ranges::rvalue_reference_t, std::experimental::ranges::iter_common_reference_t
From cppreference.com
< cpp | experimental | ranges
C++
Experimental
| Technical Specification | ||||
| Filesystem library (filesystem TS) | ||||
| Library fundamentals (library fundamentals TS) | ||||
| Library fundamentals 2 (library fundamentals TS v2) | ||||
| Library fundamentals 3 (library fundamentals TS v3) | ||||
| Extensions for parallelism (parallelism TS) | ||||
| Extensions for parallelism 2 (parallelism TS v2) | ||||
| Extensions for concurrency (concurrency TS) | ||||
| Extensions for concurrency 2 (concurrency TS v2) | ||||
| Concepts (concepts TS) | ||||
| Ranges (ranges TS) | ||||
| Reflection (reflection TS) | ||||
| Mathematical special functions (special functions TR) | ||||
| Experimental Non-TS | ||||
| Pattern Matching | ||||
| Linear Algebra | ||||
| std::execution | ||||
| Contracts | ||||
| 2D Graphics |
Ranges
Iterators library
| Iterator concepts | ||||||||||||||||||||||
| Indirect callable concepts | ||||||||||||||||||||||
| Common algorithm requirements | ||||||||||||||||||||||
| Concept utilities | ||||||||||||||||||||||
| Iterator utilities and operations | ||||||||||||||||||||||
| Iterator traits | ||||||||||||||||||||||
| ||||||||||||||||||||||
| Iterator adaptors | ||||||||||||||||||||||
| Stream iterators | ||||||||||||||||||||||
| Defined in header <experimental/ranges/iterator>
|
||
| template< class T > concept bool /*dereferenceable*/ = requires(T& t) {*t} -> auto&&; }; |
(exposition only*) | |
| 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) Obtain the reference type of a dereferenceable type
T.2) Obtain the rvalue reference type of a dereferenceable type
T, that is, the return type of ranges::iter_move.3) Compute a
Readable type's common reference type. This is the common reference type of its reference type and an lvalue reference to its value type.[edit] Notes
The -> auto&& constraint checks that the type of the expression is not void.