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

I'll look into restoring these disabled tests, but with special help for VS2013. As you suggest, a std::function usually works.