These tests instantiate std::multiset and std::set with a type that has
no operator< so they should use a custom comparison function.
libstdc++-v3/ChangeLog:
* testsuite/23_containers/multiset/operators/cmp_c++20.cc: Use
custom comparison function for multiset.
* testsuite/23_containers/set/operators/cmp_c++20.cc: Use custom
comparison function for set.
{
bool operator==(E) { return true; }
};
- static_assert( ! std::totally_ordered<std::multiset<E>> );
+ struct Cmp
+ {
+ bool operator()(E, E) const { return false; }
+ };
+ static_assert( ! std::totally_ordered<std::multiset<E, Cmp>> );
static_assert( ! std::three_way_comparable<E> );
- static_assert( ! std::three_way_comparable<std::multiset<E>> );
+ static_assert( ! std::three_way_comparable<std::multiset<E, Cmp>> );
}
void
{
bool operator==(E) { return true; }
};
- static_assert( ! std::totally_ordered<std::set<E>> );
+ struct Cmp
+ {
+ bool operator()(E, E) const { return false; }
+ };
+ static_assert( ! std::totally_ordered<std::set<E, Cmp>> );
static_assert( ! std::three_way_comparable<E> );
- static_assert( ! std::three_way_comparable<std::set<E>> );
+ static_assert( ! std::three_way_comparable<std::set<E, Cmp>> );
}
void