如何在c++中获得基于可变大小的模板模板列表的元组
How to get a tuple based on list of template templates of variable size in C++?
我创建了一个模板类,它接受两个普通模板形参(如int或double),并从它派生了几个其他类:
template <typename A, typename B>
class IClassBase {...}
template <typename B>
class Derived1Class : public IClassBase<std::string, B> {...}
template <typename B>
class Derived2Class : public IClassBase<std::string, B> {...}
我需要设计一个结构,允许编译器基于模板类型及其参数列表(上面代码片段中的B类型)构建std::元组。
所以给定下面的列表
Derived1Class<int>, Derived1Class<double>, Derived2Class<bool>, Derived2Class<std::string>
编译器应该推断出以下元组:
std::tuple<int, double, bool, std::string>
这是可能的,如果是,它如何在c++中完成?
这是可能的,如果是,它如何在c++中完成?
c++中一切皆有可能。特别是当前的c++标准。
#include <tuple>
#include <string>
template<typename template_type> class extract_param;
template<template<typename T> typename template_param, typename template_param_t>
class extract_param<template_param<template_param_t>> {
public:
typedef template_param_t type_t;
};
template<typename ...Args>
using extract_tuple=std::tuple<typename extract_param<Args>::type_t...>;
template<typename T> class sometemplate {};
int main()
{
extract_tuple< sometemplate<int>, sometemplate<std::string>> tuple;
int &intref=std::get<0>(tuple);
std::string &stringref=std::get<1>(tuple);
return 0;
}
相关文章:
- Pybind11:将元组列表从Python传递到C++
- 在函数呼叫时,请从异质初始化列表中构建元组
- C++ 中的 n 元组列表
- 从c++向python返回复杂列表的元组
- 有没有一种方法可以将左值和右值的列表分别转换为具有引用类型和完整类型的元组
- 如何将函数应用于可变参数列表并将它们猫到元组
- 从类型列表创建向量元组
- 初始化类成员初始值设定项列表中的向量元组
- 将元组传递给函数并让它返回数字列表的最佳方法
- 返回 vector<pair<int,int>> & from c++ 方法到 python 使用 swig typemap 的元组列表
- 成员初始值设定项列表:从返回元组的函数初始化两个成员
- 多类型容器(数组/向量/列表)传统上是如何在C++实现的?(当然没有元组)
- 如何创建类型列表以扩展到元组
- 将元组列表传递到C++函数中
- C++使用谓词查找元组列表中的元素
- 用于存储元组键的数据结构:参数关系列表
- 托管C++中的列表<元组<int,浮点>>
- 解压缩元组列表
- 如何创建元组列表C++
- 元组列表c++ 11/1y