Bri*_*ian 15 c++ initializer-list
从/sf/answers/1863048911/可以看出,标准保证以下标题#include <initializer_list>:
<utility><string><algorithm><random><valarray><regex>这些头文件中的大多数都声明了至少一个带std::initializer_list<E>参数的函数,所以它是有意义的.然而,
<array>,<stack>并且<queue>没有这样的功能,尽管在这里统一处理所有容器也许是有意义的.<utility> 没有这样的功能.<iterator>确实有一个带initializer_list参数(rbegin,rend)的函数,但它没有指定包含<initializer_list>.这些例外背后的理由是什么?
似乎没有明确的理由,只是提出了一些对标准进行补充的提案并且这些提案被接受了。
在文件N2672 Initializer List 提议的措辞的最后,它只是说:
在 20.2 实用程序组件[实用程序]第 1 段中:
本小节包含一些在库的其余部分中使用的基本函数和类模板。
标题
<utility>概要Run Code Online (Sandbox Code Playgroud)#include<initializer_list> namespace std {
因此,该论文的作者将其视为initializer_list实用程序,因此应该将其包含在<utility>标题中。确实如此。
该论文没有建议对<iterator>标题进行任何更改,因此没有进行任何更改。