Due to a bug in MSVC, an enum value cannot be accessed out of a template parameter until the template class opens. In order for templated classes to access the dimension of a vector template parameter in defining their own dimension, this class is needed as a work-around.