【发布时间】:2016-11-13 16:36:35
【问题描述】:
我创建了一个模板类,它接受两个普通模板参数(如 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> {...}
我需要设计一个结构,允许编译器根据模板类型列表及其参数(上面代码 sn-p 中的 B 类型)构建 std::tuple。
所以给出下面的列表
Derived1Class<int>, Derived1Class<double>, Derived2Class<bool>, Derived2Class<std::string>
编译器应该推断出以下元组:
std::tuple<int, double, bool, std::string>
这是否可能,如果可以,如何在 C++ 中完成?
提前致谢)
【问题讨论】:
标签: c++ stl tuples variadic-templates generic-programming