29 #ifndef __ETL_CONTAINER__
30 #define __ETL_CONTAINER__
44 template<
typename TContainer>
45 typename TContainer::iterator
begin(TContainer& container)
47 return container.begin();
54 template<
typename TContainer>
55 typename TContainer::const_iterator
begin(
const TContainer& container)
57 return container.begin();
64 template<
typename TContainer>
65 typename TContainer::const_iterator
cbegin(
const TContainer& container)
67 return container.cbegin();
74 template<
typename TContainer>
75 typename TContainer::reverse_iterator
rbegin(
const TContainer& container)
77 return container.rbegin();
84 template<
typename TContainer>
85 typename TContainer::reverse_iterator
crbegin(
const TContainer& container)
87 return container.crbegin();
94 template<
typename TContainer>
95 typename TContainer::iterator
end(TContainer& container)
97 return container.end();
104 template<
typename TContainer>
105 typename TContainer::const_iterator
end(
const TContainer& container)
107 return container.end();
114 template<
typename TContainer>
115 typename TContainer::const_iterator
cend(
const TContainer& container)
117 return container.cend();
124 template<
typename TContainer>
125 typename TContainer::const_iterator
rend(
const TContainer& container)
127 return container.rend();
134 template<
typename TContainer>
135 typename TContainer::reverse_iterator
crend(
const TContainer& container)
137 return container.crend();
144 template<
typename TValue, const
size_t ARRAY_SIZE>
145 TValue*
begin(TValue(&data)[ARRAY_SIZE])
154 template<
typename TValue, const
size_t ARRAY_SIZE>
155 const TValue*
begin(
const TValue(&data)[ARRAY_SIZE])
164 template<
typename TValue, const
size_t ARRAY_SIZE>
165 const TValue*
cbegin(
const TValue(&data)[ARRAY_SIZE])
174 template<
typename TValue, const
size_t ARRAY_SIZE>
175 std::reverse_iterator<TValue*>
rbegin(
const TValue(&data)[ARRAY_SIZE])
177 return std::reverse_iterator<TValue*>(&data[ARRAY_SIZE]);
184 template<
typename TValue, const
size_t ARRAY_SIZE>
185 std::reverse_iterator<const TValue*>
crbegin(
const TValue(&data)[ARRAY_SIZE])
187 return std::reverse_iterator<const TValue*>(&data[ARRAY_SIZE]);
194 template<
typename TValue, const
size_t ARRAY_SIZE>
195 TValue*
end(TValue(&data)[ARRAY_SIZE])
197 return &data[ARRAY_SIZE];
204 template<
typename TValue, const
size_t ARRAY_SIZE>
205 const TValue*
end(
const TValue(&data)[ARRAY_SIZE])
207 return &data[ARRAY_SIZE];
214 template<
typename TValue, const
size_t ARRAY_SIZE>
215 const TValue*
cend(
const TValue(&data)[ARRAY_SIZE])
217 return &data[ARRAY_SIZE];
224 template<
typename TValue, const
size_t ARRAY_SIZE>
225 std::reverse_iterator<TValue*>
rend(
const TValue(&data)[ARRAY_SIZE])
227 return std::reverse_iterator<TValue*>(&data[0]);
234 template<
typename TValue, const
size_t ARRAY_SIZE>
235 std::reverse_iterator<const TValue*>
crend(
const TValue(&data)[ARRAY_SIZE])
237 return std::reverse_iterator<const TValue*>(&data[0]);
244 template<
class TIterator>
245 TIterator
next(TIterator iterator, ptrdiff_t n = 1)
247 std::advance(iterator, n);
255 template<
class TIterator>
256 TIterator
prev(TIterator iterator, ptrdiff_t n = 1)
258 std::advance(iterator, -n);
267 template<
typename TContainer>
268 typename TContainer::size_type size(
const TContainer& container)
270 return container.size();
277 template<
typename TValue, const
size_t ARRAY_SIZE>
278 size_t size(TValue(&data)[ARRAY_SIZE])
290 template <
typename T, const
size_t ARRAY_SIZE>
291 char(&array_size(T(&array)[ARRAY_SIZE]))[ARRAY_SIZE];
std::reverse_iterator< const TValue * > crend(const TValue(&data)[ARRAY_SIZE])
Definition: container.h:235
const TValue * cbegin(const TValue(&data)[ARRAY_SIZE])
Definition: container.h:165
TIterator prev(TIterator iterator, ptrdiff_t n=1)
Definition: container.h:256
const TValue * cend(const TValue(&data)[ARRAY_SIZE])
Definition: container.h:215
std::reverse_iterator< TValue * > rbegin(const TValue(&data)[ARRAY_SIZE])
Definition: container.h:175
Definition: algorithm.h:43
TIterator next(TIterator iterator, ptrdiff_t n=1)
Definition: container.h:245
const TValue * begin(const TValue(&data)[ARRAY_SIZE])
Definition: container.h:155
const TValue * end(const TValue(&data)[ARRAY_SIZE])
Definition: container.h:205
std::reverse_iterator< const TValue * > crbegin(const TValue(&data)[ARRAY_SIZE])
Definition: container.h:185
std::reverse_iterator< TValue * > rend(const TValue(&data)[ARRAY_SIZE])
Definition: container.h:225