There is also Boost.TypeErasure.

Type erasure is not a bad analogy if you could "import" or add the existing supported methods. It may become an easy mechanism with Sutter's nascent meta approach.

Still, simpler, faster, stronger, more teachable with a new new thing may be nice as well all seem to have our own more (in my case) or less awkward value wrapper approaches.