Comparator を指定した set

initializer_list を使って初期化できるようになったので

std::set<int, std::greater<int>> mySet{10, 4, 20, 50};

などとよく書くようになった。

比較の所を自前で用意するために、

struct MyLessThan {
  bool operator()(int a, int b) { return a > b; }
};

std::set<int, MyLessThan> mySet{10, 4, 20, 50};

などとも書ける。MyLessThan が使い捨てでよければ

auto myLessThan = [](int a, int b) { return a > b; };
std::set<int, decltype(myLessThan)> mySet({10, 4, 20, 50}, myLessThan);

この時だけ、コンストラクタで initializer_list の次に、比較用の myLessThan が必要
delctype(myLessThan) のデフォルトコンストラクタで myLessThan が得られたりはしないみたい。