'identifier' : an 'enum' may not be declared as a template
Only class, struct, and union specifiers can be used when declaring a templated class.
Example
template <class T> enum E{}; //error