31 #ifndef ETL_CONTAINER_INCLUDED
32 #define ETL_CONTAINER_INCLUDED
48 template<
typename TContainer>
49 ETL_CONSTEXPR
typename TContainer::iterator
begin(TContainer& container)
51 return container.begin();
58 template<
typename TContainer>
59 ETL_CONSTEXPR
typename TContainer::const_iterator
begin(
const TContainer& container)
61 return container.begin();
68 template<
typename TContainer>
69 ETL_CONSTEXPR
typename TContainer::const_iterator
cbegin(
const TContainer& container)
71 return container.cbegin();
78 template<
typename TContainer>
79 ETL_CONSTEXPR
typename TContainer::reverse_iterator
rbegin(
const TContainer& container)
81 return container.rbegin();
88 template<
typename TContainer>
89 ETL_CONSTEXPR
typename TContainer::reverse_iterator
crbegin(
const TContainer& container)
91 return container.crbegin();
98 template<
typename TContainer>
99 ETL_CONSTEXPR
typename TContainer::iterator
end(TContainer& container)
101 return container.end();
108 template<
typename TContainer>
109 ETL_CONSTEXPR
typename TContainer::const_iterator
end(
const TContainer& container)
111 return container.end();
118 template<
typename TContainer>
119 ETL_CONSTEXPR
typename TContainer::const_iterator
cend(
const TContainer& container)
121 return container.cend();
128 template<
typename TContainer>
129 ETL_CONSTEXPR
typename TContainer::const_iterator
rend(
const TContainer& container)
131 return container.rend();
138 template<
typename TContainer>
139 ETL_CONSTEXPR
typename TContainer::reverse_iterator
crend(
const TContainer& container)
141 return container.crend();
148 template<
typename TValue, const
size_t ARRAY_SIZE>
149 ETL_CONSTEXPR TValue*
begin(TValue(&data)[ARRAY_SIZE])
158 template<
typename TValue, const
size_t ARRAY_SIZE>
159 ETL_CONSTEXPR
const TValue*
begin(
const TValue(&data)[ARRAY_SIZE])
168 template<
typename TValue, const
size_t ARRAY_SIZE>
169 ETL_CONSTEXPR
const TValue*
cbegin(
const TValue(&data)[ARRAY_SIZE])
178 template<
typename TValue, const
size_t ARRAY_SIZE>
179 ETL_OR_STD::reverse_iterator<TValue*>
rbegin(
const TValue(&data)[ARRAY_SIZE])
181 return ETL_OR_STD::reverse_iterator<TValue*>(&data[ARRAY_SIZE]);
188 template<
typename TValue, const
size_t ARRAY_SIZE>
189 ETL_CONSTEXPR ETL_OR_STD::reverse_iterator<const TValue*>
crbegin(
const TValue(&data)[ARRAY_SIZE])
191 return ETL_OR_STD::reverse_iterator<const TValue*>(&data[ARRAY_SIZE]);
198 template<
typename TValue, const
size_t ARRAY_SIZE>
199 ETL_CONSTEXPR TValue*
end(TValue(&data)[ARRAY_SIZE])
201 return &data[ARRAY_SIZE];
208 template<
typename TValue, const
size_t ARRAY_SIZE>
209 ETL_CONSTEXPR
const TValue*
end(
const TValue(&data)[ARRAY_SIZE])
211 return &data[ARRAY_SIZE];
218 template<
typename TValue, const
size_t ARRAY_SIZE>
219 ETL_CONSTEXPR
const TValue*
cend(
const TValue(&data)[ARRAY_SIZE])
221 return &data[ARRAY_SIZE];
228 template<
typename TValue, const
size_t ARRAY_SIZE>
229 ETL_CONSTEXPR ETL_OR_STD::reverse_iterator<TValue*>
rend(
const TValue(&data)[ARRAY_SIZE])
231 return ETL_OR_STD::reverse_iterator<TValue*>(&data[0]);
238 template<
typename TValue, const
size_t ARRAY_SIZE>
239 ETL_CONSTEXPR ETL_OR_STD::reverse_iterator<const TValue*>
crend(
const TValue(&data)[ARRAY_SIZE])
241 return ETL_OR_STD::reverse_iterator<const TValue*>(&data[0]);
249 template<
typename TContainer>
250 ETL_CONSTEXPR
typename TContainer::size_type size(
const TContainer& container)
252 return container.size();
259 template<
typename TValue, const
size_t ARRAY_SIZE>
260 ETL_CONSTEXPR
size_t size(TValue(&)[ARRAY_SIZE])
272 template <
typename T, const
size_t ARRAY_SIZE>
273 char(&array_size(T(&array)[ARRAY_SIZE]))[ARRAY_SIZE];
276 #if ETL_CPP11_SUPPORTED && !defined(ETL_FORCE_NO_ADVANCED_CPP)
277 #define ETL_ARRAY_SIZE(a) (etl::size(a))
279 #define ETL_ARRAY_SIZE(a) sizeof(etl::array_size(a))
ETL_CONSTEXPR TContainer::reverse_iterator rbegin(const TContainer &container)
Definition: container.h:79
ETL_CONSTEXPR TContainer::const_iterator rend(const TContainer &container)
Definition: container.h:129
ETL_CONSTEXPR TContainer::const_iterator cbegin(const TContainer &container)
Definition: container.h:69
ETL_CONSTEXPR TContainer::iterator begin(TContainer &container)
Definition: container.h:49
ETL_CONSTEXPR TContainer::reverse_iterator crend(const TContainer &container)
Definition: container.h:139
ETL_CONSTEXPR TContainer::reverse_iterator crbegin(const TContainer &container)
Definition: container.h:89
ETL_CONSTEXPR TContainer::const_iterator cend(const TContainer &container)
Definition: container.h:119
ETL_CONSTEXPR TContainer::iterator end(TContainer &container)
Definition: container.h:99
Definition: absolute.h:37