Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r77234 - trunk/boost/numeric/conversion
From: antoshkka_at_[hidden]
Date: 2012-03-05 12:11:21


Author: apolukhin
Date: 2012-03-05 12:11:20 EST (Mon, 05 Mar 2012)
New Revision: 77234
URL: http://svn.boost.org/trac/boost/changeset/77234

Log:
Fixes #5731, fixes #5076, fixes #5393, fixes #5800
Now numeric_cast (and lexical_cast) can be compiled with disabled exceptions
Text files modified:
   trunk/boost/numeric/conversion/converter_policies.hpp | 8 ++++++++
   1 files changed, 8 insertions(+), 0 deletions(-)

Modified: trunk/boost/numeric/conversion/converter_policies.hpp
==============================================================================
--- trunk/boost/numeric/conversion/converter_policies.hpp (original)
+++ trunk/boost/numeric/conversion/converter_policies.hpp 2012-03-05 12:11:20 EST (Mon, 05 Mar 2012)
@@ -13,6 +13,7 @@
 #include <typeinfo> // for std::bad_cast
 
 #include <boost/config/no_tr1/cmath.hpp> // for std::floor and std::ceil
+#include <boost/throw_exception.hpp>
 
 #include <functional>
 
@@ -158,10 +159,17 @@
 {
   void operator() ( range_check_result r ) // throw(negative_overflow,positive_overflow)
   {
+#ifndef BOOST_NO_EXCEPTIONS
     if ( r == cNegOverflow )
       throw negative_overflow() ;
     else if ( r == cPosOverflow )
            throw positive_overflow() ;
+#else
+ if ( r == cNegOverflow )
+ ::boost::throw_exception(negative_overflow()) ;
+ else if ( r == cPosOverflow )
+ ::boost::throw_exception(positive_overflow()) ;
+#endif
   }
 } ;
 


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