template<typename A>
struct T1
{
   template<typename B>
   struct T2{};
};

template<typename A>
class C
{
   T1<A> t;
};

template<typename A>
using U1=decltype(C<A>::t);

template<typename A, typename B>
using U2=typename U1<A>::template T2<B>;

int main()
{
}
