繁体   English   中英

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

[英]When is std::initializer_list trivially constructible?

我认为,当用于初始化std::initializer_list<T>的类型为Ts...的对象可用于平凡地构造T ,则从Ts...可以简单地构造std::initializer_list<T> Ts...因为根据列表初始化std::initializer_list<T>每个元素都可以是direct_initializedcopy_initialized

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM