| // |
| //! Copyright (c) 2011-2012 |
| //! Brandon Kohn |
| // |
| // Distributed under the Boost Software License, Version 1.0. (See |
| // accompanying file LICENSE_1_0.txt or copy at |
| // http://www.boost.org/LICENSE_1_0.txt) |
| // |
| namespace ndnboost { namespace numeric { |
| |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| char |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| char |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| signed char |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| signed char |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| unsigned char |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| unsigned char |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| short |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| short |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| unsigned short |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| unsigned short |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| int |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| int |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| unsigned int |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| unsigned int |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| long |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| long |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| unsigned long |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| unsigned long |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| float |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| float |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| double |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| double |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| long double |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| long double |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| ndnboost::long_long_type |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| ndnboost::long_long_type |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| ndnboost::ulong_long_type |
| , ndnboost::long_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::long_long_type> rounding_policy; |
| }; |
| |
| template <> |
| struct numeric_cast_traits |
| < |
| ndnboost::ulong_long_type |
| , ndnboost::ulong_long_type |
| > |
| { |
| typedef def_overflow_handler overflow_policy; |
| typedef UseInternalRangeChecker range_checking_policy; |
| typedef Trunc<ndnboost::ulong_long_type> rounding_policy; |
| }; |
| }} |