An enumeration member of a class template may be defined outside the class
template definition.
[âExample:
template<class T> struct A {
enum E : T;
};
A<int> a;
template<class T> enum A<T>::E : T { e1, e2 };
A<int>::E e = A<int>::e1;
âââend exampleâ]