std::iter_value_t,std::iter_reference_t,std::iter_difference_t, (3) Linux Manual Page
std::iter_value_t,std::iter_reference_t,std::iter_difference_t, – std::iter_value_t,std::iter_reference_t,std::iter_difference_t,
Synopsis
Defined in header <iterator>
template< class T >
concept /*dereferenceable*/ = /* see below */; // exposition only
template< class T > (1) (since
using iter_value_t = /* see below */; C++20)
template< /*dereferenceable*/ T > (2) (since
using iter_reference_t = decltype(*std::declval<T&>()); C++20)
template< class T > (3) (since
using iter_difference_t = /* see below */; C++20)
template< /*dereferenceable*/ T>
requires /* see below */ (4) (since
C++20)
using iter_rvalue_reference_t =
decltype(ranges::iter_move(std::declval<T&>()));
template< Readable T >
using iter_common_reference_t = (5) (since
std::common_reference_t<std::iter_reference_t<T>, C++20)
std::iter_value_t<T>&>;
Compute the associated types of an iterator. The exposition-only concept
dereferenceable is satisfied if and only if the expression
valid and has a referenceable type
1)
std::iter_value_t<T>
std::iterator_traits<T>::value_type.
2)
3)
then std::iter_difference_t<T>
Otherwise, it is std::iterator_traits<T>::difference_type.
4)
constraint on this alias template is satisfied if and only if the expression
ranges::iter_move(std::declval<T&>())
particular, not void).
5)
between its reference type and an lvalue reference to its value type.
See also
Readable
WeaklyIncrementable
readable_traits
incrementable_traits computes the difference type of a WeaklyIncrementable type
iterator_traits
