home | help
std::initia...ializer_list(3)  C++ Standard Libary std::initia...ializer_list(3)

NAME
     std::initializer_list::initializer_list  -  std::initializer_list::initial-
     izer_list

Synopsis
	initializer_list() noexcept;		(since C++11)
						(until C++14)
	constexpr initializer_list() noexcept;	(since C++14)

	Constructs an empty initializer list.

Parameters
	(none)

Complexity
	Constant

Notes
	Despite a lack of constructors, it is possible to create non-empty  ini-
     tializer
	lists.	Instances  of  std::initializer_list  are implicitly constructed
     when:

	  * a braced-init-list is used in list-initialization,	including  func-
     tion-call list
	    initialization  and  assignment expressions (not to be confused with
     constructor
	    initializer lists)
	  * a braced-init-list is bound to auto, including in a ranged for loop

Example
     // Run this code

      #include <iostream>
      #include <initializer_list>

      int main()
      {
	  std::initializer_list<int> empty_list;
	  std::cout << "empty_list.size(): " << empty_list.size() << '\n';

	  // create initializer lists using list-initialization
	  std::initializer_list<int> digits {1, 2, 3, 4, 5};
	  std::cout << "digits.size(): " << digits.size() << '\n';

	  // special rule for auto means 'fractions' has the
	  // type std::initializer_list<double>
	  auto fractions = {3.14159, 2.71828};
	  std::cout << "fractions.size(): " << fractions.size() << '\n';

	  // create constexpr initializer list (since C++14)
	  static constexpr auto ab = {'a', 'b'};
	  static_assert(ab.size() == 2 and *ab.begin() == 'a');
      }

Output:
      empty_list.size(): 0
      digits.size(): 5
      fractions.size(): 2

http://cppreference.com 	   2024.06.10	   std::initia...ializer_list(3)

home | help