Compare commits

...

6 Commits

Author SHA1 Message Date
Nikita Kniazev de92292140 Tests: Fix C1128 error on msvc-14.1+
traits_test fails on msvc-14.1+ in 64bit debug mode with C1128 error

Fixes #15
2019-04-18 12:43:43 -04:00
Romain Geissler 53de752e1f Use BOOST_NOEXCEPT_OR_NOTHROW in public headers to prepare for C++20 2019-04-18 12:43:28 -04:00
Fernando Cacciola 36f969a4c5 Merge pull request #12 from boostorg/develop
Merged latest fixes
2018-03-07 16:59:38 -03:00
Fernando Cacciola b900379a74 Merge pull request #11 from boostorg/revert-7-fix-compiling
Revert "Fix compilation on lastest MSVC"
2018-03-06 15:35:32 -03:00
Fernando Cacciola 8ad516370a Revert "Fix compilation on lastest MSVC" 2018-03-06 15:34:11 -03:00
Fernando Cacciola c993894676 Merge pull request #10 from boostorg/danieljames-patch-1
Link to latest version of documentation
2018-03-05 15:27:04 -03:00
3 changed files with 9 additions and 18 deletions
@@ -12,6 +12,7 @@
#include <typeinfo> // for std::bad_cast
#include <boost/config.hpp>
#include <boost/config/no_tr1/cmath.hpp> // for std::floor and std::ceil
#include <boost/throw_exception.hpp>
@@ -136,7 +137,7 @@ class bad_numeric_cast : public std::bad_cast
{
public:
virtual const char * what() const throw()
virtual const char * what() const BOOST_NOEXCEPT_OR_NOTHROW
{ return "bad numeric conversion: overflow"; }
};
@@ -144,14 +145,14 @@ class negative_overflow : public bad_numeric_cast
{
public:
virtual const char * what() const throw()
virtual const char * what() const BOOST_NOEXCEPT_OR_NOTHROW
{ return "bad numeric conversion: negative overflow"; }
};
class positive_overflow : public bad_numeric_cast
{
public:
virtual const char * what() const throw()
virtual const char * what() const BOOST_NOEXCEPT_OR_NOTHROW
{ return "bad numeric conversion: positive overflow"; }
};
@@ -12,7 +12,6 @@
#include <functional>
#include "boost/functional.hpp"
#include "boost/numeric/conversion/detail/meta.hpp"
#include "boost/numeric/conversion/detail/conversion_traits.hpp"
#include "boost/numeric/conversion/bounds.hpp"
@@ -451,13 +450,10 @@ namespace boost { namespace numeric { namespace convdetail
// Trivial Converter : used when (cv-unqualified) T == (cv-unqualified) S
//
template<class Traits>
struct trivial_converter_impl : public boost::functional::detail::unary_function< BOOST_DEDUCED_TYPENAME Traits::argument_type
,BOOST_DEDUCED_TYPENAME Traits::result_type
>
,public dummy_range_checker<Traits>
struct trivial_converter_impl : public dummy_range_checker<Traits>
{
typedef Traits traits ;
typedef typename Traits::source_type source_type ;
typedef typename Traits::argument_type argument_type ;
typedef typename Traits::result_type result_type ;
@@ -472,10 +468,7 @@ namespace boost { namespace numeric { namespace convdetail
// Rounding Converter : used for float to integral conversions.
//
template<class Traits,class RangeChecker,class RawConverter,class Float2IntRounder>
struct rounding_converter : public boost::functional::detail::unary_function< BOOST_DEDUCED_TYPENAME Traits::argument_type
,BOOST_DEDUCED_TYPENAME Traits::result_type
>
,public RangeChecker
struct rounding_converter : public RangeChecker
,public Float2IntRounder
,public RawConverter
{
@@ -502,10 +495,7 @@ namespace boost { namespace numeric { namespace convdetail
// Non-Rounding Converter : used for all other conversions.
//
template<class Traits,class RangeChecker,class RawConverter>
struct non_rounding_converter : public boost::functional::detail::unary_function< BOOST_DEDUCED_TYPENAME Traits::argument_type
,BOOST_DEDUCED_TYPENAME Traits::result_type
>
,public RangeChecker
struct non_rounding_converter : public RangeChecker
,public RawConverter
{
typedef RangeChecker RangeCheckerBase ;
+1 -1
View File
@@ -19,7 +19,7 @@ project numeric_conversion_unit_tests
test-suite minimal
:
[ run bounds_test.cpp ]
[ run traits_test.cpp ]
[ run traits_test.cpp : : : <toolset>msvc:<cxxflags>/bigobj ]
[ run converter_test.cpp ]
[ run udt_support_test.cpp ]
[ run numeric_cast_test.cpp ]