$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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);