Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r52979 - trunk/boost
From: emil_at_[hidden]
Date: 2009-05-13 18:15:59


Author: emildotchevski
Date: 2009-05-13 18:15:59 EDT (Wed, 13 May 2009)
New Revision: 52979
URL: http://svn.boost.org/trac/boost/changeset/52979

Log:
Added explicit handling for a few std exception types that were missing from boost::current_exception().
Text files modified:
   trunk/boost/exception_ptr.hpp | 36 ++++++++++++++++++++++++++++++++++++
   1 files changed, 36 insertions(+), 0 deletions(-)

Modified: trunk/boost/exception_ptr.hpp
==============================================================================
--- trunk/boost/exception_ptr.hpp (original)
+++ trunk/boost/exception_ptr.hpp 2009-05-13 18:15:59 EDT (Wed, 13 May 2009)
@@ -15,6 +15,7 @@
 #include <boost/shared_ptr.hpp>
 #include <stdexcept>
 #include <new>
+#include <ios>
 
 namespace
 boost
@@ -236,11 +237,21 @@
                 return shared_ptr<exception_detail::clone_base const>(e.clone());
                 }
             catch(
+ std::domain_error & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
             std::invalid_argument & e )
                 {
                 return exception_detail::current_exception_std_exception(e);
                 }
             catch(
+ std::length_error & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
             std::out_of_range & e )
                 {
                 return exception_detail::current_exception_std_exception(e);
@@ -251,6 +262,31 @@
                 return exception_detail::current_exception_std_exception(e);
                 }
             catch(
+ std::range_error & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
+ std::overflow_error & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
+ std::underflow_error & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
+ std::ios_base::failure & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
+ std::runtime_error & e )
+ {
+ return exception_detail::current_exception_std_exception(e);
+ }
+ catch(
             std::bad_alloc & e )
                 {
                 return exception_detail::current_exception_std_exception(e);


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk