25#ifndef MYSQL_HARNESS_STDX_ITERATOR_H_
26#define MYSQL_HARNESS_STDX_ITERATOR_H_
36template <
class T,
bool = std::is_array_v<T>>
41 using value_type = std::remove_cv_t<std::remove_extent_t<T>>;
44template <
class T,
bool = std::is_
object_v<T>>
52template <
class T,
typename = std::
void_t<>>
57 std::void_t<typename stdx::remove_cvref_t<T>::value_type>>
60template <class T, bool = has_value_type<T>::value>
68template <
class T,
typename = std::
void_t<>>
75template <class T, bool = has_element_type<T>::value>
83template <
class T,
typename = std::
void_t<>>
89template <class T, bool = has_reference<T>::value>
104template <
class T,
class Enable =
void>
117 T,
std::enable_if_t<impl::has_value_type<T>::value>>
119 stdx::remove_cvref_t<T>> {};
123 T,
std::enable_if_t<impl::has_element_type<T>::value>>
uint16_t value_type
Definition: vt100.h:183
Definition: authentication.cc:35
Definition: varlen_sort.h:174
typename indirectly_readable_traits< stdx::remove_cvref_t< T > >::value_type iter_value_t
Definition: iterator.h:131
typename impl::iter_reference< stdx::remove_cvref_t< T > >::reference iter_reference_t
Definition: iterator.h:135
Definition: iterator.h:69
Definition: iterator.h:84
Definition: iterator.h:53
std::remove_cv_t< std::remove_extent_t< T > > value_type
Definition: iterator.h:41
Definition: iterator.h:37
typename T::element_type value_type
Definition: iterator.h:80
Definition: iterator.h:76
typename T::value_type value_type
Definition: iterator.h:65
Definition: iterator.h:61
std::remove_cv_t< T > value_type
Definition: iterator.h:49
Definition: iterator.h:45
decltype(*std::declval< T & >()) reference
Definition: iterator.h:94
typename T::reference reference
Definition: iterator.h:99
Definition: iterator.h:90
Definition: iterator.h:105