什么时候std :: initializer_list可以构造?

时间:2018-07-04 04:23:39

标签: c++ initialization initializer-list

我认为,当用于初始化Ts...的类型std::initializer_list<T>的对象可以用来简单地构造T时,那么std::initializer_list<T>就可以从{ {1}}是因为根据list initializationTs...的每个元素都是std::initializer_list<T>direct_initialized

但是,我不确定我是否正确,所以我发布了此信息。

1 个答案:

答案 0 :(得分:3)

这个问题本身没有道理。也就是说,您要询问的是该属性根本不适用的操作是否存在该属性。

这6个特殊的成员函数(默认构造函数,复制/移动构造函数/赋值运算符和析构函数)可能是微不足道的。但是,这些是可能是琐碎的事情,对于这些术语“琐碎”具有明确的含义。

列表初始化不执行任何操作。至少不是直接。

列表初始化initializer_list的过程包括创建一个临时数组,将braced-init-list中的值放入其中,并创建一个指向该数组的initializer_list。这些都不是琐碎的操作,因此询问它们是否“琐碎”是没有道理的。