For example, this is how I would write it, and it compiles and works just fine:
template struct is_pointer { static const bool valu
It also is another symbol in every object file that includes it, to no benefit. If you use symbol folding (--gc-sections) you'll run out of separatable sections & bloat your binary.