【问题标题】:When is std::initializer_list trivially constructible?std::initializer_list 什么时候可以轻松构造?
【发布时间】:2018-12-12 10:13:41
【问题描述】:

在我看来,我认为当用于初始化std::initializer_list<T>Ts... 类型的对象可以用于构造T 时,那么std::initializer_list<T> 可以从Ts... 中构造,因为根据list initializationstd::initializer_list<T> 的每个元素要么是 direct_initialized 要么是 copy_initialized

但是,我不确定我是否正确,所以我发布了这个。

【问题讨论】:

    标签: c++ initialization initializer-list


    【解决方案1】:

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

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

    列表初始化没有做任何这些。至少,不是直接的。

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

    【讨论】:

      猜你喜欢
      • 2016-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-06
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      相关资源
      最近更新 更多