]> AND Private Git Repository - canny.git/blob - stc/exp/ml_stc_linux_make_v1.0/include/boost/detail/no_exceptions_support.hpp
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
702407f3cc0dd0c6604c21a21d8a261b66877f4a
[canny.git] / stc / exp / ml_stc_linux_make_v1.0 / include / boost / detail / no_exceptions_support.hpp
1 #ifndef BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_\r
2 #define BOOST_DETAIL_NO_EXCEPTIONS_SUPPORT_HPP_\r
3 \r
4 #if (defined _MSC_VER) && (_MSC_VER >= 1200)\r
5 #  pragma once\r
6 #endif\r
7 \r
8 //----------------------------------------------------------------------\r
9 // (C) Copyright 2004 Pavel Vozenilek.\r
10 // Use, modification and distribution is subject to the Boost Software\r
11 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt\r
12 // or copy at http://www.boost.org/LICENSE_1_0.txt)\r
13 //\r
14 //\r
15 // This file contains helper macros used when exception support may be\r
16 // disabled (as indicated by macro BOOST_NO_EXCEPTIONS).\r
17 //\r
18 // Before picking up these macros you may consider using RAII techniques\r
19 // to deal with exceptions - their syntax can be always the same with \r
20 // or without exception support enabled.\r
21 //\r
22 \r
23 /* Example of use:\r
24 \r
25 void foo() {\r
26   BOOST_TRY {\r
27     ...\r
28   } BOOST_CATCH(const std::bad_alloc&) {\r
29       ...\r
30       BOOST_RETHROW\r
31   } BOOST_CATCH(const std::exception& e) {\r
32       ...\r
33   }\r
34   BOOST_CATCH_END\r
35 }\r
36 \r
37 With exception support enabled it will expand into:\r
38 \r
39 void foo() {\r
40   { try {\r
41     ...\r
42   } catch (const std::bad_alloc&) {\r
43       ...\r
44       throw;\r
45   } catch (const std::exception& e) {\r
46       ...\r
47   }\r
48   }\r
49 }\r
50 \r
51 With exception support disabled it will expand into:\r
52 \r
53 void foo() {\r
54   { if(true) {\r
55     ...\r
56   } else if (false) {\r
57       ...\r
58   } else if (false)  {\r
59       ...\r
60   }\r
61   }\r
62 }\r
63 */\r
64 //----------------------------------------------------------------------\r
65 \r
66 #include <boost/config.hpp>\r
67 #include <boost/detail/workaround.hpp>\r
68 \r
69 #if !(defined BOOST_NO_EXCEPTIONS)\r
70 #    define BOOST_TRY { try\r
71 #    define BOOST_CATCH(x) catch(x)\r
72 #    define BOOST_RETHROW throw;\r
73 #    define BOOST_CATCH_END }\r
74 #else\r
75 #    if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))\r
76 #        define BOOST_TRY { if ("")\r
77 #        define BOOST_CATCH(x) else if (!"")\r
78 #    else\r
79 #        define BOOST_TRY { if (true)\r
80 #        define BOOST_CATCH(x) else if (false)\r
81 #    endif\r
82 #    define BOOST_RETHROW\r
83 #    define BOOST_CATCH_END }\r
84 #endif\r
85 \r
86 \r
87 #endif \r