Ситуация:
typedef int TypeA;
typedef int TypeB;
Мне нужно сделать TypeA несовместимым с TypeB (так что любая попытка присвоение TypeA TypeB вызовет ошибку компиляции), при сохранении всех функций, предоставляемых встроенным типом (операторами).
Один из способов сделать это - обернуть каждый тип в отдельную структуру / класс (и переопределить все операторы и т. Д.).
Есть ли другой, более «элегантный» способ сделать это?
Использование сторонних библиотек запрещено. C ++ 0x / C ++ 11x не поддерживается. (Поддерживается C ++ 2003)