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