# /* Copyright (C) 2002 # * Housemarque Oy # * http://www.housemarque.com # * # * Distributed under the Boost Software License, Version 1.0. (See # * accompanying file LICENSE_1_0.txt or copy at # * http://www.boost.org/LICENSE_1_0.txt) # */ # # /* Revised by Paul Mensonides (2002) */ # # /* See http://www.boost.org for most recent version. */ # # /* This example demonstrates the usage of lists and BOOST_PP_LIST_FOR_EACH(). */ # # include # include # # include # include # # /* List of built-in types. (Strictly speaking wchar_t should be on the list.) */ # # define BUILTIN_TYPES \ BOOST_PP_TUPLE_TO_LIST( \ 13, \ ( \ bool, \ char, signed char, unsigned char, \ unsigned short, short, \ int, unsigned, \ long, unsigned long, \ float, \ double, long double \ ) \ ) \ /**/ # # define CATCH(R, _, T) \ catch (T t) { \ std::cerr << "Caught an " << typeid(t).name() << " = " << t; \ } \ /**/ int main() { try { throw 10; } BOOST_PP_LIST_FOR_EACH(CATCH, _, BUILTIN_TYPES) return 0; }