31#ifndef ETL_CLASS_TRAITS_INCLUDED
32#define ETL_CLASS_TRAITS_INCLUDED
40#if ETL_CPP11_SUPPORTED
44 #if ETL_CPP11_SUPPORTED
58 static constexpr one test(
decltype(&C::begin)*);
60 static constexpr two test(...);
64 static constexpr bool value = (
sizeof(test<T>(0)) ==
sizeof(char));
67 #if ETL_CPP17_SUPPORTED
69 static constexpr bool has_begin_v = has_begin<T>::value;
85 static constexpr one test(
decltype(std::declval<C>().
end()));
87 static constexpr two test(...);
91 static constexpr bool value = (
sizeof(test<T>(0)) ==
sizeof(char));
94 #if ETL_CPP17_SUPPORTED
96 static constexpr bool has_end_v = hasend<T>::value;
102 template <
typename T>
111 template <
typename C>
112 static one test(
decltype(std::declval<C>().
size()));
113 template <
typename C>
114 static two test(...);
118 static constexpr bool value = (
sizeof(test<T>(0)) ==
sizeof(char));
121 #if ETL_CPP17_SUPPORTED
122 template <
typename T>
123 static constexpr bool has_size_v = has_size<T>::value;
129 template <
typename T>
138 template <
typename C>
139 static one test(
decltype(std::declval<C>().max_size()));
140 template <
typename C>
141 static two test(...);
145 static constexpr bool value = (
sizeof(test<T>(0)) ==
sizeof(char));
148 #if ETL_CPP17_SUPPORTED
149 template <
typename T>
150 static constexpr bool has_max_size_v = has_max_size<T>::value;
156 template <
typename T>
165 template <
typename C>
166 static constexpr one test(
decltype(std::declval<C>().empty()));
167 template <
typename C>
168 static constexpr two test(...);
172 static constexpr bool value = (
sizeof(test<T>(0)) ==
sizeof(char));
175 #if ETL_CPP17_SUPPORTED
176 template <
typename T>
177 static constexpr bool has_empty_v = has_empty<T>::value;
183 template <
typename T>
192 template <
typename C>
193 static constexpr one test(
decltype(std::declval<C>().
data()));
194 template <
typename C>
195 static constexpr two test(...);
199 static constexpr bool value = (
sizeof(test<T>(0)) ==
sizeof(char));
202 #if ETL_CPP17_SUPPORTED
203 template <
typename T>
204 static constexpr bool has_data_v = has_data<T>::value;
bitset_ext
Definition absolute.h:40
ETL_CONSTEXPR TContainer::pointer data(TContainer &container)
Definition iterator.h:1228
ETL_CONSTEXPR TContainer::size_type size(const TContainer &container)
Definition iterator.h:1192
ETL_CONSTEXPR TContainer::iterator end(TContainer &container)
Definition iterator.h:997