[英]When is std::initializer_list trivially constructible?
我认为,当用于初始化std::initializer_list<T>
的类型为Ts...
的对象可用于平凡地构造T
,则从Ts...
可以简单地构造std::initializer_list<T>
Ts...
因为根据列表初始化 , std::initializer_list<T>
每个元素都可以是direct_initialized
或copy_initialized
。
但是,我不确定我是否正确,因此我发布了此信息。
这个问题本身没有道理。 也就是说,您要询问的是该属性根本不适用的操作是否存在该属性。
6个特殊的成员函数(默认构造函数,复制/移动构造函数/赋值运算符和析构函数)可能很简单。 但是, 只有这些是微不足道的,“琐碎”一词具有明确的含义。
列表初始化不执行任何这些操作。 至少不是直接。
列表初始化initializer_list的initializer_list
涉及创建一个临时数组,将braced-init-list中的值放入其中,并创建一个指向该数组的initializer_list
。 这些都不是琐碎的操作,因此询问它们是否“琐碎”是没有道理的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.