這是我試圖解決的一個簡化問題的示例。在收集排序參數中帶有自動類型的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
我願意有一些自己的比較功能。這將允許我按照所需順序遍歷元素。 –