Shouldn't std::invoke be constexpr
especially after constexpr lambdas in C++17 ?
Are there any obstacles that will prevent this?
Update: P1065 will make it constexpr
.
Keep original post for historical reason:
From the proposal :
Although there is possibility to implement standard conforming invoke function template as a constexpr function, the proposed wording does not require such implementation. The main reason is to left it consistent with existing standard function objects, that could have such definition, like std::mem_fn, std::reference_wrapper and operator wrappers. Furthermore imposing such requirement will block the implementation of invoke that refers to std::mem_fn.
This proposal assumes that constexpr addition to the header would be applied consistently by a separate proposal.
Both constexpr and standard library based implementation are presented in Implementability section of the proposal.
Related CWG issue #1581: When are constexpr
member functions defined? .
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.