I want to make a decreasing string sort in a set using lambda expression, but I don't know why I've got this error: "error C3497: you cannot construct an instance of a lambda". Can anyone help me, please.
#include <set>
#include <iostream>
#include <iterator>
#include <string>
#include <functional>
using namespace std;
typedef set<string, greater<string> > DecreasingStringSet;
int main()
{
//lambda expression
auto comp = [](string x, string y){ return x > y; };
set< string , decltype(comp) > s(comp);
s.insert("one");
s.insert("two");
s.insert("three");
s.insert("four");
for (auto x : s){
cout << x << " ";
}
cout << endl;
return 0;
}