diff -Naur .build/boost_1_53_0/boost/utility/string_ref.hpp .build/boost_1_53_0_patched/boost/utility/string_ref.hpp --- .build/boost_1_53_0/boost/utility/string_ref.hpp 2012-12-17 15:36:31.000000000 +0100 +++ .build/boost_1_53_0_patched/boost/utility/string_ref.hpp 2013-06-19 09:44:45.000000000 +0200 @@ -17,6 +17,7 @@ #include #include +#include #include #include @@ -115,7 +116,7 @@ const charT& at(size_t pos) const { if ( pos >= len_ ) - throw std::out_of_range ( "boost::string_ref::at" ); + throw_exception( std::out_of_range ( "boost::string_ref::at" ) ); return ptr_[pos]; } @@ -145,11 +146,11 @@ #if BOOST_WORKAROUND(BOOST_MSVC, <= 1600) // Looks like msvc 8 and 9 have a codegen bug when one branch of // a conditional operator is a throw expression. -EAN 2012/12/04 - if ( pos > size()) throw std::out_of_range ( "string_ref::substr" ); + if ( pos > size()) throw_exception( std::out_of_range ( "string_ref::substr" ) ); if ( n == npos || pos + n > size()) n = size () - pos; return basic_string_ref ( data() + pos, n ); #else - return pos > size() ? throw std::out_of_range ( "string_ref::substr" ) : + return pos > size() ? throw_exception( std::out_of_range ( "string_ref::substr" ) ) : basic_string_ref ( data() + pos, n == npos || pos + n > size() ? size() - pos : n ); #endif }