The reason it can't be found in the C++ standard is because it's actually prohibited in a delta from the C standard.
In C.1.4 we have the following: Change: Types must be declared in declarations, not in expressions In C, a sizeof expression or cast expression may create a new type.
which shows the prohibition in question.
This is explicitly called out in 7.1.6/3:
At least one type-specifier that is not a cv-qualifier is required in a declaration unless it declares a constructor, destructor or conversion function.92 A type-specifier-seq shall not define a class or enumeration unless it appears in the type-id of an alias-declaration (7.1.3) that is not the declaration of a template-declaration.
where the part of particular interest is that A type-specifier-seq shall not define a class or enumeration unless...