小编Tat*_*kow的帖子

如何从 C++ 模板中解压 std::tuple?

我有一个类,预计将采用std::tuple某些类型(允许任意计数)作为模板参数。我想声明一个类型向量的元组。例如,我有

template <typename T>
class MyClass {/*...*/}
Run Code Online (Sandbox Code Playgroud)

我实例化它

MyClass<std::tuple<int, bool>> my_class;
Run Code Online (Sandbox Code Playgroud)

我的目标是创造一个这样的领域

std::tuple<std::vector<int>, std::vector<bool>> my_tuple;
Run Code Online (Sandbox Code Playgroud)

我知道如果我有一个类定义

template <typename... T>
class MyClass2 {/*...*/}
Run Code Online (Sandbox Code Playgroud)

我可以通过传递没有元组的数据类型来实例化它

MyClass<int, bool> my_class2;
Run Code Online (Sandbox Code Playgroud)

然后简单地创建字段

std::tuple<std::vector<int>, std::vector<bool>> my_tuple2;
Run Code Online (Sandbox Code Playgroud)

使用

std::tuple<std::vector<T>...> my_tuple2;
Run Code Online (Sandbox Code Playgroud)

因此,我想我应该以某种方式从元组中解压缩数据类型。是否可以?

c++ templates tuples c++17

6
推荐指数
1
解决办法
448
查看次数

标签 统计

c++ ×1

c++17 ×1

templates ×1

tuples ×1