In [dcl.fct] there exists the following note:
A function type that has a cv-qualifier-seq is not a cv-qualified type; there are no cv-qualified function types.
However, [meta.reflection.queries] has the following wording for std::meta::is_const and std::meta::is_volatile:
Returns: true if T represents a const or volatile type, respectively, or a const- or volatile-qualified function type, respectively. Otherwise, false.
The former states that there are no cv-qualified function types, while the latter is directly implying the possibility of cv-qualified function types (otherwise the second half of the first sentence would be redundant). It is quite clear what the latter is trying to state, that is_const(^^int()const) should be true. But if int()const really is a const qualified type, then std::is_const_v<int()const> should be true too which is obviously not intended.
Also, the subsequent definition of std::meta::is_lvalue_reference_qualified and std::meta::is_rvalue_reference_qualified contains:
Returns: true if T represents an lvalue- or rvalue-qualified function type, respectively. Otherwise, false.
The intent here is clear too but "lvalue-qualified" and "rvalue-qualified" do not get used anywhere else.
In [dcl.fct] there exists the following note:
However, [meta.reflection.queries] has the following wording for std::meta::is_const and std::meta::is_volatile:
The former states that there are no cv-qualified function types, while the latter is directly implying the possibility of cv-qualified function types (otherwise the second half of the first sentence would be redundant). It is quite clear what the latter is trying to state, that
is_const(^^int()const)should be true. But ifint()constreally is a const qualified type, thenstd::is_const_v<int()const>should be true too which is obviously not intended.Also, the subsequent definition of std::meta::is_lvalue_reference_qualified and std::meta::is_rvalue_reference_qualified contains:
The intent here is clear too but "lvalue-qualified" and "rvalue-qualified" do not get used anywhere else.