As mentioned by Manu above, the type of a lambda is unspecified. However, you can wrap it up in a std::function
:
set< string, std::function<int(string x, string y)>> s(comp);
Incidentally, this sort of sorting predicate should 1) have const parameters (because you shouldn't be modifying the items being sorted during that sort) and 2) should be ref parameters if they're objects... as normal value parameters you'll be doing an awful lot of unnecessary copying, which will make thing inefficient.
Use this instead:
auto comp = [](const string& x, const string& y){ return x > y; };
set< string, std::function<int(const string& x, const string& y)>> s(comp);