Typedef
C言語と異なり、C++において構造体、共用体、列挙型、クラス型の変数を宣言する際は、struct、union、enum、classキーワードの使用はオプションとなっており、あいまいさがないかぎり省略できる。例えば、
という定義さえあれば、typedefエイリアスを明示的に定義したり、structキーワードを明示的に使用したりせずとも、
と宣言できる。
C++ではクラス(あるいは構造体)内部でtypedefを使用することで、クラス スコープのシノニムを定義することができるため、テンプレートを使用したジェネリックプログラミングやダックタイピングに都合がよい。C++標準ライブラリのSTLの実装では、このテクニックが利用されている。