https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115497
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Mital Ashok from comment #4) > Forcing it to be an expression in the first place does let it compile: > > template<typename _Tp> > struct is_pointer : ts<static_cast<bool>(__is_pointer(_Tp))> {}; Ah nice, we can do that