template <class T, template <class> class Q, typename U = Q<T>>
class Derived2: Base<T, U> {
  typedef Base<T, U> base;
};
とか