这是我试图解决的一个简化问题的示例。在收集排序参数中带有自动类型的Lambda
#include <iostream>
#include <set>
using namespace std;
auto comp = [](int x, int y) { return x < y; };
struct Struct {
set<int, decltype(comp)> member(comp);
};
int main() {
Struct variable;
variable.member.insert(1);
variable.member.insert(5);
for(auto v: variable.member) {
cout << v << endl;
}
return 0;
}
我使用下面的命令来编译我的代码:
g++ -std=c++14 -o test.exe test.cpp
不幸的是,它不断地产生以下错误:
test.cpp:9:34: error: unknown type name 'comp'
set<int, decltype(comp)> reads(comp);
^
我试图安装克新版本++,但它不起作用。 我在MacOS上使用Clang执行这个命令,以及在5.2版本中使用g ++的Ubuntu 16。
你可以发布一个小例子,一个可以用来重现错误?上面的代码片段是不够的。 – skypjack
不确定你的意图是在这里。你可以扩展你想要做的事吗? – user4581301
我愿意有一些自己的比较功能。这将允许我按照所需顺序遍历元素。 –