類模板
<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*

成員函式


非成員函式過載