相关疑难解决方法(0)

可以表达lambda表达式的"类型"吗?

将lambda表达式视为可调用对象的"语法糖",可以表达未命名的基础类型吗?

一个例子:

struct gt {
    bool operator() (int l, int r) {
        return l > r;
    }
} ;
Run Code Online (Sandbox Code Playgroud)

现在,[](int l, int r) { return l > r; }是上述代码的优雅替代(加上gt的可调用对象的必要创建),但有没有办法表达gt(类型)本身?

一个简单的用法:

std::set<int, gt> s1;  // A reversed-order std::set
// Is there a way to do the same using a lambda?
std::set<int, some-magic-here-maybe([](int l, int r) { return l > r; }) > s2;
Run Code Online (Sandbox Code Playgroud)

c++ lambda stl c++11

52
推荐指数
1
解决办法
2万
查看次数

在地图中使用Lambdas

我正在尝试在C++ 11中实现一个带有lambda函数的映射

std::map<int, int, [](const int&a, const int& b) { return a < b; }> test;
Run Code Online (Sandbox Code Playgroud)

但那失败了

错误:模板参数列表中参数3的类型/值不匹配 ‘template<class _Key, class _Tp, class _Compare, class _Alloc> class std::map’

错误:期望一个类型,得到 ‘{}’

错误:‘;’令牌之前的声明中的无效类型

有什么建议?

c++ lambda c++11

26
推荐指数
1
解决办法
2万
查看次数

C++:lambda-expression在未评估的上下文中

我按照这个答案来定义一个带有lambda函数的priority_queue.但是,我正在运行:error:lambda-expression在未评估的上下文中

#include <bits/stdc++.h>

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

c++ stl c++11

3
推荐指数
1
解决办法
326
查看次数

标签 统计

c++ ×3

c++11 ×3

lambda ×2

stl ×2