Arduino Libraries
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros
initializer_list.hpp
Go to the documentation of this file.
1 // Author: Mario S. Könz <mskoenz@gmx.net>
2 // Date: 18.11.2013 23:04:55 CET
3 // File: initializer_list.hpp
4 
5 #ifndef __INITIALIZER_LIST_HEADER
6 #define __INITIALIZER_LIST_HEADER
7 
8 namespace std
9 {
11  template<class _E>
13  {
14  public:
15  typedef _E value_type;
16  typedef const _E& reference;
17  typedef const _E& const_reference;
18  typedef size_t size_type;
19  typedef const _E* iterator;
20  typedef const _E* const_iterator;
21 
22  private:
23  iterator _M_array;
24  size_type _M_len;
25 
26  // The compiler can call a private constructor.
27  constexpr initializer_list(const_iterator __a, size_type __l)
28  : _M_array(__a), _M_len(__l) { }
29 
30  public:
31  constexpr initializer_list() noexcept
32  : _M_array(0), _M_len(0) { }
33 
34  // Number of elements.
35  constexpr size_type
36  size() const noexcept { return _M_len; }
37 
38  // First element.
39  constexpr const_iterator
40  begin() const noexcept { return _M_array; }
41 
42  // One past the last element.
43  constexpr const_iterator
44  end() const noexcept { return begin() + size(); }
45  };
46 
52  template<class _Tp>
53  constexpr const _Tp*
54  begin(initializer_list<_Tp> __ils) noexcept
55  { return __ils.begin(); }
56 
62  template<class _Tp>
63  constexpr const _Tp*
64  end(initializer_list<_Tp> __ils) noexcept
65  { return __ils.end(); }
66 }
67 
68 #endif //__INITIALIZER_LIST_HEADER
constexpr size_type size() const noexcept
Definition: initializer_list.hpp:36
constexpr initializer_list() noexcept
Definition: initializer_list.hpp:31
constexpr const_iterator end() const noexcept
Definition: initializer_list.hpp:44
const _E * const_iterator
Definition: initializer_list.hpp:20
const _E & const_reference
Definition: initializer_list.hpp:17
const _E & reference
Definition: initializer_list.hpp:16
size_t size_type
Definition: initializer_list.hpp:18
initializer_list
Definition: initializer_list.hpp:12
_E value_type
Definition: initializer_list.hpp:15
const _E * iterator
Definition: initializer_list.hpp:19
constexpr const _Tp * end(initializer_list< _Tp > __ils) noexcept
Return an iterator pointing to one past the last element of the initilizer_list.
Definition: initializer_list.hpp:64
constexpr const _Tp * begin(initializer_list< _Tp > __ils) noexcept
Return an iterator pointing to the first element of the initilizer_list.
Definition: initializer_list.hpp:54
constexpr const_iterator begin() const noexcept
Definition: initializer_list.hpp:40