http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14258
--- Comment #21 from Elias Pipping <pipping at exherbo dot org> ---
(In reply to Jonathan Wakely from comment #19)
> That example's a bit misleading, because 'int' really isn't a class,
> namespace or enumeration, but the error's wrong because there could be a
> specialization of A<>, and the same error is produced even if A<T>::type is
> a class type.
You're right. This will reproduce the problem, too:
<<SNIP
struct C;
template <typename T> struct A {
typedef C type;
};
template <typename T> struct B : public A<T> {
using typename A<T>::type;
static const int block_size = type::block_size;
};
<<SNAP