Created on 2017-02-03.00:00:00 last changed 59 months ago
Proposed resolution:
This wording is relative to N4640.
Modify [func.invoke] as indicated:
template <class F, class... Args> constexpr result_of_t<F&&(Args&&...)> invoke(F&& f, Args&&... args);
[ 2020-01 Resolved by the adoption of P1065 in Cologne. ]
[ 2017-07 Toronto Tuesday PM issue prioritization ]
Priority 3
[ Kona 2017-03-01 ]
We think this needs CWG 1581 to work; accepted as Immediate to resolve NB comment.
Friday: CWG 1581 was not moved in Kona. Status back to Open.
[ 2017-02-20, Marshall adds wording ]
The function template std::apply() in [tuple.apply] is required to be constexpr, but std::invoke() in [func.invoke] isn't. The most sensible implementation of apply_impl() is exactly equivalent to std::invoke(), so this requires implementations to have a constexpr version of invoke() for internal use, and the public API std::invoke, which must not be constexpr even though it is probably implemented in terms of the internal version.
Proposed change: Add constexpr to std::invoke.
History | |||
---|---|---|---|
Date | User | Action | Args |
2020-01-13 07:01:29 | admin | set | messages: + msg10923 |
2020-01-13 07:01:29 | admin | set | status: open -> resolved |
2017-07-12 01:58:24 | admin | set | messages: + msg9352 |
2017-03-05 23:48:53 | admin | set | status: wp -> open |
2017-03-05 23:46:08 | admin | set | status: immediate -> wp |
2017-03-03 22:14:37 | admin | set | messages: + msg9069 |
2017-03-03 22:14:37 | admin | set | status: new -> immediate |
2017-02-20 18:11:16 | admin | set | messages: + msg8954 |
2017-02-20 18:11:16 | admin | set | messages: + msg8953 |
2017-02-03 00:00:00 | admin | create |