Простой ответ заключается в том, что ключевое слово struct
присутствует, чтобы ограничить поиск идентификатора tm
только пользовательскими типами классов . Вероятно, он оставлен для совместимости с C, где это необходимо.
Вопреки тому, что говорят другие, нет такой функции, как auto-typedef , и C и C ++ не отличаются в отношении того, как управляются идентификаторы для пользовательских типов. Единственное различие заключается в поиске.