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() noexcept
75 : pfirst(
nullptr), plast(
nullptr)
82 constexpr initializer_list(
const T* pfirst_,
const T* plast_) noexcept
83 : pfirst(pfirst_), plast(plast_)
90 constexpr const T*
begin() const noexcept
98 constexpr const T*
end() const noexcept
106 constexpr size_t size() const noexcept
108 return static_cast<size_t>(plast - pfirst);
121 constexpr const T*
begin(initializer_list<T> init)
noexcept
129 template <
typename T>
130 constexpr const T*
end(initializer_list<T> init)
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() noexcept
158 : pfirst(
nullptr), length(0)
165 constexpr const T*
begin() const noexcept
173 constexpr const T*
end() const noexcept
175 return pfirst + length;
181 constexpr size_t size() const noexcept
191 constexpr initializer_list(
const T* pfirst_,
size_t length_) noexcept
205 constexpr const T*
begin(initializer_list<T> init)
noexcept
214 constexpr const T*
end(initializer_list<T> init)
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