Backported to VS2013 using a metaprogrammed emulation of unrestricted unions. Works surprisingly well considering.

VS2013 and GCC 4.8. I can expand that as early as GCC 4.6 and clang 3.2 if you would like.