我注意到 std::optional
, std::variant
, std::any
都具有同时接受同时接受 std::initializer_list
和args...
的构造函数。
std ::可选CTOR(7)
std ::任何ctor(6)
std :: variant ctor(8)
为什么有这样的构造函数?它支持什么用例?
好吧,这是一个愚蠢的问题。
感谢大家帮助我编辑问题。
同时使用initializer_list和参数包。
例如,std :: vector具有一个构造函数接受initializer_list和分配器。
我测试了,这似乎是答案。
std::variant<std::vector<int,std::allocator<int>>> v(std::in_place_index<0>,{1,2,3,4},std::allocator<int>());
for(int i: std::get<0>(v))
{
std::cout<<i<<std::endl;
}
还有另一个问题,为什么必须将initializer_list与其他模板参数特别分开。我想我可以在其他地方找到它。