C++ std::initializer\u list什么时候可以构造?
在我看来,我认为当用于初始化C++ std::initializer\u list什么时候可以构造?,c++,initialization,initializer-list,C++,Initialization,Initializer List,在我看来,我认为当用于初始化std::initializer\u list的Ts..类型的对象可以用来构造T时,那么std::initializer\u list就可以从Ts..构造出来,因为根据,std::initializer\u list的每个元素要么是direct\u initialized要么是copy\u initialized 然而,我不确定我是否正确,所以我发布了这篇文章。这个问题本身没有意义。也就是说,您询问的是某个操作的属性是否存在,而该属性并不适用于该操作 6个特殊成员函数
std::initializer\u list
的Ts..
类型的对象可以用来构造T
时,那么std::initializer\u list
就可以从Ts..
构造出来,因为根据,std::initializer\u list
的每个元素要么是direct\u initialized
要么是copy\u initialized
然而,我不确定我是否正确,所以我发布了这篇文章。这个问题本身没有意义。也就是说,您询问的是某个操作的属性是否存在,而该属性并不适用于该操作 6个特殊成员函数(默认构造函数、复制/移动构造函数/赋值运算符和析构函数)可能很简单。但是,这些是唯一可以是琐碎的事情,“琐碎”一词有着明确的含义 列表初始化没有执行任何这些操作。至少,不是直接的
初始化
初始值设定项\u list
的过程包括创建一个临时数组,将括号内的init list中的值放入其中,并创建一个指向该数组的初始值设定项\u list
。所有这些操作都不是琐碎的问题,因此询问它们是否“琐碎”没有意义。问题本身没有意义。也就是说,您询问的是某个操作的属性是否存在,而该属性并不适用于该操作
6个特殊成员函数(默认构造函数、复制/移动构造函数/赋值运算符和析构函数)可能很简单。但是,这些是唯一可以是琐碎的事情,“琐碎”一词有着明确的含义
列表初始化没有执行任何这些操作。至少,不是直接的
初始化初始值设定项\u list
的过程包括创建一个临时数组,将括号内的init list中的值放入其中,并创建一个指向该数组的初始值设定项\u list
。所有这些操作都不是琐碎的问题,因此询问它们是否“琐碎”是没有意义的