[英]Implicit use of initializer_list
§[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};
}
您的程序不是格式错误,因为<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>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.