typeafe typedef в C ++
Я хотел бы использовать что-то вроде typedef в моих программах на C ++ для повышения безопасности типов.
В качестве примера, предположим, у меня есть две функции
void function1(unsigned idOfType1);
void function2(unsigned idOfType2);
тогда я могу по ошибке передать idOfType2 в function1 и наоборот. Я хочу, чтобы компилятор выдал мне ошибку в этом случае. Я знаю, что я мог бы обернуть их без знака в структуру, но тогда я должен был бы предоставить имя поля и использовать.
получить к ним доступ, что немного неудобно. Есть ли хороший способ обойти это?
Редактировать: насколько я знаюtypedef
не будет работать для этой цели, так как это просто сокращение для типа и не будет использоваться для проверки типа.