Title
[fund.ts.v2] invocation_trait definition definition doesn't work for surrogate call functions
Status
open
Section
[meta.trans.other]
Submitter
Mike Spertus

Created on 2015-09-25.00:00:00 last changed 82 months ago

Messages

Date: 2015-11-04.16:49:21

Proposed resolution:

This wording is relative to N4529.

  1. In Library Fundamentals 2, change [meta.trans.other] as indicated:

    -3- Within this section, define the invocation parameters of INVOKE(f, t1, t2, ..., tN) as follows, in which T1 is the possibly cv-qualified type of t1 and U1 denotes T1& if t1 is an lvalue or T1&& if t1 is an rvalue:

    • […]

    • If f is a class object, the invocation parameters are the parameters matching t1, ..., tN of the best viable function (C++14 §13.3.3) for the arguments t1, ..., tN among the function call operators and surrogate call functions of f.

    • […]

Date: 2015-11-04.16:49:21

[ 2015-10, Kona Saturday afternoon ]

AM: Do we have this trait yet? JW: No, it cannot be implemented without compiler support.

Move to tentatively ready

Date: 2015-09-25.00:00:00

Addresses: fund.ts.v2

In Library Fundamentals 2 (N4529) 3.3.2p3 [meta.trans.other], the definition of invocation traits for a class object f considers when f is called via a function call operator that is matched by the arguments but ignores the possibility that f may be called via a surrogate call function (C++14 [over.call.object] p2), in which case, the definition of the invocation parameters may be either incorrect or even unsatisfiable.

History
Date User Action Args
2017-07-30 20:10:41adminsetstatus: wp -> open
2016-03-07 04:18:55adminsetstatus: ready -> wp
2015-11-04 16:49:21adminsetmessages: + msg7615
2015-11-04 16:49:21adminsetstatus: new -> ready
2015-09-25 21:14:17adminsetmessages: + msg7537
2015-09-25 00:00:00admincreate