gpt4 book ai didi

c++ - 为什么我不能将 constexpr 与 lambda 函数一起使用?

转载 作者:搜寻专家 更新时间:2023-10-31 01:05:19 26 4
gpt4 key购买 nike

我需要一个解释。 lambda 与其他功能有何不同,不允许使用它?不属于 C++ 标准是胡说八道吗?例如,我想用 C++ 编写一个“嵌套”函数,但由于无法直接执行,所以我使用 lambda 而不是。这个函数做了一个非常小的工作:接受一个 int 参数并乘以一些值并返回。这些值是定义 lambda 函数的局部值,它们都是 constexpr 并且在运行时知道,因此我想让编译器放置一个 const 值而不是调用该函数。它是经常使用的函数(这就是我将其写为函数的原因)并且我不希望在运行时计算它。

最佳答案

这是因为标准列表 lambda 作为非常量表达式:“5.19 常量表达式”…“是一个核心常量表达式,除非它涉及以下之一作为潜在评估的子表达式”…”— lambda 表达式(5.1. 2);"

这足以让任何编译器拒绝包含 lambda 的 constexpr 函数。

关于c++ - 为什么我不能将 constexpr 与 lambda 函数一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22736637/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com