$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r53722 - trunk/boost/function
From: ghost_at_[hidden]
Date: 2009-06-07 11:44:51
Author: vladimir_prus
Date: 2009-06-07 11:44:50 EDT (Sun, 07 Jun 2009)
New Revision: 53722
URL: http://svn.boost.org/trac/boost/changeset/53722
Log:
Make Boost.Function compile with disabled exceptions.
Closes #2900. Patch from Gabi Davar.
Text files modified: 
   trunk/boost/function/function_template.hpp |    33 +++++++++++++++++----------------       
   1 files changed, 17 insertions(+), 16 deletions(-)
Modified: trunk/boost/function/function_template.hpp
==============================================================================
--- trunk/boost/function/function_template.hpp	(original)
+++ trunk/boost/function/function_template.hpp	2009-06-07 11:44:50 EDT (Sun, 07 Jun 2009)
@@ -11,6 +11,7 @@
 // Note: this header is a header template and must NOT have multiple-inclusion
 // protection.
 #include <boost/function/detail/prologue.hpp>
+#include <boost/detail/no_exceptions_support.hpp>
 
 #if defined(BOOST_MSVC)
 #   pragma warning( push )
@@ -786,24 +787,26 @@
     operator=(Functor BOOST_FUNCTION_TARGET_FIX(const &) f)
     {
       this->clear();
-      try {
+      BOOST_TRY  {
         this->assign_to(f);
-      } catch (...) {
+      } BOOST_CATCH (...) {
         vtable = 0;
-        throw;
+        BOOST_RETHROW;
       }
+      BOOST_CATCH_END
       return *this;
     }
     template<typename Functor,typename Allocator>
     void assign(Functor BOOST_FUNCTION_TARGET_FIX(const &) f, Allocator a)
     {
       this->clear();
-      try {
+      BOOST_TRY{
         this->assign_to_a(f,a);
-      } catch (...) {
+      } BOOST_CATCH (...) {
         vtable = 0;
-        throw;
+        BOOST_RETHROW;
       }
+      BOOST_CATCH_END
     }
 
 #ifndef BOOST_NO_SFINAE
@@ -828,12 +831,13 @@
         return *this;
 
       this->clear();
-      try {
+      BOOST_TRY {
         this->assign_to_own(f);
-      } catch (...) {
+      } BOOST_CATCH (...) {
         vtable = 0;
-        throw;
+        BOOST_RETHROW;
       }
+      BOOST_CATCH_END
       return *this;
     }
 
@@ -965,9 +969,7 @@
       if (&f == this)
         return;
 
-#if !defined(BOOST_NO_EXCEPTIONS)      
-      try {
-#endif
+      BOOST_TRY {
         if (!f.empty()) {
           this->vtable = f.vtable;
           if (this->has_trivial_copy_and_destroy())
@@ -979,12 +981,11 @@
         } else {
           clear();
         }
-#if !defined(BOOST_NO_EXCEPTIONS)      
-      } catch (...) {
+      } BOOST_CATCH (...) {
         vtable = 0;
-        throw;
+        BOOST_RETHROW;
       }
-#endif
+      BOOST_CATCH_END
     }
   };