using latest gcc/STL --------- #include <set>
using int_set1 = std::set<int, std::greater<int>>; using int_set2 = std::set<int>; static_assert(std::is_same<int_set1::iterator, int_set2::iterator>()); --------- the two iterators are equal when not using _GLIBCXX_DEBUG but become different when using the define?