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 が得られたりはしないみたい。