Reputation: 3692
I have a struct of this form:
template <typename T>
struct X
{
using value = T;
};
I am passing one or more of these to a template function like this:
template <typename... Ts>
void Func(Ts... ts);
What I really want is to explicitly list the X
s and have the function parameter types be the value
s of the Ts
. How would I do that?
Upvotes: 8
Views: 294
Reputation: 206607
The following works for me.
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);
}
Upvotes: 10