从参数包中获取typedef

时间:2016-05-26 03:01:04

标签: c++ templates c++11

我有这种形式的结构:

template <typename T>
struct X
{
    using value = T;
};

我将其中一个或多个传递给这样的模板函数:

template <typename... Ts>
void Func(Ts... ts);

我真正想要的是明确列出X并让函数参数类型为value的{​​{1}}。我该怎么做?

1 个答案:

答案 0 :(得分:10)

以下适用于我。

template <typename T>
struct X
{
    using value = T;
};

template <typename T>
struct Y
{
    using value = T*;
};

template <typename... Ts>
void Func(typename Ts::value... ts)
{
}

int main()
{
   Func<X<int>, Y<double>>(10, nullptr);
}