std::initializer_list的实现原理: /// initializer_listtemplate<class_E>classinitializer_list{public:typedef_E value_type;typedefconst_E& reference;typedefconst_E& const_reference;typedefsize_tsize_type;typedefconst_E* iterator;typedefconst_E* const_iterator;private: iterator _M_array; size_type _...
std::initializer_list 的实现原理,并且把源码贴出来。 /// initializer_listtemplate<class _E>class initializer_list{public:typedef _E value_type;typedef const _E& reference;typedef const _E& const_reference;typedef size_t size_type;typedef const _E* iterator;typedef const _E* const_iterator;pri...
他认为,构造std::initializer_list之前编译器会先构造一个std::array,然后使用std::array的begin()和size()构造std::initializer_list。这种说法有一处错误。编译器不会构造std::array,而是在栈上直接构造一个数组const T[N]。在栈上构造的数组会像其他变量一样,在离开作用域时自动析构,不需要手动管理内存。std...