std::end(std::initializer_list)
From cppreference.com
                    
                                        
                    < cpp | utility | initializer list
                    
                                                            
                    |   template< class E >  const E* end( initializer_list<E> il ) noexcept;  | 
(since C++11) | |
|   template< class E >  constexpr const E* end( initializer_list<E> il ) noexcept;  | 
 (since C++11)  (until C++14)  | 
|
The overload of std::end for initializer_list returns a pointer to one past the last element of il.
Parameters
| il | - |   an initializer_list
 | 
Return value
il.end()
Example
Run this code
#include <iostream> int main() { // range-based for uses std::begin and std::end to iterate // over a given range; in this case, it's an initializer list for (int i : {3, 1, 4, 1}) { std::cout << i << '\n'; } }
Output:
3 1 4 1
See also
|    returns a pointer to one past the last element  (public member function)  |