template<enum E> class ENUM: public E {...}; enum MatrixMovie { Matrix, MatrixReloaded, MatrixRevolutions }; ENUM<MatrixMovie> mm;