Title
Satisfying associated functions with built-in operators
Status
concepts
Section
_N2914_.14.10.2.1 [concept.map.fct]
Submitter
James Widman

Created on 2009-04-15.00:00:00 last changed 187 months ago

Messages

Date: 2022-02-18.07:47:23

_N2914_.14.10.2.1 [concept.map.fct] paragraph 5 says,

Each satisfied associated function (or function template) requirement has a corresponding associated function candidate set. An associated function candidate set is a candidate set (_N2914_.14.11.3 [temp.constrained.set]) representing the functions or operations used to satisfy the requirement. The seed of the associated function candidate set is determined based on the expression E used to determine that the requirement was satisfied.

  • If the evaluation of E involves overload resolution at the top level, the seed is the function (12.2.2 [over.match.funcs]) selected by the outermost application of overload resolution (Clause 12 [over]).

  • Otherwise, if E is a pseudo destructor call (_N4778_.7.6.1.4 [expr.pseudo]), the seed is a pseudo-destructor-name.

  • Otherwise, the seed is the initialization of an object.

It is not clear that this takes built-in operators into account. For example:

    concept C<class T, class U> {
       typename R;
       R operator+( T, U );
    }

    concept_map C<int, double> {}
History
Date User Action Args
2009-08-03 00:00:00adminsetstatus: open -> concepts
2009-04-15 00:00:00admincreate