std::initializer_list
From cppreference.com
| Defined in header <initializer_list>
|
||
| template< class T > class initializer_list; |
(since C++11) | |
An object of type std::initializer_list<T> is a thin wrapper around an array of objects of type T.
A std::initializer_list is passed by value to the constructor of an object when it is initialized using the initializer list syntax.
Initializer lists are typically implemented as a pair of pointers or pointer and length. Copying a std::initializer_list does not copy the underlying objects.
Contents |
[edit] Member types
| Member type | Definition |
| value_type | T |
| reference | const T& |
| const_reference | const T& |
| size_type | size_t |
| iterator | const T* |
| const_iterator | const T* |
[edit] Member functions
| creates an empty initializer list (public member function) | |
Capacity | |
| returns the number of elements in the initializer list (public member function) | |
Iterators | |
| returns a pointer the first element (public member function) | |
| returns a pointer to one past the last element (public member function) | |
[edit] Non-member functions
| specializes std::begin (function template) | |
| specializes std::end (function template) | |
[edit] Example
#include <iostream> #include <vector> #include <initializer_list> template<class T> struct S { std::vector<T> v; S(std::initializer_list<T> l) : v(l) { std::cout << "constructed with a " << l.size() << "-element list\n"; } }; int main() { S<int> s = {1,2,3,4,5}; std::cout << "The vector now holds"; for(auto n : s.v) std::cout << ' ' << n; std::cout << '\n'; }
Output:
constructed with a 5-element list The vector now holds 1 2 3 4 5