#ifndef _INITIALIZER_LIST
#define _INITIALIZER_LIST

#pragma clang system_header
#
#include "sim_c++config.h" // size_t

namespace std {

template <class _E>
class initializer_list  {
  const _E* __begin_;
  size_t    __size_;

  initializer_list(const _E* __b, size_t __s)
    : __begin_(__b),
      __size_(__s)
  {}

public:
  typedef _E        value_type;
  typedef const _E& reference;
  typedef const _E& const_reference;
  typedef size_t    size_type;

  typedef const _E* iterator;
  typedef const _E* const_iterator;

  initializer_list() : __begin_(0), __size_(0) {}

  size_t    size()  const {return __size_;}
  const _E* begin() const {return __begin_;}
  const _E* end()   const {return __begin_ + __size_;}

}; // class initializer_list

} // namespace std

#endif // _INITIALIZER_LIST
