33#ifndef ETL_INITIALIZER_LIST_INCLUDED
34#define ETL_INITIALIZER_LIST_INCLUDED
38#if ETL_HAS_INITIALIZER_LIST
40 #if (ETL_USING_CPP11 && !defined(ETL_NO_INITIALIZER_LIST))
45 #if (ETL_USING_STL && ETL_NOT_USING_STLPORT && !defined(ETL_FORCE_ETL_INITIALIZER_LIST)) || defined(ETL_IN_UNIT_TEST) \
46 || defined(ETL_FORCE_STD_INITIALIZER_LIST)
48 #include <initializer_list>
55 #if defined(ETL_COMPILER_MICROSOFT)
62 class initializer_list
67 using reference =
const T&;
68 using const_reference =
const T&;
69 using size_type = size_t;
70 using iterator =
const T*;
71 using const_iterator =
const T*;
76 constexpr initializer_list() ETL_NOEXCEPT
85 constexpr initializer_list(
const T* pfirst_,
const T* plast_) ETL_NOEXCEPT
94 constexpr const T*
begin() const ETL_NOEXCEPT
102 constexpr const T*
end() const ETL_NOEXCEPT
110 constexpr size_t size() const ETL_NOEXCEPT
112 return static_cast<size_t>(plast - pfirst);
124 template <
typename T>
125 constexpr const T*
begin(initializer_list<T> init) ETL_NOEXCEPT
133 template <
typename T>
134 constexpr const T*
end(initializer_list<T> init) ETL_NOEXCEPT
139 #elif defined(ETL_COMPILER_GCC) || defined(ETL_COMPILER_CLANG) || defined(ETL_COMPILER_ARM6) || defined(ETL_COMPILER_ARM7) \
140 || defined(ETL_COMPILER_IAR) || defined(ETL_COMPILER_TEXAS_INSTRUMENTS) || defined(ETL_COMPILER_INTEL)
147 class initializer_list
151 using value_type = T;
152 using reference =
const T&;
153 using const_reference =
const T&;
154 using size_type = size_t;
155 using iterator =
const T*;
156 using const_iterator =
const T*;
161 constexpr initializer_list() ETL_NOEXCEPT
170 constexpr const T*
begin() const ETL_NOEXCEPT
178 constexpr const T*
end() const ETL_NOEXCEPT
180 return pfirst + length;
186 constexpr size_t size() const ETL_NOEXCEPT
196 constexpr initializer_list(
const T* pfirst_,
size_t length_) ETL_NOEXCEPT
210 constexpr const T*
begin(initializer_list<T> init) ETL_NOEXCEPT
219 constexpr const T*
end(initializer_list<T> init) ETL_NOEXCEPT
225 #error No definition for initializer_list is currently available for your compiler. Visit https:
ETL_CONSTEXPR TContainer::size_type size(const TContainer &container)
Definition iterator.h:1192
ETL_CONSTEXPR TContainer::iterator begin(TContainer &container)
Definition iterator.h:967
ETL_CONSTEXPR TContainer::iterator end(TContainer &container)
Definition iterator.h:997