 the current C++ language:
      to make these traits "just work" with user defined types, some kind
      of additional help from the compiler is required. Currently (April 2008) Visual
      C++ 8 and 9, GNU GCC 4.3 and MWCW 9 provide the necessary intrinsics, and other
      compilers will no doubt follow in due course.
    </p>
<p>
      The Following traits classes always need compiler support to do the right thing
      for all types (but all have safe fallback positions if this support is unavailable