#ifndef LIBAXX_INITIALIZER_LIST #define LIBAXX_INITIALIZER_LIST #include namespace std { template class initializer_list { public: initializer_list() noexcept : m_begin(nullptr), m_size(0) {} const T * begin() const noexcept { return m_begin; } const T * end() const noexcept { return m_begin + m_size; } private: initializer_list(const T * begin, size_t size) noexcept : m_begin(begin), m_size(size) {} const T * m_begin; size_t m_size; }; template inline const T * begin(initializer_list il) noexcept { return il.begin(); } template inline const T * end(initializer_list il) noexcept { return il.end(); } } #endif