https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102
--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- 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 usable. The Go code apparently never calls const member functions on those sets.