https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71579
--- Comment #1 from Jonathan Wakely <redi at gcc dot gnu.org> --- Your example has undefined behaviour, the requirements in the standard are requirements on your use of the trait. If you use it wrong it doesn't work.