сделать typedef несовместимым

Ситуация:

typedef int TypeA;
typedef int TypeB;

Мне нужно сделать TypeA несовместимым с TypeB (так что любая попытка присвоение TypeA TypeB вызовет ошибку компиляции), при сохранении всех функций, предоставляемых встроенным типом (операторами).

Один из способов сделать это - обернуть каждый тип в отдельную структуру / класс (и переопределить все операторы и т. Д.).

Есть ли другой, более «элегантный» способ сделать это?

Использование сторонних библиотек запрещено. C ++ 0x / C ++ 11x не поддерживается. (Поддерживается C ++ 2003)

7
задан SigTerm 22 February 2012 в 11:23
поделиться