This is an unofficial snapshot of the ISO/IEC JTC1 SC22 WG21 Core Issues List revision 110c. See http://www.open-std.org/jtc1/sc22/wg21/ for the official list.

2023-02-07


749. References to function types with a cv-qualifier or ref-qualifier

Section: 12.5  [over.built]     Status: CD2     Submitter: Alberto Ganesh Barbati     Date: 9 December, 2008

[Voted into WP at July, 2009 meeting.]

12.5 [over.built] paragraph 7 posits the existence of built-in candidate operator* functions “for every function type T.” However, only non-static member function types can contain a cv-qualifier or ref-qualifier (9.3.4.6 [dcl.fct] paragraph 7), and a reference to such a type cannot be initialized (7.6.1.5 [expr.ref] paragraph 4, bullet 3, sub-bullet 2). (See also _N2914_.14.10.4 [concept.support] paragraph 10, which disallows references to function types with cv-qualifiers but is silent on ref-qualifiers.)

Proposed resolution (March, 2009):

  1. Change 12.5 [over.built] paragraph 7 as follows:

  2. For every function type T that does not have cv-qualifiers or a ref-qualifier, there exist candidate operator functions of the form
  3. Change _N2914_.14.10.4 [concept.support] paragraph 7 as follows:

  4. Requires: for every type T that is an object type, a function type that does not have cv-qualifiers or a ref-qualifier, or cv void, a concept map PointeeType<T> is implicitly defined in namespace std.
  5. Change _N2914_.14.10.4 [concept.support] paragraph 11 as follows:

  6. Requires: for every type T that is an object type, a function type that does not have cv-qualifiers or a ref-qualifier, or a reference type, a concept map ReferentType<T> is implicitly defined in namespace std.