>>606
元々Cにはユーザがデータ型を定義するという概念はなくて
名前付きの構造体により代用している

そこから悪しき方向に進んだのがtypedef
後戻りできなくなったのが C++

なぜタグ名が必要ですか? ではなくて
なぜタグ名の前のstructを省略しようとするのですか? と問うべき