我對初始化列表有點困惑。STL獨立初始化列表
我認爲初始化列表的東西是什麼的C++部分:
struct Something { char c0, c1; };
Something something = { 'H', 'W' };
與陣列等
類推而有一些東西連接(在我眼裏)與STL(在頭<initializer_list>
),叫std::initializer_list<T>
,它與初始值列表匹配,例如方法參數,可以等
std::initializer_list<char> list = { 'H', 'e', 'l', 'l', 'o' };
現在我的困惑:
auto match = { 'H', 'e', 'l', 'l', 'o' };
當我看到什麼是auto
解釋(在2015年MSVC),它是std::initializer_list<char>
。
所以我的問題是:
在哪裏線之間的C++語言和STL庫?
是否有一些指令指定初始化程序列表(C++含義)應如何解釋?
可以解釋變化例如從std::initializer_list<T>
轉換爲T[]
?
語言和標準庫一起工作。編譯器可以創建並傳遞例如需要時使用'std :: initializer_list'。但是,第一個示例顯示,在初始化結構時,不會創建「std :: initializer_list」。這是結構的直接初始化。 –
當您編寫「STL」時,我們假定您的意思是「標準庫」。 – MSalters
@ MSalters https://en.wikipedia.org/wiki/Standard_Template_Library – user4663214