Всё что угодно, только не создаёт новый тип.
Ради смеху можешь попробовать создать перегрузку функции с типом, созданным через typedef (например, typedef int BOOL), и с оригинальным int. Ты увидишь, что для компилятора и то и другое - самый обычный int.
Для создания strong types в плюсах нужно использовать классы с операторами, больше никак.
__________________
Братские могилы переполнены,
Смерть серпом косила буйны головы.
Рваную рубаху пулями латай,
Топоры да плаха по дороге в рай!
XaeroX писал: Всё что угодно, только не создаёт новый тип.
Ну это как бы большой вопрос - а что вообще можно считать новым типом.
Атомарные типы, мы очевидно не можем конструировать с нуля, а значит всё что мы создадим будет алиасами.
Цитата:
XaeroX писал: Ради смеху можешь попробовать создать перегрузку функции с типом, созданным через typedef (например, typedef int BOOL), и с оригинальным int. Ты увидишь, что для компилятора и то и другое - самый обычный int.
Неправда, так себя только шестёрка ведёт, а новые студии уже нет.