类模板
<initializer_list>

std::initializer_list

template<class T> class initializer_list;
初始化列表
此类型用于访问 C++ 初始化列表中的值,它是一个类型为const T的元素列表。

此类型对象由编译器自动从初始化列表声明(用花括号括起来的逗号分隔的元素列表)创建。
1
auto il = { 10, 20, 30 };  // the type of il is an initializer_list 

请注意,此模板类并非隐式定义,即使隐式使用该类型,也必须包含头文件<initializer_list>才能访问它。

initializer_list 对象被自动创建,就好像分配了一个类型为 T 的元素数组,列表中的每个元素都通过任何必需的非窄化隐式转换,将其复制初始化到数组中的相应元素。

initializer_list 对象引用此数组的元素,而不包含它们:复制 initializer_list 对象会生成另一个引用相同底层元素的Other对象,而不是新副本(引用语义)。

此临时数组的生命周期与 initializer_list 对象相同。

仅带有一个此类型参数的构造函数是一种特殊的构造函数,称为初始化列表构造函数。当使用初始化列表构造函数语法时,初始化列表构造函数优先于其他构造函数。
1
2
3
4
5
6
7
8
struct myclass {
  myclass (int,int);
  myclass (initializer_list<int>);
  /* definitions ... */
};

myclass foo {10,20};  // calls initializer_list ctor
myclass bar (10,20);  // calls first constructor 



模板参数

T
元素的类型。
别名是成员类型initializer_list::value_type

成员类型

成员类型定义
value_type模板参数(T
引用const T&
const_referenceconst T&
size_typesize_t
iteratorconst T*
const_iteratorconst T*

成员函数


非成员函数重载