繁体   English   中英

隐式使用initializer_list

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM