繁体   English   中英

为什么`std :: invoke`不是constexpr?

[英]Why is `std::invoke` not constexpr?

std :: invoke不应该是constexpr尤其是在C ++ 17中的constexpr lambdas之后?

是否有任何阻碍这种情况的障碍?

更新: P1065将使它成为constexpr


保留原始帖子的历史原因:

提案

虽然有可能将标准符合调用函数模板实现为constexpr函数,但是所提出的措辞不需要这样的实现。 主要原因是让它与现有的标准函数对象保持一致,它们可以有这样的定义,比如std :: mem_fn,std :: reference_wrapper和operator wrappers。 此外强加此类要求将阻止引用std :: mem_fn的调用的实现。

该提案假定constexpr对标题的添加将由单独的提案一致地应用。

constexpr和基于标准库的实现都在提案的可实施性部分中介绍。


相关的CWG问题#1581: 什么时候定义了constexpr成员函数?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM