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 ) )); }