https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92078
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>: https://gcc.gnu.org/g:f2242ec0d3f1bb13c78ef3c21e0354d84fe57222 commit r11-960-gf2242ec0d3f1bb13c78ef3c21e0354d84fe57222 Author: Jonathan Wakely <jwak...@redhat.com> Date: Thu Jun 4 23:20:49 2020 +0100 libstdc++: Remove workarounds for constrained nested class templates With PR c++/92078 and PR c++/92103 both fixed, nested class templates can now be constrained. That means a number of namespace-scope helpers can be moved to the class scope, so they're only visible where they're needed. * include/bits/iterator_concepts.h (__detail::__ptr, __detail::__ref) (__detail::__cat, __detail::__diff): Move to class scope in the relevant __iterator_traits specializations. (__iterator_traits<>): Use nested class templates instead of ones from namespace __detail. * include/bits/stl_iterator.h (__detail::__common_iter_ptr): Move to class scope in iterator_traits<common_iterator<I, S>>. (iterator_traits<common_iterator<I, S>>): Use nested class template instead of __detail::__common_iter_ptr.