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

wgat do you think of adding an explicit assignment from Error to error_exception to workaround this VS bug?