gpt4 book ai didi

C++:未计算上下文中的 lambda 表达式

转载 作者:搜寻专家 更新时间:2023-10-30 23:51:53 27 4
gpt4 key购买 nike

我正在关注 this回答用 lambda 函数定义一个 priority_queue。但是,我正在运行:错误:未评估上下文中的 lambda 表达式

#include <bits/stdc++.h>

int main()
{
std::priority_queue<
int,
std::vector<int>,
decltype( [](int a, int b)->bool{
return a>b;
})>
q;
}

最佳答案

您的代码是有效的 C++20,但无效的 C++11。

  • 在 C++20 之前的未计算上下文(例如 decltype)中不允许使用 Lambda 表达式。
  • 闭包类型在 C++20 之前不是默认可构造的。在 C++20 中,没有捕获的闭包类型是默认可构造的。

关于C++:未计算上下文中的 lambda 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52734311/

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