gpt4 book ai didi

c++ - 初始化列表中的 initializer_list

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:58 25 4
gpt4 key购买 nike

我想用 std::initializer_list 初始化基类。

struct A : public std::array<int, 4>
{
// This constructor works fine
A()
: std::array<int, 4>{{ 1, 2, 3, 4 }}
{
}

// THIS CONSTRUCTOR FAILS TO COMPILE
A(std::initializer_list<int> il)
: std::array<int, 4>{il}
{
}
};

第二个构造函数的 GCC 错误是

error: array must be initialized with a brace-enclosed initializer

我想要的是像这样使用 initializer_list 初始化新的 A 实例

A var{{ 1, 2, 3, 4 }}

并将其传递给基类。

最佳答案

std::array 类没有采用std::initializer_list 的构造函数。

你唯一的办法就是这样做:

#include <array>
#include <initializer_list>

struct A : public std::array<int, 4>
{
A()
: std::array<int, 4>{{ 1, 2, 3, 4 }}
{
}

A(std::array<int, 4> il)
: std::array<int, 4>(il)
{
}
};

int main ()
{
A a ({{ 1, 2, 3, 4 }});
}

关于c++ - 初始化列表中的 initializer_list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23038080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com