2926. INVOKE(f, t1, t2,... tN) and INVOKE(f, t1, t2,... tN, R) are too similar

Section: 22.10.4 [func.require] Status: Resolved Submitter: United States Opened: 2017-02-03 Last modified: 2017-03-20

Priority: Not Prioritized

View all other issues in [func.require].

View all issues with Resolved status.

Discussion:

Addresses US 84

The distinction between INVOKE(f, t1, t2,... tN) and INVOKE(f, t1, t2,... tN, R) is too subtle. If the last argument is an expression, it represents tN, if it's a type, then it represents R. Very clumsy.

Proposed change: Rename INVOKE(f, t1, t2,... tN, R) to INVOKE_R(R, f, t1, t2,... tN) and adjust all uses of this form. (Approximately 10 occurrences of invoke would need to change.)

[2017-02-24, Daniel comments]

I suggest to apply the paper d0604r0, available on the Kona LWG wiki, implements this suggestions.

[2017-03-12, post-Kona]

Resolved by p0604r0.

Proposed resolution: