gpt4 book ai didi

c++ - 初始化元组数组,其中元组元素需要前一个元素作为 ctor arg

转载 作者:行者123 更新时间:2023-11-30 04:06:21 25 4
gpt4 key购买 nike

using namespace std;
...
array<tuple<X, Y, Z>, 3> = {make_tuple(X(), Y(get<0>(???)), Z()), ...

这显然是行不通的,因为还没有构建元组,所以我无法在 get<>() 中放入任何内容。然而,我需要通过给定数组元素的同一元组中的 X 进行类型转换来初始化 Y 元素。我怎样才能做到这一点?在我的情况下,Y 只能通过 X 的这种类型转换或移动来构造;没有默认的构造函数。此外,我需要一个基于堆栈的数组,所以如果不为 vector 编写一个堆栈分配器,我就不能使用 vector,这是一个巨大的代码添加,本来应该很简单。

最佳答案

单独构建 X()(请不要使用 using namespace std...)

X x;
std::array<std::tuple<X,Y,Z>, 3> a { make_tuple(x, Y(x), Z()), ... };

那应该行得通...

关于c++ - 初始化元组数组,其中元组元素需要前一个元素作为 ctor arg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22944320/

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