https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81347
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> ---
I would guess that the instantiation of A::tree injects the type map into the
enclosing namespace, and then the using-declaration finds two declarations and
thinks it's an error.
bug.cc:17:10: error: ‘map’ is already declared in this scope
using A::map;
^~~
