https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115497
Mital Ashok <mital at mitalashok dot co.uk> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED --- Comment #4 from Mital Ashok <mital at mitalashok dot co.uk> --- It appears that Clang is parsing it as a broken function type, but it should then retry parsing as an expression. 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))> {};