Listing 6: Exception handling.

#include <boost/any.hpp>
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/exceptions.hpp>
#include <boost/lambda/bind.hpp>

int main() {
  using namespace boost::lambda;
  std::vector<boost::any> stuff;
  stuff.push_back(std::string("This"));
  stuff.push_back(42);
  stuff.push_back(std::string("is")); 
  stuff.push_back(3.14159265);
  stuff.push_back(std::string("neat"));
  constant_type<char>::type noop(constant(' '));
  std::for_each(
    stuff.begin(),
    stuff.end(),
    try_catch(
    (
      std::cout << 
      bind<std::string>(
        &boost::any_cast<std::string>,_1) << ' ', noop), 
    catch_exception<boost::bad_any_cast>(
      // Eat the exception
      noop   
      )
    ));
}