Many of the type-traits can be implemented without specific compiler support. That's how Boost managed it. Here's their implementation of is_signed if you're curious [0].
I believe some standard-library type-traits cannot be implemented without specific compiler support.