|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r68684 - in sandbox/type_traits: boost/type_traits boost/type_traits/detail libs/type_traits/test
From: frederic.bron_at_[hidden]
Date: 2011-02-06 17:58:04
Author: bronf
Date: 2011-02-06 17:58:00 EST (Sun, 06 Feb 2011)
New Revision: 68684
URL: http://svn.boost.org/trac/boost/changeset/68684
Log:
operator traits: handling correctly cv qualifiers and references
Text files modified:
sandbox/type_traits/boost/type_traits/detail/has_binary_operator.hpp | 12
sandbox/type_traits/boost/type_traits/detail/has_postfix_operator.hpp | 11
sandbox/type_traits/boost/type_traits/detail/has_prefix_operator.hpp | 11
sandbox/type_traits/boost/type_traits/has_operator_bit_and.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_bit_and_equal.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_bit_or.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_bit_or_equal.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_bit_xor.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_bit_xor_equal.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_complement.hpp | 6
sandbox/type_traits/boost/type_traits/has_operator_divides.hpp | 12
sandbox/type_traits/boost/type_traits/has_operator_divides_equal.hpp | 12
sandbox/type_traits/boost/type_traits/has_operator_equal_to.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_greater.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_greater_equal.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_left_shift.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_left_shift_equal.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_less.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_less_equal.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_logical_and.hpp | 12
sandbox/type_traits/boost/type_traits/has_operator_logical_or.hpp | 12
sandbox/type_traits/boost/type_traits/has_operator_minus.hpp | 34 +-
sandbox/type_traits/boost/type_traits/has_operator_minus_equal.hpp | 14
sandbox/type_traits/boost/type_traits/has_operator_modulus.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_modulus_equal.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_multiplies.hpp | 12
sandbox/type_traits/boost/type_traits/has_operator_multiplies_equal.hpp | 12
sandbox/type_traits/boost/type_traits/has_operator_not_equal_to.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_plus.hpp | 28 +-
sandbox/type_traits/boost/type_traits/has_operator_plus_equal.hpp | 28 +-
sandbox/type_traits/boost/type_traits/has_operator_postfix_decrement.hpp | 14
sandbox/type_traits/boost/type_traits/has_operator_postfix_increment.hpp | 14
sandbox/type_traits/boost/type_traits/has_operator_prefix_decrement.hpp | 14
sandbox/type_traits/boost/type_traits/has_operator_prefix_increment.hpp | 14
sandbox/type_traits/boost/type_traits/has_operator_right_shift.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_right_shift_equal.hpp | 20
sandbox/type_traits/boost/type_traits/has_operator_unary_minus.hpp | 2
sandbox/type_traits/libs/type_traits/test/has_binary_logical_operator_test.hpp | 486 ++++++++++++++++++++++++++++++++++++++-
sandbox/type_traits/libs/type_traits/test/has_postfix_decrement_operator_test.hpp | 24 +
sandbox/type_traits/libs/type_traits/test/has_postfix_increment_operator_test.hpp | 24 +
sandbox/type_traits/libs/type_traits/test/has_prefix_decrement_operator_test.hpp | 24 +
sandbox/type_traits/libs/type_traits/test/has_prefix_increment_operator_test.hpp | 24 +
42 files changed, 903 insertions(+), 313 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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -45,7 +45,7 @@
namespace {
template <typename T>
- typename ::boost::remove_cv<T>::type &make();
+ T &make();
}
template < typename LHS, typename RHS >
@@ -96,7 +96,7 @@
// do not check for return type if 3rd template parameter RET is void
template < typename LHS, typename RHS >
struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< LHS, RHS, void, false > {
- static ::boost::type_traits::yes_type check(int); // this version is preferred for types convertible to RET
+ static ::boost::type_traits::yes_type check(int); // this version is preferred when operator exists
static ::boost::type_traits::no_type check(tag); // this version is used otherwise
BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<LHS>() BOOST_TT_TRAIT_OP make<RHS>()),0)))==sizeof(::boost::type_traits::yes_type)));
@@ -133,7 +133,13 @@
};
template < typename LHS, typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) : public BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1) < LHS, RHS, RET, BOOST_TT_FORBIDDEN_IF > { };
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+ typedef typename ::boost::remove_reference<LHS>::type lhs_noref;
+ typedef typename ::boost::remove_reference<RHS>::type rhs_noref;
+ typedef typename ::boost::remove_cv<lhs_noref>::type lhs_nocv;
+ typedef typename ::boost::remove_cv<rhs_noref>::type rhs_nocv;
+ BOOST_STATIC_CONSTANT(bool, value = (BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1) < lhs_noref, rhs_noref, RET, BOOST_TT_FORBIDDEN_IF >::value));
+};
} // namespace impl
} // namespace detail
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -9,6 +9,7 @@
#include <boost/config.hpp>
#include <boost/type_traits/ice.hpp>
#include <boost/type_traits/integral_constant.hpp>
+#include <boost/type_traits/is_const.hpp>
#include <boost/type_traits/is_fundamental.hpp>
#include <boost/type_traits/is_pointer.hpp>
#include <boost/type_traits/is_same.hpp>
@@ -40,7 +41,7 @@
namespace {
template <typename T>
- typename ::boost::remove_cv<T>::type &make();
+ T &make();
}
template < typename LHS >
@@ -91,7 +92,7 @@
// do not check for return type if 2nd template parameter RET is void
template < typename LHS >
struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< LHS, void, false > {
- static ::boost::type_traits::yes_type check(int); // this version is preferred for types convertible to RET
+ static ::boost::type_traits::yes_type check(int); // this version is preferred when operator exists
static ::boost::type_traits::no_type check(tag); // this version is used otherwise
BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<LHS>() BOOST_TT_TRAIT_OP),0)))==sizeof(::boost::type_traits::yes_type)));
@@ -108,7 +109,11 @@
};
template < typename LHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) : public BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1) < LHS, RET, BOOST_TT_FORBIDDEN_IF > { };
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+ typedef typename ::boost::remove_reference<LHS>::type lhs_noref;
+ typedef typename ::boost::remove_cv<lhs_noref>::type lhs_nocv;
+ BOOST_STATIC_CONSTANT(bool, value = (BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1) < lhs_noref, RET, BOOST_TT_FORBIDDEN_IF >::value));
+};
} // namespace impl
} // namespace detail
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -10,6 +10,7 @@
#include <boost/type_traits/ice.hpp>
#include <boost/type_traits/integral_constant.hpp>
#include <boost/type_traits/is_class.hpp>
+#include <boost/type_traits/is_const.hpp>
#include <boost/type_traits/is_fundamental.hpp>
#include <boost/type_traits/is_integral.hpp>
#include <boost/type_traits/is_pointer.hpp>
@@ -43,7 +44,7 @@
namespace {
template <typename T>
- typename ::boost::remove_cv<T>::type &make();
+ T &make();
}
template < typename RHS >
@@ -94,7 +95,7 @@
// do not check for return type if 2nd template parameter RET is void
template < typename RHS >
struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, void, false > {
- static ::boost::type_traits::yes_type check(int); // this version is preferred for types convertible to RET
+ static ::boost::type_traits::yes_type check(int); // this version is preferred when operator exists
static ::boost::type_traits::no_type check(tag); // this version is used otherwise
BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((BOOST_TT_TRAIT_OP make<RHS>()),0)))==sizeof(::boost::type_traits::yes_type)));
@@ -111,7 +112,11 @@
};
template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) : public BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1) < RHS, RET, BOOST_TT_FORBIDDEN_IF > { };
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+ typedef typename ::boost::remove_reference<RHS>::type rhs_noref;
+ typedef typename ::boost::remove_cv<rhs_noref>::type rhs_nocv;
+ BOOST_STATIC_CONSTANT(bool, value = (BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1) < rhs_noref, RET, BOOST_TT_FORBIDDEN_IF >::value));
+};
} // namespace impl
} // namespace detail
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -15,11 +15,11 @@
#define BOOST_TT_FORBIDDEN_IF\
::boost::type_traits::ice_or<\
/* pointer */\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< rhs_noref >::value,\
/* fundamental non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::is_fundamental< rhs_noref >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,17 +16,17 @@
/* pointer with pointer or fundamental */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< lhs_noref >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< rhs_noref >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,17 +16,17 @@
/* pointer with pointer or fundamental */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< lhs_noref >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< rhs_noref >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,23 +16,23 @@
::boost::type_traits::ice_or<\
/* pointer and fundamental */\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
- ::boost::is_fundamental< RHS >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
- ::boost::is_fundamental< LHS >::value\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value\
>::value,\
/* two pointers but no inheritance */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::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\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value\
>::value\
>::value\
>::value\
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,23 +16,23 @@
::boost::type_traits::ice_or<\
/* pointer and fundamental */\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
- ::boost::is_fundamental< RHS >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
- ::boost::is_fundamental< LHS >::value\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value\
>::value,\
/* two pointers but no inheritance */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::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\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value\
>::value\
>::value\
>::value\
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,23 +16,23 @@
::boost::type_traits::ice_or<\
/* pointer and fundamental */\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
- ::boost::is_fundamental< RHS >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
- ::boost::is_fundamental< LHS >::value\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value\
>::value,\
/* two pointers but no inheritance */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::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\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value\
>::value\
>::value\
>::value\
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,23 +16,23 @@
::boost::type_traits::ice_or<\
/* pointer and fundamental */\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
- ::boost::is_fundamental< RHS >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
- ::boost::is_fundamental< LHS >::value\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value\
>::value,\
/* two pointers but no inheritance */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::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\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value\
>::value\
>::value\
>::value\
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,23 +16,23 @@
::boost::type_traits::ice_or<\
/* pointer and fundamental */\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
- ::boost::is_fundamental< RHS >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
- ::boost::is_fundamental< LHS >::value\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value\
>::value,\
/* two pointers but no inheritance */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::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\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value\
>::value\
>::value\
>::value\
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,17 +16,17 @@
/* pointer with fundamental 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::is_pointer< lhs_noref >::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::type_traits::ice_not< ::boost::is_convertible< typename ::boost::remove_reference<RHS>::type, bool >::value >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_convertible< rhs_nocv, bool >::value >::value\
>::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< rhs_noref >::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::type_traits::ice_not< ::boost::is_convertible< typename ::boost::remove_reference<LHS>::type, bool >::value >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_convertible< lhs_nocv, bool >::value >::value\
>::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,17 +16,17 @@
/* pointer with fundamental 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::is_pointer< lhs_noref >::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::type_traits::ice_not< ::boost::is_convertible< typename ::boost::remove_reference<RHS>::type, bool >::value >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_convertible< rhs_nocv, bool >::value >::value\
>::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< rhs_noref >::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::type_traits::ice_not< ::boost::is_convertible< typename ::boost::remove_reference<LHS>::type, bool >::value >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_convertible< lhs_nocv, bool >::value >::value\
>::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,38 +16,38 @@
::boost::type_traits::ice_or<\
/* void* with fundamental or pointer */\
::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,\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::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,\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* LHS==pointer!=void* and RHS==fundamental non integral */\
::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::is_fundamental< RHS >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value,\
/* LHS=fundamental and RHS=pointer */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
/* two different pointers */\
::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\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_same< lhs_nocv, rhs_nocv >::value >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,19 +16,19 @@
::boost::type_traits::ice_or<\
/* RHS==pointer */\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< rhs_noref >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* LHS==pointer and RHS==fundamental and (LHS==void* or RHS!=integral) */\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_void< typename ::boost::remove_pointer<LHS>::type >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,17 +16,17 @@
/* pointer with pointer or fundamental */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< lhs_noref >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< rhs_noref >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,17 +16,17 @@
/* pointer with pointer or fundamental */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
+ ::boost::is_pointer< lhs_noref >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
+ ::boost::is_pointer< rhs_noref >::value,\
::boost::type_traits::ice_or<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,23 +16,23 @@
::boost::type_traits::ice_or<\
/* pointer and fundamental */\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
- ::boost::is_fundamental< RHS >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
- ::boost::is_fundamental< LHS >::value\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value\
>::value,\
/* two pointers but no inheritance */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::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\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type >::value,\
+ ::boost::is_base_of< typename ::boost::remove_reference< typename ::boost::remove_pointer< rhs_noref >::type >::type, typename ::boost::remove_reference< typename ::boost::remove_pointer< lhs_noref >::type >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value\
>::value\
>::value\
>::value\
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,30 +16,30 @@
::boost::type_traits::ice_or<\
/* pointer with pointer */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
/* pointer with fundamental non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value,\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value\
>::value,\
/* void* with fundamental */\
::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,\
- ::boost::is_fundamental< RHS >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value\
>::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,\
- ::boost::is_fundamental< LHS >::value\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,31 +16,31 @@
::boost::type_traits::ice_or<\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
/* void* with fundamental */\
::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,\
- ::boost::is_fundamental< RHS >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value\
>::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,\
- ::boost::is_fundamental< LHS >::value\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value\
>::value,\
/* LHS==pointer and RHS==fundamental non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value,\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value,\
/* LHS==non bool fundamental and RHS==pointer */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::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\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_same< bool, lhs_nocv >::value >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -13,13 +13,17 @@
#define BOOST_TT_TRAIT_OP --
#define BOOST_TT_DEFAULT_RET void
#define BOOST_TT_FORBIDDEN_IF\
- /* bool or void* */\
+ /* bool or void* or const fundamental */\
::boost::type_traits::ice_or<\
- ::boost::is_same< bool, typename ::boost::remove_cv< typename ::boost::remove_reference<LHS>::type >::type >::value,\
+ ::boost::is_same< bool, lhs_nocv >::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\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_const< lhs_noref >::value\
+ >::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -13,10 +13,16 @@
#define BOOST_TT_TRAIT_OP ++
#define BOOST_TT_DEFAULT_RET void
#define BOOST_TT_FORBIDDEN_IF\
- /* 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\
+ /* void* or const fundamental */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< lhs_noref >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< lhs_noref >::type >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_const< lhs_noref >::value\
+ >::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -13,13 +13,17 @@
#define BOOST_TT_TRAIT_OP --
#define BOOST_TT_DEFAULT_RET void
#define BOOST_TT_FORBIDDEN_IF\
- /* bool or void* */\
+ /* bool or void* or const fundamental */\
::boost::type_traits::ice_or<\
- ::boost::is_same< bool, typename ::boost::remove_cv< typename ::boost::remove_reference<RHS>::type >::type >::value,\
+ ::boost::is_same< bool, rhs_nocv >::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\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_const< rhs_noref >::value\
+ >::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -13,10 +13,16 @@
#define BOOST_TT_TRAIT_OP ++
#define BOOST_TT_DEFAULT_RET void
#define BOOST_TT_FORBIDDEN_IF\
- /* 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\
+ /* void* or const fundamental */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< rhs_noref >::value,\
+ ::boost::is_void< typename ::boost::remove_pointer< rhs_noref >::type >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_const< rhs_noref >::value\
+ >::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
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-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -16,28 +16,28 @@
::boost::type_traits::ice_or<\
/* two fundamental, one non integral */\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_fundamental< RHS >::value,\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_fundamental< rhs_nocv >::value,\
::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<LHS>::type >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< typename ::boost::remove_reference<RHS>::type >::value >::value\
+ ::boost::type_traits::ice_not< ::boost::is_integral< lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< rhs_noref >::value >::value\
>::value\
>::value,\
/* one fundamental, one pointer */\
::boost::type_traits::ice_or<\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< LHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value\
+ ::boost::is_fundamental< lhs_nocv >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value,\
::boost::type_traits::ice_and<\
- ::boost::is_fundamental< RHS >::value,\
- ::boost::is_pointer< typename ::boost::remove_reference<LHS>::type >::value\
+ ::boost::is_fundamental< rhs_nocv >::value,\
+ ::boost::is_pointer< lhs_noref >::value\
>::value\
>::value,\
/* two pointers */\
::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::is_pointer< lhs_noref >::value,\
+ ::boost::is_pointer< rhs_noref >::value\
>::value\
>::value
Modified: sandbox/type_traits/boost/type_traits/has_operator_unary_minus.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_unary_minus.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_unary_minus.hpp 2011-02-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -14,7 +14,7 @@
#define BOOST_TT_DEFAULT_RET void
#define BOOST_TT_FORBIDDEN_IF\
/* pointer */\
- ::boost::is_pointer< typename ::boost::remove_reference<RHS>::type >::value
+ ::boost::is_pointer< rhs_noref >::value
#include <boost/type_traits/detail/has_prefix_operator.hpp>
Modified: sandbox/type_traits/libs/type_traits/test/has_binary_logical_operator_test.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_binary_logical_operator_test.hpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_logical_operator_test.hpp 2011-02-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -1,19 +1,19 @@
-// (C) Copyright Frederic Bron 2009-2010.
-// Use, modification and distribution are subject to 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)
+ // (C) Copyright Frederic Bron 2009-2010.
+ // Use, modification and distribution are subject to 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 <iostream>
#include <typeinfo>
#include <string>
-// test with one template parameter
+ // test with one template parameter
#define TEST_T(TYPE,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE>::value), RESULT)
-// test with one template parameter plus return value
+ // test with one template parameter plus return value
#define TEST_TR(TYPE,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE,TYPE,RET>::value), RESULT)
-// test with two template parameters
+ // test with two template parameters
#define TEST_TT(TYPE1,TYPE2,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2>::value), RESULT)
-// test with two template parameters plus return value
+ // test with two template parameters plus return value
#define TEST_TTR(TYPE1,TYPE2,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
namespace {
@@ -39,8 +39,8 @@
struct returns_string { std::string operator BOOST_TT_TRAIT_OP (const returns_string&); };
-//struct convertible_to_bool { operator bool () const; };
-//struct returns_convertible_to_bool { convertible_to_bool operator BOOST_TT_TRAIT_OP (const returns_convertible_to_bool&); };
+ //struct convertible_to_bool { operator bool () const; };
+ //struct returns_convertible_to_bool { convertible_to_bool operator BOOST_TT_TRAIT_OP (const returns_convertible_to_bool&); };
class Base1 { };
class Derived1 : public Base1 { };
@@ -82,6 +82,31 @@
TEST_T(double, true);
TEST_T(long double, true);
TEST_T(void, false);
+# define CV(T) const T
+ TEST_T(CV(bool), true);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) volatile T
+ TEST_T(CV(bool), true);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const volatile T
+ TEST_T(CV(bool), true);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const T&
+ TEST_T(CV(bool), true);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) volatile T&
+ TEST_T(CV(bool), true);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const volatile T&
+ TEST_T(CV(bool), true);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+
// test with only two template parameters
TEST_TT(bool, bool, true);
TEST_TT(bool, char, true);
@@ -702,17 +727,450 @@
TEST_TTR(long double, double, tag, false);
TEST_TTR(long double, long double, tag, false);
+# define CV1(T) const T
+# define CV2(T) T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) volatile T
+# define CV2(T) T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) const volatile T
+# define CV2(T) T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) const T&
+# define CV2(T) T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) volatile T&
+# define CV2(T) T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) const volatile T&
+# define CV2(T) T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) T
+# define CV2(T) const T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) T
+# define CV2(T) volatile T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) T
+# define CV2(T) const volatile T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) T
+# define CV2(T) const T&
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) T
+# define CV2(T) volatile T&
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) T
+# define CV2(T) const volatile T&
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) const T
+# define CV2(T) const T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) const T&
+# define CV2(T) const T&
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) volatile T
+# define CV2(T) volatile T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) volatile T&
+# define CV2(T) volatile T&
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) const volatile T
+# define CV2(T) const volatile T
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+# define CV1(T) const volatile T&
+# define CV2(T) const volatile T&
+ // test with only two template parameters
+ TEST_TT(CV1(bool), CV2(int), true);
+ TEST_TT(CV1(bool), CV2(double), true);
+ TEST_TT(CV1(int), CV2(bool), true);
+ TEST_TT(CV1(int), CV2(double), true);
+ TEST_TT(CV1(double), CV2(bool), true);
+ TEST_TT(CV1(double), CV2(int), true);
+
+ // test with three template parameters
+ TEST_TTR(CV1(bool), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(double), bool, true);
+ TEST_TTR(CV1(int), CV2(bool), bool, true);
+ TEST_TTR(CV1(int), CV2(double), bool, true);
+ TEST_TTR(CV1(double), CV2(bool), bool, true);
+ TEST_TTR(CV1(double), CV2(int), bool, true);
+ TEST_TTR(CV1(bool), CV2(int), tag, false);
+ TEST_TTR(CV1(bool), CV2(double), tag, false);
+ TEST_TTR(CV1(int), CV2(bool), tag, false);
+ TEST_TTR(CV1(int), CV2(double), tag, false);
+ TEST_TTR(CV1(double), CV2(bool), tag, false);
+ TEST_TTR(CV1(double), CV2(int), tag, false);
+
+
TEST_T(without, false);
TEST_T(internal, true);
TEST_T(external, true);
-// compile time error
-// TEST_T(internal_private, false);
+ // compile time error
+ // TEST_T(internal_private, false);
TEST_T(returns_int, true);
TEST_T(returns_void, true);
TEST_T(returns_void_star, true);
TEST_T(returns_double, true);
TEST_T(returns_string, true);
-// TEST_T(convertible_to_bool, true);
+ // TEST_T(convertible_to_bool, true);
TEST_T(Base1, true);
TEST_T(Derived1, true);
TEST_T(Base2, false);
@@ -732,7 +1190,7 @@
TEST_TR(returns_double, double, true);
TEST_TR(returns_string, bool, false);
TEST_TR(returns_string, std::string, true);
-// TEST_TR(convertible_to_bool, bool, true);
+ // TEST_TR(convertible_to_bool, bool, true);
TEST_TR(Base1, bool, true);
TEST_TR(Derived1, bool, true);
TEST_TR(Base2, bool, false);
Modified: sandbox/type_traits/libs/type_traits/test/has_postfix_decrement_operator_test.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_postfix_decrement_operator_test.hpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_decrement_operator_test.hpp 2011-02-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -69,6 +69,30 @@
TEST_T(double, true);
TEST_T(long double, true);
TEST_T(void, false);
+# define CV(T) const T
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) volatile T
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const volatile T
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) const T&
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) volatile T&
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const volatile T&
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
// test with three template parameters
TEST_TR(bool, bool, false);
Modified: sandbox/type_traits/libs/type_traits/test/has_postfix_increment_operator_test.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_postfix_increment_operator_test.hpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_increment_operator_test.hpp 2011-02-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -69,6 +69,30 @@
TEST_T(double, true);
TEST_T(long double, true);
TEST_T(void, false);
+# define CV(T) const T
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) volatile T
+ TEST_T(CV(bool), true);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const volatile T
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) const T&
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) volatile T&
+ TEST_T(CV(bool), true);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const volatile T&
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
// test with three template parameters
TEST_TR(bool, bool, true);
Modified: sandbox/type_traits/libs/type_traits/test/has_prefix_decrement_operator_test.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_prefix_decrement_operator_test.hpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_decrement_operator_test.hpp 2011-02-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -69,6 +69,30 @@
TEST_T(double, true);
TEST_T(long double, true);
TEST_T(void, false);
+# define CV(T) const T
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) volatile T
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const volatile T
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) const T&
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) volatile T&
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const volatile T&
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
// test with three template parameters
TEST_TR(bool, bool, false);
Modified: sandbox/type_traits/libs/type_traits/test/has_prefix_increment_operator_test.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_prefix_increment_operator_test.hpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_increment_operator_test.hpp 2011-02-06 17:58:00 EST (Sun, 06 Feb 2011)
@@ -69,6 +69,30 @@
TEST_T(double, true);
TEST_T(long double, true);
TEST_T(void, false);
+# define CV(T) const T
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) volatile T
+ TEST_T(CV(bool), true);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const volatile T
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) const T&
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
+# define CV(T) volatile T&
+ TEST_T(CV(bool), true);
+ TEST_T(CV(int), true);
+ TEST_T(CV(double), true);
+# define CV(T) const volatile T&
+ TEST_T(CV(bool), false);
+ TEST_T(CV(int), false);
+ TEST_T(CV(double), false);
// test with three template parameters
TEST_TR(bool, bool, true);
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