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) || defined(ETL_FORCE_STD_INITIALIZER_LIST)
47 #include <initializer_list>
54#if defined(ETL_COMPILER_MICROSOFT)
60 class initializer_list
65 using reference =
const T&;
66 using const_reference =
const T&;
67 using size_type = size_t;
68 using iterator =
const T*;
69 using const_iterator =
const T*;
74 constexpr initializer_list() ETL_NOEXCEPT
75 : pfirst(
nullptr), plast(
nullptr)
82 constexpr initializer_list(
const T* pfirst_,
const T* plast_) ETL_NOEXCEPT
83 : pfirst(pfirst_), plast(plast_)
90 constexpr const T*
begin() const ETL_NOEXCEPT
98 constexpr const T*
end() const ETL_NOEXCEPT
106 constexpr size_t size() const ETL_NOEXCEPT
108 return static_cast<size_t>(plast - pfirst);
121 constexpr const T*
begin(initializer_list<T> init) ETL_NOEXCEPT
129 template <
typename T>
130 constexpr const T*
end(initializer_list<T> init) ETL_NOEXCEPT
135#elif defined(ETL_COMPILER_GCC) || defined(ETL_COMPILER_CLANG) || defined(ETL_COMPILER_ARM6) || \
136 defined(ETL_COMPILER_ARM7) || defined(ETL_COMPILER_IAR) || defined(ETL_COMPILER_TEXAS_INSTRUMENTS) || \
137 defined(ETL_COMPILER_INTEL)
143 class initializer_list
147 using value_type = T;
148 using reference =
const T&;
149 using const_reference =
const T&;
150 using size_type = size_t;
151 using iterator =
const T*;
152 using const_iterator =
const T*;
157 constexpr initializer_list() ETL_NOEXCEPT
158 : pfirst(
nullptr), length(0)
165 constexpr const T*
begin() const ETL_NOEXCEPT
173 constexpr const T*
end() const ETL_NOEXCEPT
175 return pfirst + length;
181 constexpr size_t size() const ETL_NOEXCEPT
191 constexpr initializer_list(
const T* pfirst_,
size_t length_) ETL_NOEXCEPT
205 constexpr const T*
begin(initializer_list<T> init) ETL_NOEXCEPT
214 constexpr const T*
end(initializer_list<T> init) ETL_NOEXCEPT
220 #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:1187
ETL_CONSTEXPR TContainer::iterator begin(TContainer &container)
Definition iterator.h:962
ETL_CONSTEXPR TContainer::iterator end(TContainer &container)
Definition iterator.h:992