[support.initlist] (original) (raw)
17 Language support library [support]
17.11 Initializer lists [support.initlist]
17.11.2 Header <initializer_list> synopsis [initializer.list.syn]
namespace std { template<class E> class initializer_list { public: using value_type = E;using reference = const E&;using const_reference = const E&;using size_type = size_t;using iterator = const E*;using const_iterator = const E*;constexpr initializer_list() noexcept;constexpr size_t size() const noexcept; constexpr const E* begin() const noexcept; constexpr const E* end() const noexcept; };template<class E> constexpr const E* begin(initializer_list<E> il) noexcept;template<class E> constexpr const E* end(initializer_list<E> il) noexcept;}
An object of type initializer_list<E> provides access to an array of objects of type const E.
[Note 1:
A pair of pointers or a pointer plus a length would be obvious representations for initializer_list.
initializer_list is used to implement initializer lists as specified in [dcl.init.list].
Copying an initializer_list does not copy the underlying elements.
— _end note_]
If an explicit specialization or partial specialization ofinitializer_list is declared, the program is ill-formed.
17.11.3 Initializer list constructors [support.initlist.cons]
constexpr initializer_list() noexcept;
Postconditions: size() == 0.
17.11.4 Initializer list access [support.initlist.access]
constexpr const E* begin() const noexcept;
Returns: A pointer to the beginning of the array.
If size() == 0 the values of begin() and end() are unspecified but they shall be identical.
constexpr const E* end() const noexcept;
Returns: begin() + size().
constexpr size_t size() const noexcept;
Returns: The number of elements in the array.
Complexity: Constant time.
17.11.5 Initializer list range access [support.initlist.range]
template<class E> constexpr const E* begin(initializer_list<E> il) noexcept;
template<class E> constexpr const E* end(initializer_list<E> il) noexcept;