1
0
forked from boostorg/core
Files
boost_core/doc/no_exceptions_support.qbk

88 lines
1.3 KiB
Plaintext
Raw Normal View History

2014-06-10 13:25:46 +03:00
[/
Copyright 2004 Pavel Vozenilek
Copyright 2014 Peter Dimov
Distributed under the Boost Software License, Version 1.0.
See accompanying file LICENSE_1_0.txt
or copy at http://boost.org/LICENSE_1_0.txt
]
[section:no_exceptions_support no_exceptions_support]
2014-06-10 19:12:54 +03:00
[simplesect Authors]
* Pavel Vozenilek
2014-06-10 19:12:54 +03:00
[endsimplesect]
[section Header <boost/core/no_exceptions_support.hpp>]
2014-06-10 13:25:46 +03:00
The header `<boost/core/no_exceptions_support.hpp>` defines
macros for use in code that needs to be portable to environments
that do not have support for C++ exceptions.
[section Synopsis]
``
#define BOOST_TRY /*unspecified*/
#define BOOST_CATCH(x) /*unspecified*/
#define BOOST_CATCH_END /*unspecified*/
#define BOOST_RETHROW /*unspecified*/
``
[endsect]
[section Example Use]
``
void foo() {
BOOST_TRY {
...
} BOOST_CATCH(const std::bad_alloc&) {
...
BOOST_RETHROW
} BOOST_CATCH(const std::exception& e) {
...
}
BOOST_CATCH_END
}
``
With exception support enabled it will expand into:
``
void foo() {
{ try {
...
} catch (const std::bad_alloc&) {
...
throw;
} catch (const std::exception& e) {
...
}
}
}
``
With exception support disabled it will expand into:
``
void foo() {
{ if(true) {
...
} else if (false) {
...
} else if (false) {
...
}
}
}
``
[endsect]
[endsect]
2014-06-10 13:25:46 +03:00
[endsect]