不应该std::调用 http://en.cppreference.com/w/cpp/utility/functional/invoke be constexpr
尤其是之后C++17 中的 constexpr lambda http://en.cppreference.com/w/cpp/language/lambda?
有什么障碍可以阻止这种情况发生吗?
Update: P1065 https://wg21.link/p1065会成功的constexpr
.
由于历史原因保留原帖:
From 提案 http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4169.html:
尽管可以将符合标准的调用函数模板实现为 constexpr 函数,但建议的措辞不需要这样的实现。主要原因是使其与现有的标准函数对象保持一致,这些对象可以具有这样的定义,例如 std::mem_fn、std::reference_wrapper 和运算符包装器。此外,强加这样的要求将阻止引用 std::mem_fn 的调用的实现。
该提案假设头中的 constexpr 添加将由单独的提案一致应用。
基于 constexpr 和标准库的实现都在提案的可实现性部分中介绍。
相关 CWG 问题 #1581:什么时候constexpr成员函数定义? http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1581.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)