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