26#ifndef MYSQL_HARNESS_STDX_ITERATOR_H_
27#define MYSQL_HARNESS_STDX_ITERATOR_H_
37template <
class T,
bool = std::is_array_v<T>>
42 using value_type = std::remove_cv_t<std::remove_extent_t<T>>;
45template <
class T,
bool = std::is_
object_v<T>>
53template <
class T,
typename = std::
void_t<>>
58 std::void_t<typename stdx::remove_cvref_t<T>::value_type>>
61template <class T, bool = has_value_type<T>::value>
69template <
class T,
typename = std::
void_t<>>
76template <class T, bool = has_element_type<T>::value>
84template <
class T,
typename = std::
void_t<>>
90template <class T, bool = has_reference<T>::value>
105template <
class T,
class Enable =
void>
118 T,
std::enable_if_t<impl::has_value_type<T>::value>>
120 stdx::remove_cvref_t<T>> {};
124 T,
std::enable_if_t<impl::has_element_type<T>::value>>
uint16_t value_type
Definition: vt100.h:184
Definition: authentication.cc:36
Definition: gcs_xcom_synode.h:64
typename indirectly_readable_traits< stdx::remove_cvref_t< T > >::value_type iter_value_t
Definition: iterator.h:132
typename impl::iter_reference< stdx::remove_cvref_t< T > >::reference iter_reference_t
Definition: iterator.h:136
Definition: iterator.h:70
Definition: iterator.h:85
Definition: iterator.h:54
std::remove_cv_t< std::remove_extent_t< T > > value_type
Definition: iterator.h:42
Definition: iterator.h:38
typename T::element_type value_type
Definition: iterator.h:81
Definition: iterator.h:77
typename T::value_type value_type
Definition: iterator.h:66
Definition: iterator.h:62
std::remove_cv_t< T > value_type
Definition: iterator.h:50
Definition: iterator.h:46
decltype(*std::declval< T & >()) reference
Definition: iterator.h:95
typename T::reference reference
Definition: iterator.h:100
Definition: iterator.h:91
Definition: iterator.h:106