The normative definition for function type is described as
[dcl.fct#3]
A type of either form is a function type.
My reading for these forms are
The type of the declarator-id in D is:
- derived-declarator-type-list noexcept opt function of parameter-type-list cv-qualifier-seq opt ref-qualifier opt returning T
- derived-declarator-type-list noexcept opt function of parameter-type-list cv-qualifier-seq opt ref-qualifier opt returning U
If I understand correctly, Only the derived-declarator-type-list is empty will the type of the declarator-id in D be the function type.
However, the relevant rule is not clear here. Such as, if derived-declarator-type-list is pointer to, the type of the declarator-id in D should be called a pointer type, Isn't it? So, I wonder Is it vague here for the definition of function type? If I misunderstand the relevant wording, please point out how to read the wording?