https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120306
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- This seems clearly undefined nonsense, so what difference does it make whether it compiles? copy_constructible<S> depends on an incomplete type, for a start.