模板
std::initializer_list
未预定义;如果在使用std::initializer_list
之前未包含标题 - 即使是未命名类型的隐式用法 - 程序也是不正确的。
由于编译器特别提到了std::initializer_list
,所以为什么它不被视为语言的第一类语法?
我对一些可能性及其反驳的看法:
可以像std::size_t
一样解决,只包含标题introduces the identifier。
请注意auto sz = sizeof(0);
即使没有包含任何标题也是如此格式良好,而不是auto il = {1, 2, 3};
格式不正确。
libstdc ++ std::initializer_list
的实现实际上少于50行,不依赖于其他头。这可能有多大的开销?