https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102
--- Comment #4 from Jonathan Wakely ---
If we want to relax the check this should work:
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -448,8 +448,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
typedef _
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102
--- Comment #3 from Jonathan Wakely ---
(In reply to Jonathan Wakely from comment #2)
> This fails, because the comparison object in the set is const, and so it's
s/it's/its/
The requirements in the standard were clarified by https://wg21.link
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102
--- Comment #2 from Jonathan Wakely ---
Because otherwise it's impossible to use a const set:
const Import_init_set s;
auto it = s.lower_bound(0);
This fails, because the comparison object in the set is const, and so it's
operator() isn't usabl
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102
--- Comment #1 from Jonathan Wakely ---
(In reply to Martin Sebor from comment #0)
> struct Import_init_lt {
> bool operator()(const Import_init* i1, const Import_init* i2)
This function needs to be const
> {
> return i1->init_name() <