==== original/boost/xpressive/detail/utility/sequence_stack.hpp - patched/boost/xpressive/detail/utility/sequence_stack.hpp ==== --- original/boost/xpressive/detail/utility/sequence_stack.hpp 2010-07-08 08:43:09.000000000 -0700 +++ patched/boost/xpressive/detail/utility/sequence_stack.hpp 2013-07-22 16:54:45.000000000 -0700 @@ -18,6 +18,8 @@ #include #include +#include "boost/detail/no_exceptions_support.hpp" + namespace boost { namespace xpressive { namespace detail { @@ -36,15 +38,15 @@ { std::size_t i = 0; T *p = (T *)::operator new(size * sizeof(T)); - try + BOOST_TRY { for(; i < size; ++i) ::new((void *)(p+i)) T(t); } - catch(...) + BOOST_CATCH(...) { deallocate(p, i); - throw; + BOOST_RETHROW; } return p; }