Как объявить две специализации шаблонного класса от одного типа, и что бы компилятор считал их разными типами? Для примера:
typedef MyTmpl<int> MyTp1;
typedef MyTmpl<int> MyTp2;
MyTp1 tp1 = 0;
MyTp2 tp2 = tp1; // что бы это не компилировалось...
Если делать наследование вместо typedef то оно не компилируется, но не работают все определения операторов и прочие ссылки типа MyTmpl в самом классе.
Суть вопроса в том, что мне нужен тип типа идентификатор. Несколько разных идентификаторов, например идентификатор файла FileId, идентификатор объектов Obj1_Id и Obj2_Id, и т.д. Что бы все они поддерживали математические операторы, но что бы между собой их нельзя было напутать присвоить один тип в другой.