26#ifndef MYSQL_HARNESS_STDX_ITERATOR_H_
27#define MYSQL_HARNESS_STDX_ITERATOR_H_
35template <
class T,
bool = std::is_array_v<T>>
40 using value_type = std::remove_cv_t<std::remove_extent_t<T>>;
43template <
class T,
bool = std::is_
object_v<T>>
51template <
class T,
typename = std::
void_t<>>
56 std::void_t<typename std::remove_cvref_t<T>::value_type>>
59template <class T, bool = has_value_type<T>::value>
67template <
class T,
typename = std::
void_t<>>
74template <class T, bool = has_element_type<T>::value>
82template <
class T,
typename = std::
void_t<>>
88template <class T, bool = has_reference<T>::value>
103template <
class T,
class Enable =
void>
116 T,
std::enable_if_t<impl::has_value_type<T>::value>>
118 std::remove_cvref_t<T>> {};
122 T,
std::enable_if_t<impl::has_element_type<T>::value>>
uint16_t value_type
Definition: vt100.h:184
Definition: http_server_component.cc:34
Definition: gcs_xcom_synode.h:64
typename indirectly_readable_traits< std::remove_cvref_t< T > >::value_type iter_value_t
Definition: iterator.h:130
typename impl::iter_reference< std::remove_cvref_t< T > >::reference iter_reference_t
Definition: iterator.h:134
Definition: iterator.h:68
Definition: iterator.h:83
Definition: iterator.h:52
std::remove_cv_t< std::remove_extent_t< T > > value_type
Definition: iterator.h:40
Definition: iterator.h:36
typename T::element_type value_type
Definition: iterator.h:79
Definition: iterator.h:75
typename T::value_type value_type
Definition: iterator.h:64
Definition: iterator.h:60
std::remove_cv_t< T > value_type
Definition: iterator.h:48
Definition: iterator.h:44
decltype(*std::declval< T & >()) reference
Definition: iterator.h:93
typename T::reference reference
Definition: iterator.h:98
Definition: iterator.h:89
Definition: iterator.h:104