Типы со строгой именной эквивалентностью позволят предотвратить автоматические преобразования типов данных и как следствие, связанные с этим логические ошибки.
Чтобы не нарушать обратную совместимость со старым исходным кодом, определение субтипов с именной эквивалентностью можно реализовать по аналогии с контролем обращение к глобальным переменным в функциях и методах классов · Issue #626 · cpp-ru/ideas за счет использования ключевого слова used.
"used subtype int IntSubType;"
Пример использования именной эквивалентности типов
typedef int IntType;
used subtype int IntSubType;
static_assert(std::is_same<decltype(IntType), int>::value); // OK
static_assert(std::is_same<decltype(IntSubType), int>::value); // FALSE
static_assert(std::is_same<decltype(IntSubType), IntType>::value); // FALSE
static_assert(std::is_same<decltype(IntSubType), IntSubType>::value); // OK