https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48101
--- Comment #7 from Jonathan Wakely <redi at gcc dot gnu.org> --- Even if we allowed allocator<const T> you still can't use std::set<const T> because the container code assumes a non-const value type in several places.