Ну если диапазон 0..255 и 256..65535 - то писать обертки наверное задолбаешься. Тогда уж определить макрос типа
Код
#define DIAPAZON(a, b) ( ((a)==0 && (b)==255) ? 1 : 2)
template<int diapazonNum>
class TMyClass
{};
template<int diapazonNum = 1>
class TMyClass
{};
template<int diapazonNum = 2>
class TMyClass
{};
TMyClass<DIAPAZON(0, 255)> a;
TMyClass<DIAPAZON(256, 65535)> b;