For example
struct A { typedef int Type; }
struct B { typedef float Type; }
template<class... Ts>
struct C
{
    typedef tuple<Ts::Type...> TupleType; // comilation error: parameter pack 
                                          // expects a type template argument
};
How to unpack type-defined types?