Backported to VS2013 using a metaprogrammed emulation of unrestricted unions.