Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r68630 - in sandbox/type_traits/boost/type_traits: . detail
From: frederic.bron_at_[hidden]
Date: 2011-02-03 16:09:53


Author: bronf
Date: 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
New Revision: 68630
URL: http://svn.boost.org/trac/boost/changeset/68630

Log:
replaced use of logical operators in integral constant expressions by type_traits/ice.hpp
Text files modified:
   sandbox/type_traits/boost/type_traits/detail/has_binary_operator.hpp | 2
   sandbox/type_traits/boost/type_traits/detail/has_postfix_operator.hpp | 2
   sandbox/type_traits/boost/type_traits/detail/has_prefix_operator.hpp | 2
   sandbox/type_traits/boost/type_traits/has_operator_bit_and.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_bit_and_equal.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_bit_or.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_bit_or_equal.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_bit_xor.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_bit_xor_equal.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_complement.hpp | 23 +++++++------
   sandbox/type_traits/boost/type_traits/has_operator_divides.hpp | 8 ++--
   sandbox/type_traits/boost/type_traits/has_operator_divides_equal.hpp | 8 ++--
   sandbox/type_traits/boost/type_traits/has_operator_equal_to.hpp | 65 ++++++++++++++++++++-------------------
   sandbox/type_traits/boost/type_traits/has_operator_greater.hpp | 65 ++++++++++++++++++++-------------------
   sandbox/type_traits/boost/type_traits/has_operator_greater_equal.hpp | 65 ++++++++++++++++++++-------------------
   sandbox/type_traits/boost/type_traits/has_operator_left_shift.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_left_shift_equal.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_less.hpp | 65 ++++++++++++++++++++-------------------
   sandbox/type_traits/boost/type_traits/has_operator_less_equal.hpp | 65 ++++++++++++++++++++-------------------
   sandbox/type_traits/boost/type_traits/has_operator_logical_and.hpp | 45 +++++++++++++++------------
   sandbox/type_traits/boost/type_traits/has_operator_logical_or.hpp | 45 +++++++++++++++------------
   sandbox/type_traits/boost/type_traits/has_operator_minus.hpp | 53 ++++++++++++++-----------------
   sandbox/type_traits/boost/type_traits/has_operator_minus_equal.hpp | 29 ++++++++---------
   sandbox/type_traits/boost/type_traits/has_operator_modulus.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_modulus_equal.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_multiplies.hpp | 8 ++--
   sandbox/type_traits/boost/type_traits/has_operator_multiplies_equal.hpp | 8 ++--
   sandbox/type_traits/boost/type_traits/has_operator_not_equal_to.hpp | 65 ++++++++++++++++++++-------------------
   sandbox/type_traits/boost/type_traits/has_operator_plus.hpp | 62 ++++++++++++++++++++-----------------
   sandbox/type_traits/boost/type_traits/has_operator_plus_equal.hpp | 46 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_postfix_decrement.hpp | 15 ++++----
   sandbox/type_traits/boost/type_traits/has_operator_postfix_increment.hpp | 8 ++--
   sandbox/type_traits/boost/type_traits/has_operator_prefix_decrement.hpp | 15 ++++----
   sandbox/type_traits/boost/type_traits/has_operator_prefix_increment.hpp | 8 ++--
   sandbox/type_traits/boost/type_traits/has_operator_right_shift.hpp | 45 +++++++++++++--------------
   sandbox/type_traits/boost/type_traits/has_operator_right_shift_equal.hpp | 45 +++++++++++++--------------
   36 files changed, 664 insertions(+), 653 deletions(-)

Modified: sandbox/type_traits/boost/type_traits/detail/has_binary_operator.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/has_binary_operator.hpp (original)
+++ sandbox/type_traits/boost/type_traits/detail/has_binary_operator.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -8,7 +8,7 @@
 
 #include <limits>
 #include <boost/config.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
+#include <boost/type_traits/ice.hpp>
 #include <boost/type_traits/integral_constant.hpp>
 #include <boost/type_traits/is_base_of.hpp>
 #include <boost/type_traits/is_class.hpp>

Modified: sandbox/type_traits/boost/type_traits/detail/has_postfix_operator.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/has_postfix_operator.hpp (original)
+++ sandbox/type_traits/boost/type_traits/detail/has_postfix_operator.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -7,7 +7,7 @@
 // See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
 #include <boost/config.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
+#include <boost/type_traits/ice.hpp>
 #include <boost/type_traits/integral_constant.hpp>
 #include <boost/type_traits/is_base_of.hpp>
 #include <boost/type_traits/is_class.hpp>

Modified: sandbox/type_traits/boost/type_traits/detail/has_prefix_operator.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/has_prefix_operator.hpp (original)
+++ sandbox/type_traits/boost/type_traits/detail/has_prefix_operator.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -8,7 +8,7 @@
 
 #include <limits>
 #include <boost/config.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
