I have the following template
template<class F>
struct A{
  template<int N>
  struct B{
    using type = int;
  };
};
I'd like to make a template alias, however:
//doesn't compile.
template<class F, int N >
using alias_A = typename A<F>::B<N>::type;
GCC:
question.cpp:12:36: error: expected ';' before '::' token
 using alias_A = typename A<F>::B<N>::type;
                                    ^
question.cpp:12:36: error: 'type' in namespace '::' does not name a type
When debugging I find:
//does compile
struct C{};
using alias_B = typename A<C>::B<0>::type;
Can somebody point out what I'm doing wrong? I feel I'm missing something obvious.