To avoid excessive verbosity, all the examples assume that a few using directives are in place.
namespace mpl = boost::mpl; using namespace boost::type_erasure;