§dcl.init.list 8.5.4/2:
模板
std::initializer_list不是预先定义的;如果在使用std::initializer_list之前没有包含标头<initializer_list>--即使是类型未命名的隐式用法(7.1.6.4) --程序的格式也不正确。
这是否意味着这个计划是错误的?
#include <vector>
int main() {
// uses vector::vector(initializer_list<T>, const Allocator&) constructor
std::vector<int> v = {1, 2, 3};
}发布于 2015-06-22 03:20:13
您的程序没有格式错误,因为<vector>保证包含<initializer_list> (对于所有标准库容器也是如此)。
§23.3.1 sequences.general
<vector> 概要
#include <initializer_list>
...搜索#include <initializer_list>的标准会发现头部与以下标头一起包含
<utility><string><array><deque><forward_list><list><vector><map><set><unordered_map><unordered_set><queue><stack><algorithm><random><valarray><regex>https://stackoverflow.com/questions/30971502
复制相似问题