+#include <boost/type_traits/ice.hpp>
 #include <boost/type_traits/integral_constant.hpp>
 #include <boost/type_traits/is_base_of.hpp>
 #include <boost/type_traits/is_class.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_bit_and.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_bit_and.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_bit_and.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP &
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_bit_and_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_bit_and_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_bit_and_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP &=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_bit_or.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_bit_or.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_bit_or.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP |
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_bit_or_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_bit_or_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_bit_or_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP |=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_bit_xor.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_bit_xor.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_bit_xor.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP ^
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_bit_xor_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_bit_xor_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_bit_xor_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP ^=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_complement.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_complement.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_complement.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,19 +13,20 @@
 #define BOOST_TT_TRAIT_OP ~
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* pointer */\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- or\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
                 /* non integral built-in */\
- (\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_prefix_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_divides.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_divides.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_divides.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,11 +13,11 @@
 #define BOOST_TT_TRAIT_OP /
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
- /* one pointer */\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ /* one pointer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                 ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_divides_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_divides_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_divides_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,11 +13,11 @@
 #define BOOST_TT_TRAIT_OP /=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
- /* one pointer */\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ /* one pointer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                 ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_equal_to.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_equal_to.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_equal_to.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,39 +13,42 @@
 #define BOOST_TT_TRAIT_OP ==
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* one pointer and one non pointer built-in */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- )\
- )\
- or\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
                 /* two pointers but no inheritance */\
- (\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- ) and not (\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value or\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )\
- )\
- )
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_greater.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_greater.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_greater.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,39 +13,42 @@
 #define BOOST_TT_TRAIT_OP >
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* one pointer and one non pointer built-in */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- )\
- )\
- or\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
                 /* two pointers but no inheritance */\
- (\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- ) and not (\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value or\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )\
- )\
- )
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_greater_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_greater_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_greater_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,39 +13,42 @@
 #define BOOST_TT_TRAIT_OP >=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* one pointer and one non pointer built-in */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- )\
- )\
- or\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
                 /* two pointers but no inheritance */\
- (\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- ) and not (\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value or\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )\
- )\
- )
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_left_shift.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_left_shift.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_left_shift.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP <<
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_left_shift_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_left_shift_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_left_shift_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP <<=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_less.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_less.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_less.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,39 +13,42 @@
 #define BOOST_TT_TRAIT_OP <
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* one pointer and one non pointer built-in */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- )\
- )\
- or\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
                 /* two pointers but no inheritance */\
- (\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- ) and not (\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value or\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )\
- )\
- )
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_less_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_less_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_less_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,39 +13,42 @@
 #define BOOST_TT_TRAIT_OP <=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* one pointer and one non pointer built-in */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- )\
- )\
- or\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
                 /* two pointers but no inheritance */\
- (\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- ) and not (\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value or\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )\
- )\
- )
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_logical_and.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_logical_and.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_logical_and.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,26 +13,31 @@
 #define BOOST_TT_TRAIT_OP &&
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
- /* pointer with built-in non convertible to bool */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_convertible < typename ::boost::remove_reference<RHS>::type, bool >::value\
- )\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_convertible < typename ::boost::remove_reference<LHS>::type, bool >::value\
- )\
- )\
- )
+ /* pointer with built-in non convertible to bool */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_convertible < typename ::boost::remove_reference<RHS>::type, bool >::value\
+ >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_convertible < typename ::boost::remove_reference<LHS>::type, bool >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_logical_or.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_logical_or.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_logical_or.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,26 +13,31 @@
 #define BOOST_TT_TRAIT_OP ||
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
- /* pointer with built-in non convertible to bool */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_convertible < typename ::boost::remove_reference<RHS>::type, bool >::value\
- )\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_convertible < typename ::boost::remove_reference<LHS>::type, bool >::value\
- )\
- )\
- )
+ /* pointer with built-in non convertible to bool */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_convertible < typename ::boost::remove_reference<RHS>::type, bool >::value\
+ >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_convertible < typename ::boost::remove_reference<LHS>::type, bool >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_minus.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_minus.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_minus.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,42 +13,37 @@
 #define BOOST_TT_TRAIT_OP -
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* one is void* */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value and\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
                         ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )\
- or\
+ >::value,\
                 /* LHS==pointer!=void* and RHS==built-in non integral */\
- (\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- not ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value\
- ) and (\
- not ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value and\
- not ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value and\
- not ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value and\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value,\
                 /* LHS=non pointer and RHS=pointer */\
- (\
- not ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_not< ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- or\
+ >::value,\
                 /* two different pointers */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value and\
- not ::boost::is_same< typename ::boost::remove_cv< typename ::boost::remove_reference<LHS>::type >::type, typename ::boost::remove_cv< typename ::boost::remove_reference<RHS>::type >::type >::value\
- )\
- )
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_same< typename ::boost::remove_cv< typename ::boost::remove_reference<LHS>::type >::type, typename ::boost::remove_cv< typename ::boost::remove_reference<RHS>::type >::type >::value >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_minus_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_minus_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_minus_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,23 +13,22 @@
 #define BOOST_TT_TRAIT_OP -=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* RHS==pointer */\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- or\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
                 /* LHS==pointer and (LHS==void* or (RHS==builtin and RHS!=integral) */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- (\
- ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value\
- or (\
- not ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value and\
- not ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value and\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- )\
- )
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_not< ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_modulus.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_modulus.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_modulus.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP %
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_modulus_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_modulus_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_modulus_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP %=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_multiplies.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_multiplies.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_multiplies.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,11 +13,11 @@
 #define BOOST_TT_TRAIT_OP *
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
- /* one pointer */\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ /* one pointer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                 ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_multiplies_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_multiplies_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_multiplies_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,11 +13,11 @@
 #define BOOST_TT_TRAIT_OP *=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
- /* one pointer */\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ /* one pointer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                 ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_not_equal_to.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_not_equal_to.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_not_equal_to.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,39 +13,42 @@
 #define BOOST_TT_TRAIT_OP !=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* one pointer and one non pointer built-in */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- and\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- )\
