Я почти уверен, что компилятор не может по-разному относиться к int и AnotherType.Все, что делает typedef, это псевдонимы типов - на самом деле он не создает новый тип;по определению конструкции typedef, компилятор будет обрабатывать int и AnotherType эквивалентно во всех случаях.
Если вам нужно иметь тип с просто int, который IS обрабатывается по-разному, вам, вероятно, следует просто сделать один членstruct
.Большинство операций над содержащим int будет компилироваться с тем же машинным кодом, что и голое int, но теперь ваш тип данных может иметь свои собственные специализации шаблонов и тому подобное.