template<class T>
struct E{}; //// no error
template<struct T>
struct F{}; ////error
error: a non-type template parameter cannot have type 'struct T' template
If class and struct are the same things except the by-default private and public access specifiers, then why doesn't this work ?