https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85282
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- https://wg21.link/cwg727 N.B. this is a C++17 feature that does not seem to have been approved as a DR, but Clang supports it in all language modes. Carlo, as an aside, your allocator fails to meet the allocator requirements. Rebinding must be reversible, so A<T>::rebind<U>::other::rebind<T>::other must give you back A<T>.