- )\
- or\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ >::value\
+ >::value\
+ >::value,\
                 /* two pointers but no inheritance */\
- (\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- ) and not (\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value or\
- ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value or\
- ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )\
- )\
- )
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer<RHS>::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer<LHS>::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_plus.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_plus.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_plus.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,41 +13,45 @@
 #define BOOST_TT_TRAIT_OP +
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* pointer with pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- or\
+ >::value,\
                 /* built-in non pointer non integral with pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
- and not (\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value or\
- std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- and not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
+ >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
+ >::value\
+ >::value\
+ >::value,\
                 /* one is void* */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value and\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
                         ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_plus_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_plus_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_plus_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,37 +13,35 @@
 #define BOOST_TT_TRAIT_OP +=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* one is void* */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value\
- ) or (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value and\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
                         ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )\
- or\
+ >::value,\
                 /* two pointers */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- or\
+ >::value,\
                 /* LHS==pointer!=void* and RHS==non integral */\
- (\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
- not ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value\
- ) and\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- or\
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value >::value\
+ >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value,\
                 /* LHS==non bool and RHS==pointer */\
- (\
- not ::boost::is_same< bool, typename ::boost::remove_cv< typename ::boost::remove_reference<LHS>::type >::type >::value\
- and ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_not< ::boost::is_same< bool, typename ::boost::remove_cv< typename ::boost::remove_reference<LHS>::type >::type >::value >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_postfix_decrement.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_postfix_decrement.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_postfix_decrement.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,15 +13,14 @@
 #define BOOST_TT_TRAIT_OP --
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
- /* bool or void* */\
- ::boost::is_same< bool, typename ::boost::remove_cv< typename ::boost::remove_reference<LHS>::type >::type >::value\
- or\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
+ /* bool or void* */\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_same< bool, typename ::boost::remove_cv< typename ::boost::remove_reference<LHS>::type >::type >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_postfix_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_postfix_increment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_postfix_increment.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_postfix_increment.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,11 +13,11 @@
 #define BOOST_TT_TRAIT_OP ++
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
- /* void* */\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value and\
+ /* void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                 ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value\
- )
+ >::value
 
 
 #include <boost/type_traits/detail/has_postfix_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_prefix_decrement.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_prefix_decrement.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_prefix_decrement.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,15 +13,14 @@
 #define BOOST_TT_TRAIT_OP --
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
- /* bool or void* */\
- ::boost::is_same< bool, typename ::boost::remove_cv< typename ::boost::remove_reference<RHS>::type >::type >::value\
- or\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value and\
+ /* bool or void* */\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_same< bool, typename ::boost::remove_cv< typename ::boost::remove_reference<RHS>::type >::type >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
                         ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_prefix_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_prefix_increment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_prefix_increment.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_prefix_increment.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,11 +13,11 @@
 #define BOOST_TT_TRAIT_OP ++
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
- /* void* */\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value and\
+ /* void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
                 ::boost::is_void< typename ::boost::remove_pointer<RHS>::type >::value\
- )
+ >::value
 
 
 #include <boost/type_traits/detail/has_prefix_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_right_shift.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_right_shift.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_right_shift.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP >>
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_right_shift_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_right_shift_equal.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_right_shift_equal.hpp 2011-02-03 16:09:41 EST (Thu, 03 Feb 2011)
@@ -13,33 +13,32 @@
 #define BOOST_TT_TRAIT_OP >>=
 #define BOOST_TT_DEFAULT_RET void
 #define BOOST_TT_FORBIDDEN_IF\
- (\
+ ::boost::type_traits::ice_or<\
                 /* two built-in, one non integer */\
- (\
+ ::boost::type_traits::ice_and<\
                         /* two builtin */\
- not (\
- ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
- ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value or\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- and\
- (\
- /* one non integer */\
- not std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer\
- or\
- not std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer\
- )\
- )\
- or\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_class < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_class < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_union < typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ >::value\
+ >::value,\
+ /* one non integer */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<LHS>::type >::is_integer >::value,\
+ ::boost::type_traits::ice_not< std::numeric_limits< typename ::boost::remove_reference<RHS>::type >::is_integer >::value\
+ >::value\
+ >::value,\
                 /* one pointer */\
- (\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value or\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
                         ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
- )\
- )
+ >::value\
+ >::value
 
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>


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