c++ 从模板参数类型构造类类型的元组

k2arahey  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(117)

我想构造一个类型,它是一个具有不同模板参数类型的相同类的元组。我的意思是:
想象一下我们有一门课

template<class Arg>
class A
{
    //.... details
}

字符串
我想定义如下:

template<class... Args>
struct construct_tuple 
{
    //assume I can access Args[...]
    using type = std::tuple<A<Args[0]>, A<Args[1]>, ..., A<Args[n]>>;
}


你能帮帮忙吗?
我相信可能有一个解决方案,通过迭代变量参数和使用元组类型之间的连接,或者使用其他TMP,例如std::enable_ifstd::conditional_t

aemubtdh

aemubtdh1#

虽然你的代码不会尝试构造任何东西,但这将编译并提供你想要的东西。

template<class... Args>
struct construct_tuple 
{
    //assume I can access Args[...]
    using type = std::tuple<A<Args>...>;
};

字符串

jqjz2hbq

jqjz2hbq2#

你只需要使用包扩展,使用:

using type = std::tuple<A<Args>...>;

字符串
将扩大到:

using type = std::tuple<A<Args1>, A<Args2>, ..., A<ArgsN>>;

相关问题