<initializer_list>是否包含在<iostream>中?
Is <initializer_list> included in <iostream>?
我知道下面的代码块可以编译
#include<initializer_list>
int main()
{
std::initializer_list<int> li = {1,2,3,4};
}
我不明白为什么这也能编译
#include<iostream>
int main()
{
std::initializer_list<int> li = {1,2,3,4};
}
<initializer_list>
是否包含在<iostream>
中?根据this,好像不是。这可能是 machine/compiler 依赖的东西吗?
Is <initializer_list>
included in <iostream>
?
没有指定也没有保证。
而且,也不能保证不收录。任何标准 header 可能包含任何其他标准 header 或系统 header。你不应该依赖这样的传递包含,因为另一个(版本的)标准库可能没有这样的包含。同样通常也适用于所有第三方 header。仅在有记录和保证的情况下才依赖传递包含。
我知道下面的代码块可以编译
#include<initializer_list>
int main()
{
std::initializer_list<int> li = {1,2,3,4};
}
我不明白为什么这也能编译
#include<iostream>
int main()
{
std::initializer_list<int> li = {1,2,3,4};
}
<initializer_list>
是否包含在<iostream>
中?根据this,好像不是。这可能是 machine/compiler 依赖的东西吗?
Is
<initializer_list>
included in<iostream>
?
没有指定也没有保证。
而且,也不能保证不收录。任何标准 header 可能包含任何其他标准 header 或系统 header。你不应该依赖这样的传递包含,因为另一个(版本的)标准库可能没有这样的包含。同样通常也适用于所有第三方 header。仅在有记录和保证的情况下才依赖传递包含。