| 1 | diff --git a/include/boost/dynamic_bitset/dynamic_bitset.hpp b/include/boost/dynamic_bitset/dynamic_bitset.hpp
|
|---|
| 2 | index a722324..1554786 100644
|
|---|
| 3 | --- a/include/boost/dynamic_bitset/dynamic_bitset.hpp
|
|---|
| 4 | +++ b/include/boost/dynamic_bitset/dynamic_bitset.hpp
|
|---|
| 5 | @@ -42,6 +42,7 @@
|
|---|
| 6 | #include "boost/pending/lowest_bit.hpp"
|
|---|
| 7 | #include "boost/static_assert.hpp"
|
|---|
| 8 | #include "boost/utility/addressof.hpp"
|
|---|
| 9 | +#include "boost/detail/no_exceptions_support.hpp"
|
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 | namespace boost {
|
|---|
| 13 | @@ -1179,7 +1180,7 @@ to_ulong() const
|
|---|
| 14 | // Check for overflows. This may be a performance burden on very
|
|---|
| 15 | // large bitsets but is required by the specification, sorry
|
|---|
| 16 | if (find_next(ulong_width - 1) != npos)
|
|---|
| 17 | - throw std::overflow_error("boost::dynamic_bitset::to_ulong overflow");
|
|---|
| 18 | + BOOST_THROW_EXCEPTION(std::overflow_error("boost::dynamic_bitset::to_ulong overflow"));
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 | // Ok, from now on we can be sure there's no "on" bit
|
|---|
| 22 | @@ -1500,7 +1501,7 @@ operator<<(std::basic_ostream<Ch, Tr>& os,
|
|---|
| 23 | const Ch zero = BOOST_DYNAMIC_BITSET_WIDEN_CHAR(fac, '0');
|
|---|
| 24 | const Ch one = BOOST_DYNAMIC_BITSET_WIDEN_CHAR(fac, '1');
|
|---|
| 25 |
|
|---|
| 26 | - try {
|
|---|
| 27 | + BOOST_TRY {
|
|---|
| 28 |
|
|---|
| 29 | typedef typename dynamic_bitset<Block, Alloc>::size_type bitset_size_type;
|
|---|
| 30 | typedef basic_streambuf<Ch, Tr> buffer_type;
|
|---|
| 31 | @@ -1547,13 +1548,14 @@ operator<<(std::basic_ostream<Ch, Tr>& os,
|
|---|
| 32 |
|
|---|
| 33 | os.width(0);
|
|---|
| 34 |
|
|---|
| 35 | - } catch (...) { // see std 27.6.1.1/4
|
|---|
| 36 | + } BOOST_CATCH (...) { // see std 27.6.1.1/4
|
|---|
| 37 | bool rethrow = false;
|
|---|
| 38 | - try { os.setstate(ios_base::failbit); } catch (...) { rethrow = true; }
|
|---|
| 39 | + BOOST_TRY { os.setstate(ios_base::failbit); } BOOST_CATCH (...) { rethrow = true; } BOOST_CATCH_END
|
|---|
| 40 |
|
|---|
| 41 | if (rethrow)
|
|---|
| 42 | - throw;
|
|---|
| 43 | + BOOST_RETHROW;
|
|---|
| 44 | }
|
|---|
| 45 | + BOOST_CATCH_END
|
|---|
| 46 | }
|
|---|
| 47 |
|
|---|
| 48 | if(err != ok)
|
|---|
| 49 | @@ -1612,13 +1614,14 @@ operator>>(std::istream& is, dynamic_bitset<Block, Alloc>& b)
|
|---|
| 50 | break; // non digit character
|
|---|
| 51 |
|
|---|
| 52 | else {
|
|---|
| 53 | - try {
|
|---|
| 54 | + BOOST_TRY {
|
|---|
| 55 | appender.do_append(char(c) == '1');
|
|---|
| 56 | }
|
|---|
| 57 | - catch(...) {
|
|---|
| 58 | + BOOST_CATCH(...) {
|
|---|
| 59 | is.setstate(std::ios::failbit); // assume this can't throw
|
|---|
| 60 | - throw;
|
|---|
| 61 | + BOOST_RETHROW;
|
|---|
| 62 | }
|
|---|
| 63 | + BOOST_CATCH_END
|
|---|
| 64 | }
|
|---|
| 65 |
|
|---|
| 66 | } // for
|
|---|
| 67 | @@ -1659,7 +1662,7 @@ operator>>(std::basic_istream<Ch, Tr>& is, dynamic_bitset<Block, Alloc>& b)
|
|---|
| 68 | const Ch one = BOOST_DYNAMIC_BITSET_WIDEN_CHAR(fac, '1');
|
|---|
| 69 |
|
|---|
| 70 | b.clear();
|
|---|
| 71 | - try {
|
|---|
| 72 | + BOOST_TRY {
|
|---|
| 73 | typename bitset_type::bit_appender appender(b);
|
|---|
| 74 | basic_streambuf <Ch, Tr> * buf = is.rdbuf();
|
|---|
| 75 | typename Tr::int_type c = buf->sgetc();
|
|---|
| 76 | @@ -1682,7 +1685,7 @@ operator>>(std::basic_istream<Ch, Tr>& is, dynamic_bitset<Block, Alloc>& b)
|
|---|
| 77 |
|
|---|
| 78 | } // for
|
|---|
| 79 | }
|
|---|
| 80 | - catch (...) {
|
|---|
| 81 | + BOOST_CATCH (...) {
|
|---|
| 82 | // catches from stream buf, or from vector:
|
|---|
| 83 | //
|
|---|
| 84 | // bits_stored bits have been extracted and stored, and
|
|---|
| 85 | @@ -1690,13 +1693,15 @@ operator>>(std::basic_istream<Ch, Tr>& is, dynamic_bitset<Block, Alloc>& b)
|
|---|
| 86 | // append to the underlying vector (out of memory)
|
|---|
| 87 |
|
|---|
| 88 | bool rethrow = false; // see std 27.6.1.1/4
|
|---|
| 89 | - try { is.setstate(ios_base::badbit); }
|
|---|
| 90 | - catch(...) { rethrow = true; }
|
|---|
| 91 | + BOOST_TRY { is.setstate(ios_base::badbit); }
|
|---|
| 92 | + BOOST_CATCH(...) { rethrow = true; }
|
|---|
| 93 | + BOOST_CATCH_END
|
|---|
| 94 |
|
|---|
| 95 | if (rethrow)
|
|---|
| 96 | - throw;
|
|---|
| 97 | + BOOST_RETHROW;
|
|---|
| 98 |
|
|---|
| 99 | }
|
|---|
| 100 | + BOOST_CATCH_END
|
|---|
| 101 | }
|
|---|
| 102 |
|
|---|
| 103 | is.width(0);
|
|---|