diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:12:59 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:12:59 +0900 |
commit | b8cf34c691623e4ec329053cbbf68522a855882d (patch) | |
tree | 34da08632a99677f6b79ecb65e5b655a5b69a67f /boost/numeric/conversion/detail | |
parent | 3fdc3e5ee96dca5b11d1694975a65200787eab86 (diff) | |
download | boost-upstream/1.67.0.tar.gz boost-upstream/1.67.0.tar.bz2 boost-upstream/1.67.0.zip |
Imported Upstream version 1.67.0upstream/1.67.0
Diffstat (limited to 'boost/numeric/conversion/detail')
-rw-r--r-- | boost/numeric/conversion/detail/converter.hpp | 2 | ||||
-rw-r--r--[-rwxr-xr-x] | boost/numeric/conversion/detail/old_numeric_cast.hpp | 37 |
2 files changed, 4 insertions, 35 deletions
diff --git a/boost/numeric/conversion/detail/converter.hpp b/boost/numeric/conversion/detail/converter.hpp index 2884e84e8d..f7bf7b4436 100644 --- a/boost/numeric/conversion/detail/converter.hpp +++ b/boost/numeric/conversion/detail/converter.hpp @@ -453,7 +453,7 @@ namespace boost { namespace numeric { namespace convdetail 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 ; diff --git a/boost/numeric/conversion/detail/old_numeric_cast.hpp b/boost/numeric/conversion/detail/old_numeric_cast.hpp index 47b86d2c8c..9901ed2ae3 100755..100644 --- a/boost/numeric/conversion/detail/old_numeric_cast.hpp +++ b/boost/numeric/conversion/detail/old_numeric_cast.hpp @@ -8,6 +8,8 @@ // See http://www.boost.org/libs/conversion for Documentation. // Revision History +// 02 Jun 14 Remove VC6 workarounds. +// 16 Jul 11 Bugfixes for VC6. // 23 JUN 05 Code extracted from /boost/cast.hpp into this new header. // Keeps this legacy version of numeric_cast<> for old compilers // wich can't compile the new version in /boost/numeric/conversion/cast.hpp @@ -53,19 +55,6 @@ # include <boost/limits.hpp> # include <boost/numeric/conversion/converter_policies.hpp> -// It has been demonstrated numerous times that MSVC 6.0 fails silently at link -// time if you use a template function which has template parameters that don't -// appear in the function's argument list. -// -// TODO: Add this to config.hpp? -// FLC: This macro is repeated in boost/cast.hpp but only locally (is undefined at the bottom) -// so is OK to reproduce it here. -# if defined(BOOST_MSVC) && BOOST_MSVC < 1300 -# define BOOST_EXPLICIT_DEFAULT_TARGET , ::boost::type<Target>* = 0 -# else -# define BOOST_EXPLICIT_DEFAULT_TARGET -# endif - namespace boost { using numeric::bad_numeric_cast; @@ -214,24 +203,6 @@ namespace boost template <class X, class Y> static inline bool check(X x, Y) { return x >= 0 && static_cast<X>(static_cast<Y>(x)) != x; } - -# if defined(BOOST_MSVC) && BOOST_MSVC < 1300 - // MSVC6 can't static_cast unsigned __int64 -> floating types -# define BOOST_UINT64_CAST(src_type) \ - static inline bool check(src_type x, unsigned __int64) \ - { \ - if (x < 0) return false; \ - unsigned __int64 y = static_cast<unsigned __int64>(x); \ - bool odd = y & 0x1; \ - __int64 div2 = static_cast<__int64>(y >> 1); \ - return ((static_cast<src_type>(div2) * 2.0) + odd) != x; \ - } - - BOOST_UINT64_CAST(long double); - BOOST_UINT64_CAST(double); - BOOST_UINT64_CAST(float); -# undef BOOST_UINT64_CAST -# endif }; template<> @@ -285,7 +256,7 @@ namespace boost #endif template<typename Target, typename Source> - inline Target numeric_cast(Source arg BOOST_EXPLICIT_DEFAULT_TARGET) + inline Target numeric_cast(Source arg) { // typedefs abbreviating respective trait classes typedef detail::fixed_numeric_limits<Source> arg_traits; @@ -332,8 +303,6 @@ namespace boost return static_cast<Target>(arg); } // numeric_cast -# undef BOOST_EXPLICIT_DEFAULT_TARGET - } // namespace boost #endif // BOOST_OLD_NUMERIC_CAST_HPP |