typesafe typedef en C ++

Me gustaría usar algo como typedef en mis programas de C ++ para mejorar la seguridad de tipos.

omo ejemplo, supongamos que tengo dos funciones

void function1(unsigned idOfType1);
void function2(unsigned idOfType2);

then puedo pasar por error idOfType2 a function1 y viceversa. Quiero que el compilador me dé un error en este caso. Soy consciente de que podría envolver estos sin firmar en una estructura, pero luego tendría que proporcionar un nombre de campo y usar. para acceder a ellos, lo cual es un poco inconveniente. ¿Hay alguna forma de evitar esto?

Edit: Hasta donde yo sétypedef no funcionará para este propósito ya que es solo una abreviatura de un tipo y no se utilizará para la verificación de tipos.

Respuestas a la pregunta(14)

Su respuesta a la pregunta