mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2026-06-04 23:14:57 -04:00
Squashed 'boost/' content from commit b4feb19f2
git-subtree-dir: boost git-subtree-split: b4feb19f287ee92d87a9624b5d36b7cf46aeadeb
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
//
|
||||
//! Copyright (c) 2011
|
||||
//! 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)
|
||||
//
|
||||
|
||||
#include <boost/operators.hpp>
|
||||
#include <boost/numeric/conversion/cast.hpp>
|
||||
#include <boost/preprocessor/control/iif.hpp>
|
||||
#include <boost/preprocessor/comparison/less.hpp>
|
||||
#include <boost/preprocessor/comparison/not_equal.hpp>
|
||||
#include <boost/preprocessor/repetition/for.hpp>
|
||||
#include <boost/preprocessor/tuple/elem.hpp>
|
||||
#include <boost/preprocessor/seq/elem.hpp>
|
||||
#include <boost/preprocessor/seq/size.hpp>
|
||||
#include <boost/test/minimal.hpp>
|
||||
|
||||
//! Generate default traits for the specified source and target.
|
||||
#define BOOST_NUMERIC_CONVERSION_GENERATE_CAST_TRAITS(r, state) \
|
||||
template <> \
|
||||
struct numeric_cast_traits< \
|
||||
BOOST_PP_SEQ_ELEM( BOOST_PP_TUPLE_ELEM(4,0,state) \
|
||||
, BOOST_PP_TUPLE_ELEM(4,3,state) ) \
|
||||
, BOOST_PP_TUPLE_ELEM(4,2,state)> \
|
||||
{ \
|
||||
typedef def_overflow_handler overflow_policy; \
|
||||
typedef UseInternalRangeChecker range_checking_policy; \
|
||||
typedef Trunc<BOOST_PP_TUPLE_ELEM(4,2,state)> rounding_policy; \
|
||||
}; \
|
||||
/***/
|
||||
|
||||
#define BOOST_NUMERIC_CONVERSION_TUPLE_SENTINAL(r, state) \
|
||||
BOOST_PP_LESS \
|
||||
( \
|
||||
BOOST_PP_TUPLE_ELEM(4,0,state) \
|
||||
, BOOST_PP_TUPLE_ELEM(4,1,state) \
|
||||
) \
|
||||
/***/
|
||||
|
||||
#define BOOST_NUMERIC_CONVERSION_INC_OP(r, state) \
|
||||
( \
|
||||
BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(4,0,state)) \
|
||||
, BOOST_PP_TUPLE_ELEM(4,1,state) \
|
||||
, BOOST_PP_TUPLE_ELEM(4,2,state) \
|
||||
, BOOST_PP_TUPLE_ELEM(4,3,state) \
|
||||
) \
|
||||
/***/
|
||||
|
||||
#define BOOST_NUMERIC_CONVERSION_GENERATE_CAST_TARGET_STEP(r, state) \
|
||||
BOOST_PP_FOR \
|
||||
( \
|
||||
( \
|
||||
0 \
|
||||
, BOOST_PP_TUPLE_ELEM(4,1,state) \
|
||||
, BOOST_PP_SEQ_ELEM(BOOST_PP_TUPLE_ELEM(4,0,state),BOOST_PP_TUPLE_ELEM(4,2,state)) \
|
||||
, BOOST_PP_TUPLE_ELEM(4,2,state) \
|
||||
) \
|
||||
, BOOST_NUMERIC_CONVERSION_TUPLE_SENTINAL \
|
||||
, BOOST_NUMERIC_CONVERSION_INC_OP \
|
||||
, BOOST_NUMERIC_CONVERSION_GENERATE_CAST_TRAITS \
|
||||
) \
|
||||
/***/
|
||||
|
||||
#define BOOST_NUMERIC_CONVERSION_GENERATE_BUILTIN_CAST_TRAITS(types) \
|
||||
BOOST_PP_FOR \
|
||||
( \
|
||||
(0,BOOST_PP_SEQ_SIZE(types),types,_) \
|
||||
, BOOST_NUMERIC_CONVERSION_TUPLE_SENTINAL \
|
||||
, BOOST_NUMERIC_CONVERSION_INC_OP \
|
||||
, BOOST_NUMERIC_CONVERSION_GENERATE_CAST_TARGET_STEP \
|
||||
) \
|
||||
/***/
|
||||
|
||||
namespace boost { namespace numeric {
|
||||
#if !defined( BOOST_NO_INT64_T )
|
||||
//! Generate the specializations for the built-in types.
|
||||
BOOST_NUMERIC_CONVERSION_GENERATE_BUILTIN_CAST_TRAITS
|
||||
(
|
||||
(char)
|
||||
(boost::int8_t)
|
||||
(boost::uint8_t)
|
||||
(boost::int16_t)
|
||||
(boost::uint16_t)
|
||||
(boost::int32_t)
|
||||
(boost::uint32_t)
|
||||
(boost::int64_t)
|
||||
(boost::uint64_t)
|
||||
(float)
|
||||
(double)
|
||||
(long double)
|
||||
)
|
||||
#else
|
||||
BOOST_NUMERIC_CONVERSION_GENERATE_BUILTIN_CAST_TRAITS
|
||||
(
|
||||
(char)
|
||||
(boost::int8_t)
|
||||
(boost::uint8_t)
|
||||
(boost::int16_t)
|
||||
(boost::uint16_t)
|
||||
(boost::int32_t)
|
||||
(boost::uint32_t)
|
||||
(float)
|
||||
(double)
|
||||
(long double)
|
||||
)
|
||||
#endif
|
||||
}}//namespace boost::numeric;
|
||||
|
||||
int test_main( int argc, char * argv[] )
|
||||
{
|
||||
//! This test should not compile.
|
||||
return 1;
|
||||
}
|
||||
|
||||
#undef BOOST_NUMERIC_CONVERSION_GENERATE_BUILTIN_CAST_TRAITS
|
||||
#undef BOOST_NUMERIC_CONVERSION_GENERATE_CAST_TARGET_STEP
|
||||
#undef BOOST_NUMERIC_CONVERSION_INC_OP
|
||||
#undef BOOST_NUMERIC_CONVERSION_TUPLE_SENTINAL
|
||||
#undef BOOST_NUMERIC_CONVERSION_GENERATE_CAST_TRAITS
|
||||
Reference in New Issue
Block a user