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

The limitations in VS2013 only emerge in very rare circumstances, basically only when using heavy deduction and inference from lambda types. They only appear rarely in this unit test suite, and indeed don't appear in VS14. I don't think most users would ever encounter them.