==== original/boost/xpressive/detail/utility/sequence_stack.hpp - patched/boost/xpressive/detail/utility/sequence_stack.hpp ====
old
|
new
|
|
18 | 18 | #include <algorithm> |
19 | 19 | #include <functional> |
20 | 20 | |
| 21 | #include "boost/detail/no_exceptions_support.hpp" |
| 22 | |
21 | 23 | namespace boost { namespace xpressive { namespace detail |
22 | 24 | { |
23 | 25 | |
… |
… |
|
36 | 38 | { |
37 | 39 | std::size_t i = 0; |
38 | 40 | T *p = (T *)::operator new(size * sizeof(T)); |
39 | | try |
| 41 | BOOST_TRY |
40 | 42 | { |
41 | 43 | for(; i < size; ++i) |
42 | 44 | ::new((void *)(p+i)) T(t); |
43 | 45 | } |
44 | | catch(...) |
| 46 | BOOST_CATCH(...) |
45 | 47 | { |
46 | 48 | deallocate(p, i); |
47 | | throw; |
| 49 | BOOST_RETHROW; |
48 | 50 | } |
49 | 51 | return p; |
50 | 52 | } |