ネタ投下

C++のtypedefって名前からしてオカシイ。
新しい型を定義するのではなく、既存の型に別名を付けるのだから。
機能からすれば、aliasとかtype_aliasとか、そういう名前が相応しい。

別名だから、
typedef int AGE ;
typedef int WEIGHT ;
なんてやっても、
AGE a = 10 ;
WEIGHT w = a ; // これを防げない
ダメダメじゃん。