This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Resolved status.

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

Section: 20.14.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: