Listing 2



  using namespace cdiggins;
  any a = 3.141;
  double d = a.cast<double>();
  try {
    int n = a.cast<int>();
  }
  catch(bad_any_cast a) {
    cerr << "an exception occured trying to cast from "
      << a.from.name() << a.to.name() << endl;
  }