==== 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 | } |