catch_builtin.cpp

来自「Boost provides free peer-reviewed portab」· C++ 代码 · 共 52 行

CPP
52
字号
# /* 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 <iostream># include <typeinfo>## include <boost/preprocessor/list/for_each.hpp># include <boost/preprocessor/tuple/to_list.hpp>## /* 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;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?