Many of the type traits require compiler magic: the traits essentially give a library interface to some hooks provided by the different compilers. How the compilers implement these hooks is entirely up to them and there is no consistant interface.
At the current meeting there was discussion on adding reflection to a future revision which may eventually lead to a library implementation if traits like std::has_virtual_destructor<T>
. However, it will be a while before something like reflection emerges.