Suppose I have some template classes defined as follows
template<template<class>class...>
struct my_class;
template<class>
struct define_template{
template<class>
class type;
};
I need to define an alias template that substitutes define_template::type into my_class so for three classes I could do this
template<class A, class B, class C>
using my_alias = my_class< define_template<A>::template type,
define_template<B>::template type,
define_template<C>::template type>;
I can't work out the syntax to do this for a variadic template ideally something like this
template<class... T>
using new_class = my_class<define_template<T>::template type...>;
which gives me an error "parameter packs not expanded with '...'
Does anybody know the correct synax?
From the comments below it compiles in clang, I'm using gcc 4.8.2 through Cygwin.