gpt4 book ai didi

c++ - 初始化包含元组数组的类的正确和简便方法是什么?

转载 作者:行者123 更新时间:2023-12-03 06:57:48 24 4
gpt4 key购买 nike

我有一个包含元组数组的类,如下所示:

template<size_t __v, typename ... __tz>
class turray{
public:
std::tuple<__tz ...> array[__v];
};
它没有任何用户定义的构造函数,我想知道如何初始化它。
请考虑以下方法:
int main(){
turray<2, int, float> mturray0{std::tuple<int, float>{1, 1.1}, std::tuple<int, float>{2, 2.2}}; //works but is very big
turray<2, int, float> mturray1{{1, 1.1}, {2, 2.2}};// causes error
}
第一种方法有效,但很大,不希望使用。第二种方法导致以下错误:
error: too many initializers for ‘turray<2, int, float>’
227 | turray<2, int, float> mturray1{{1, 1.1}, {2, 2.2}};
| ^
如果有人可以告诉我什么是正确的方法,我将不胜感激。

最佳答案

您只需要添加另一对括号:

turray<2, int, float> mturray1 { { {1, 1.1}, {2, 2.2} } };
// ^ ^ tuple
// ^ ^ array
// ^ ^ turray
这是 demo

关于c++ - 初始化包含元组数组的类的正确和简便方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64172718/

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