Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r68546 - in sandbox/type_traits: boost/type_traits boost/type_traits/detail libs/type_traits/doc libs/type_traits/doc/html libs/type_traits/doc/html/boost_typetraits libs/type_traits/doc/html/boost_typetraits/category libs/type_traits/doc/html/boost_typetraits/category/value_traits libs/type_traits/doc/html/boost_typetraits/examples libs/type_traits/doc/html/boost_typetraits/reference libs/type_traits/test
From: frederic.bron_at_[hidden]
Date: 2011-01-29 12:56:02


Author: bronf
Date: 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
New Revision: 68546
URL: http://svn.boost.org/trac/boost/changeset/68546

Log:
added support for pointer types for binary operator traits
Added:
   sandbox/type_traits/boost/type_traits/detail/has_postfix_operator.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/detail/has_prefix_operator.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_logical_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_minus_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_plus_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_comparison_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_minus_equal_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_no_pointer_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_plus_equal_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_postfix_decrement_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_postfix_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_prefix_decrement_operator_test.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_prefix_operator_test.hpp (contents, props changed)
Removed:
   sandbox/type_traits/boost/type_traits/detail/has_integer_binary_operator.hpp
   sandbox/type_traits/boost/type_traits/detail/has_postfix_unary_operator.hpp
   sandbox/type_traits/boost/type_traits/detail/has_prefix_unary_operator.hpp
   sandbox/type_traits/libs/type_traits/test/has_binary_operator_test.hpp
   sandbox/type_traits/libs/type_traits/test/has_postfix_unary_operator_test.hpp
   sandbox/type_traits/libs/type_traits/test/has_prefix_unary_operator_test.hpp
Text files modified:
   sandbox/type_traits/boost/type_traits/detail/has_binary_operator.hpp | 41 +++++++++++----
   sandbox/type_traits/boost/type_traits/has_operator_bit_and.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_bit_and_equal.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_bit_or.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_bit_or_equal.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_bit_xor.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_bit_xor_equal.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_divides.hpp | 10 +++
   sandbox/type_traits/boost/type_traits/has_operator_divides_equal.hpp | 10 +++
   sandbox/type_traits/boost/type_traits/has_operator_equal_to.hpp | 36 +++++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_greater.hpp | 36 +++++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_greater_equal.hpp | 36 +++++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_left_shift.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_left_shift_equal.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_less.hpp | 36 +++++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_less_equal.hpp | 36 +++++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_logical_and.hpp | 23 ++++++++
   sandbox/type_traits/boost/type_traits/has_operator_logical_not.hpp | 7 +
   sandbox/type_traits/boost/type_traits/has_operator_logical_or.hpp | 23 ++++++++
   sandbox/type_traits/boost/type_traits/has_operator_minus.hpp | 39 ++++++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_minus_equal.hpp | 20 +++++++
   sandbox/type_traits/boost/type_traits/has_operator_modulus.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_modulus_equal.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_multiplies.hpp | 10 +++
   sandbox/type_traits/boost/type_traits/has_operator_multiplies_equal.hpp | 10 +++
   sandbox/type_traits/boost/type_traits/has_operator_not_equal_to.hpp | 36 +++++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_plus.hpp | 38 ++++++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_plus_equal.hpp | 34 ++++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_postfix_decrement.hpp | 12 +--
   sandbox/type_traits/boost/type_traits/has_operator_postfix_increment.hpp | 7 +
   sandbox/type_traits/boost/type_traits/has_operator_prefix_decrement.hpp | 12 +--
   sandbox/type_traits/boost/type_traits/has_operator_prefix_increment.hpp | 7 +
   sandbox/type_traits/boost/type_traits/has_operator_right_shift.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_right_shift_equal.hpp | 32 +++++++++++
   sandbox/type_traits/boost/type_traits/has_operator_unary_minus.hpp | 7 +
   sandbox/type_traits/boost/type_traits/has_operator_unary_plus.hpp | 7 +
   sandbox/type_traits/libs/type_traits/doc/has_operator_bit_and.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_bit_and_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_bit_or.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_bit_or_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_bit_xor.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_bit_xor_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_divides.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_divides_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_equal_to.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_greater.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_greater_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_left_shift.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_left_shift_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_less.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_less_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_logical_and.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_logical_not.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_logical_or.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_minus.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_minus_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_modulus.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_modulus_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_multiplies.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_multiplies_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_not_equal_to.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_plus.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_plus_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_decrement.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_increment.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_decrement.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_increment.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_right_shift.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_right_shift_equal.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_unary_minus.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/has_operator_unary_plus.qbk | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/background.html | 24 ++++----
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/alignment.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/function.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/transform.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/credits.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/copy.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/fill.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/iter.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intrinsics.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intro.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/mpl.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/decay.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/extent.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html | 6 +-
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_and.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_and_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_or.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_or_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_xor.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_xor_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_divides.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_divides_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_equal_to.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_greater.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_greater_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_left_shift.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_left_shift_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_less.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_less_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_and.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_not.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_or.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_minus.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_minus_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_modulus.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_modulus_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_multiplies.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_multiplies_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_not_equal_to.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_decrement.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_increment.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_decrement.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_increment.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_right_shift.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_right_shift_equal.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_unary_minus.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_unary_plus.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/member_object.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/promote.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/rank.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_member_pointer.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html | 4
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/user_defined.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/index.html | 6 +-
   sandbox/type_traits/libs/type_traits/doc/type_traits.qbk | 2
   sandbox/type_traits/libs/type_traits/test/has_integral_operator_test.hpp | 103 +++++++++++++++++++++++++++++++++++++++
   sandbox/type_traits/libs/type_traits/test/has_operator_bit_and_equal_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_bit_and_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_bit_or_equal_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_bit_or_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_bit_xor_equal_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_bit_xor_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_divides_equal_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_divides_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_equal_to_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_greater_equal_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_greater_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_left_shift_equal_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_left_shift_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_less_equal_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_less_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_logical_and_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_logical_not_test.cpp | 5 -
   sandbox/type_traits/libs/type_traits/test/has_operator_logical_or_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_minus_equal_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_minus_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_modulus_equal_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_modulus_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_multiplies_equal_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_multiplies_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_not_equal_to_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_plus_equal_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_plus_test.cpp | 4
   sandbox/type_traits/libs/type_traits/test/has_operator_postfix_decrement_test.cpp | 5 -
   sandbox/type_traits/libs/type_traits/test/has_operator_postfix_increment_test.cpp | 5 -
   sandbox/type_traits/libs/type_traits/test/has_operator_prefix_decrement_test.cpp | 5 -
   sandbox/type_traits/libs/type_traits/test/has_operator_prefix_increment_test.cpp | 5 -
   sandbox/type_traits/libs/type_traits/test/has_operator_right_shift_equal_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_right_shift_test.cpp | 2
   sandbox/type_traits/libs/type_traits/test/has_operator_unary_minus_test.cpp | 5 -
   sandbox/type_traits/libs/type_traits/test/has_operator_unary_plus_test.cpp | 5 -
   235 files changed, 1201 insertions(+), 342 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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Robert Stewart, Steven Watanabe, Roman Perepelitsa & Frédéric Bron
+// (C) Copyright 2009-2011 Frédéric Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -6,10 +6,19 @@
 //
 // See http://www.boost.org/libs/type_traits for most recent version including documentation.
 
+#include <limits>
 #include <boost/config.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/integral_constant.hpp>
 #include <boost/type_traits/detail/yes_no_type.hpp>
+#include <boost/type_traits/integral_constant.hpp>
+#include <boost/type_traits/is_base_of.hpp>
+#include <boost/type_traits/is_class.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/type_traits/is_pointer.hpp>
+#include <boost/type_traits/is_union.hpp>
+#include <boost/type_traits/is_void.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/remove_pointer.hpp>
+#include <boost/type_traits/remove_reference.hpp>
 
 // should be the last #include
 #include <boost/type_traits/detail/bool_trait_def.hpp>
@@ -67,9 +76,19 @@
         static const bool value=false;
 };
 
+template < typename LHS, typename RHS, typename RET,
+ bool forbidden_if=BOOST_TT_FORBIDDEN_IF
+>
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl);
+
+template < typename LHS, typename RHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) < LHS, RHS, RET, true > {
+ static const bool value=false;
+};
+
 // checks for return type if 3rd template parameter RET is non void
 template < typename LHS, typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) < LHS, RHS, RET, false > {
         static const bool value=
                         BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< LHS, RHS, RET, typename ::boost::integral_constant< bool, BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void)< LHS, RHS >::value > >::value;
 };
@@ -79,7 +98,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,_impl)< LHS, RHS, void > {
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< 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::no_type check(tag); // this version is used otherwise
 
@@ -88,32 +107,32 @@
 };
 
 template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RHS, RET > {
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RHS, RET, false > {
         static const bool value=false;
 };
 
 template < typename LHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< LHS, void, RET > {
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< LHS, void, RET, false > {
         static const bool value=false;
 };
 
 template < typename LHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< LHS, void, void > {
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< LHS, void, void, false > {
         static const bool value=false;
 };
 
 template < typename RHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RHS, void > {
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RHS, void, false > {
         static const bool value=false;
 };
 
 template < typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void, RET > {
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void, RET, false > {
         static const bool value=false;
 };
 
 template <>
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void, void > {
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void, void, false > {
         static const bool value=false;
 };
 

Deleted: sandbox/type_traits/boost/type_traits/detail/has_integer_binary_operator.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/has_integer_binary_operator.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
+++ (empty file)
@@ -1,158 +0,0 @@
-// Copyright 2010 Robert Stewart, Steven Watanabe, Roman Perepelitsa & Frédéric Bron
-//
-// 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).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#include <limits>
-#include <boost/config.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/is_union.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-namespace detail {
-
-// This namespace ensures that ADL does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
-
-// a type returned from comparison operator when no such operator is found in the
-// type's own namespace
-struct tag { };
-
-// any soaks up implicit conversions and makes the following
-// comparison operators less-preferred than any other such operators that
-// might be found via ADL.
-struct any { template <class T> any(T const&); };
-
-// when operator BOOST_TT_TRAIT_OP is not available, this one is used
-tag operator BOOST_TT_TRAIT_OP (const any&, const any&);
-
-namespace {
- template <typename T>
- typename ::boost::remove_cv<T>::type &make();
-}
-
-template < typename LHS, typename RHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void) {
- struct returns_void_t {
- template <typename T> friend int operator,(T const &, returns_void_t);
- };
- static ::boost::type_traits::yes_type returns_void(returns_void_t);
- static ::boost::type_traits::no_type returns_void(int);
- static bool const value=
- sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<LHS>() BOOST_TT_TRAIT_OP make<RHS>(),returns_void_t())));
-};
-
-template < typename LHS, typename RHS, typename RET, typename RETURNS_VOID >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1);
-
-// LHS BOOST_TT_TRAIT_OP RHS does not return void, checks if it is convertible to RET
-template < typename LHS, typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< LHS, RHS, RET, ::boost::false_type > {
- static ::boost::type_traits::yes_type is_convertible_to_RET(RET); // this version is preferred for types convertible to RET
- static ::boost::type_traits::no_type is_convertible_to_RET(...); // this version is used otherwise
-
- static const bool value=
- sizeof(is_convertible_to_RET(make<LHS>() BOOST_TT_TRAIT_OP make<RHS>()))==sizeof(::boost::type_traits::yes_type);
-};
-
-// LHS BOOST_TT_TRAIT_OP RHS returns void!=RET
-template < typename LHS, typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< LHS, RHS, RET, ::boost::true_type > {
- static const bool value=false;
-};
-
-template < typename LHS, typename RHS, typename RET,
- bool two_builtin_one_non_integer =
- // two builtin
- not (
- boost::is_class < typename boost::remove_reference<LHS>::type >::value or
- boost::is_union < typename boost::remove_reference<LHS>::type >::value or
- boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or
- boost::is_class < typename boost::remove_reference<RHS>::type >::value or
- boost::is_union < typename boost::remove_reference<RHS>::type >::value or
- boost::is_pointer< typename boost::remove_reference<RHS>::type >::value
- )
- and
- (
- // one non integer
- not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer
- or
- not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer
- )
->
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl);
-
-template < typename LHS, typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) < LHS, RHS, RET, true > {
- static const bool value=false;
-};
-
-// checks for return type if 3rd template parameter RET is non void
-template < typename LHS, typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) < LHS, RHS, RET, false > {
- static const bool value=
- BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< LHS, RHS, RET, typename ::boost::integral_constant< bool, BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void)< LHS, RHS >::value > >::value;
-};
-
-// in case we do not want to check for return type
-tag operator,(tag, int);
-
-// 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,_impl)< 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::no_type check(tag); // this version is used otherwise
-
- static const bool value=
- sizeof(check(((make<LHS>() BOOST_TT_TRAIT_OP make<RHS>()),0)))==sizeof(::boost::type_traits::yes_type);
-};
-
-template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RHS, RET, false > {
- static const bool value=false;
-};
-
-template < typename LHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< LHS, void, RET, false > {
- static const bool value=false;
-};
-
-template < typename LHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< LHS, void, void, false > {
- static const bool value=false;
-};
-
-template < typename RHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RHS, void, false > {
- static const bool value=false;
-};
-
-template < typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void, RET, false > {
- static const bool value=false;
-};
-
-template <>
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void, void, false > {
- static const bool value=false;
-};
-
-} // namespace impl
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF3(BOOST_TT_TRAIT_NAME,LHS,RHS=LHS,RET=BOOST_TT_DEFAULT_RET,(::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)<LHS,RHS,RET>::value))
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>

Added: sandbox/type_traits/boost/type_traits/detail/has_postfix_operator.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/detail/has_postfix_operator.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,125 @@
+// (C) Copyright 2009-2011 Frédéric Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa
+//
+// 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).
+//
+// See http://www.boost.org/libs/type_traits for most recent version including documentation.
+
+#include <boost/config.hpp>
+#include <boost/type_traits/detail/yes_no_type.hpp>
+#include <boost/type_traits/integral_constant.hpp>
+#include <boost/type_traits/is_base_of.hpp>
+#include <boost/type_traits/is_class.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/type_traits/is_pointer.hpp>
+#include <boost/type_traits/is_union.hpp>
+#include <boost/type_traits/is_void.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/remove_pointer.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+
+// should be the last #include
+#include <boost/type_traits/detail/bool_trait_def.hpp>
+
+namespace boost {
+namespace detail {
+
+// This namespace ensures that ADL does not mess things up.
+namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+
+// a type returned from comparison operator when no such operator is found in the
+// type's own namespace
+struct tag { };
+
+// any soaks up implicit conversions and makes the following
+// comparison operators less-preferred than any other such operators that
+// might be found via ADL.
+struct any { template <class T> any(T const&); };
+
+// when operator BOOST_TT_TRAIT_OP is not available, this one is used
+tag operator BOOST_TT_TRAIT_OP (const any&, int);
+
+namespace {
+ template <typename T>
+ typename ::boost::remove_cv<T>::type &make();
+}
+
+template < typename LHS >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void) {
+ struct returns_void_t {
+ template <typename T> friend int operator,(T const &, returns_void_t);
+ };
+ static ::boost::type_traits::yes_type returns_void(returns_void_t);
+ static ::boost::type_traits::no_type returns_void(int);
+ static bool const value=
+ sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<LHS>() BOOST_TT_TRAIT_OP,returns_void_t())));
+};
+
+template < typename LHS, typename RET, typename RETURNS_VOID >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1);
+
+// BOOST_TT_TRAIT_OP LHS does not return void, checks if it is convertible to RET
+template < typename LHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< LHS, RET, ::boost::false_type > {
+ static ::boost::type_traits::yes_type is_convertible_to_RET(RET); // this version is preferred for types convertible to RET
+ static ::boost::type_traits::no_type is_convertible_to_RET(...); // this version is used otherwise
+
+ static const bool value=
+ sizeof(is_convertible_to_RET(make<LHS>() BOOST_TT_TRAIT_OP))==sizeof(::boost::type_traits::yes_type);
+};
+
+// BOOST_TT_TRAIT_OP LHS returns void!=RET
+template < typename LHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< LHS, RET, ::boost::true_type > {
+ static const bool value=false;
+};
+
+template < typename LHS, typename RET,
+ bool forbidden_if=BOOST_TT_FORBIDDEN_IF
+>
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl);
+
+template < typename LHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) < LHS, RET, true > {
+ static const bool value=false;
+};
+
+// checks for return type if 2nd template parameter RET is non void
+template < typename LHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) < LHS, RET, false > {
+ static const bool value=
+ BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< LHS, RET, typename ::boost::integral_constant< bool, BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void)< LHS >::value > >::value;
+};
+
+// in case we do not want to check for return type
+tag operator,(tag, int);
+
+// do not check for return type if 2nd template parameter RET is void
+template < typename LHS >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< LHS, void, false > {
+ static ::boost::type_traits::yes_type check(int); // this version is preferred for types convertible to RET
+ static ::boost::type_traits::no_type check(tag); // this version is used otherwise
+
+ static const bool value=
+ sizeof(check(((make<LHS>() BOOST_TT_TRAIT_OP),0)))==sizeof(::boost::type_traits::yes_type);
+};
+
+template < typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RET, false > {
+ static const bool value=false;
+};
+
+template <>
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void, false > {
+ static const bool value=false;
+};
+
+} // namespace impl
+} // namespace detail
+
+BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME,LHS,RET=BOOST_TT_DEFAULT_RET,(::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)<LHS,RET>::value))
+
+} // namespace boost
+
+#include <boost/type_traits/detail/bool_trait_undef.hpp>

Deleted: sandbox/type_traits/boost/type_traits/detail/has_postfix_unary_operator.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/has_postfix_unary_operator.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
+++ (empty file)
@@ -1,107 +0,0 @@
-// Copyright 2010 Robert Stewart, Steven Watanabe, Roman Perepelitsa & Frédéric Bron
-//
-// 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).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#include <boost/config.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-namespace detail {
-
-// This namespace ensures that ADL does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
-
-// a type returned from comparison operator when no such operator is found in the
-// type's own namespace
-struct tag { };
-
-// any soaks up implicit conversions and makes the following
-// comparison operators less-preferred than any other such operators that
-// might be found via ADL.
-struct any { template <class T> any(T const&); };
-
-// when operator BOOST_TT_TRAIT_OP is not available, this one is used
-tag operator BOOST_TT_TRAIT_OP (const any&, int);
-
-namespace {
- template <typename T>
- typename ::boost::remove_cv<T>::type &make();
-}
-
-template < typename RHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void) {
- struct returns_void_t {
- template <typename T> friend int operator,(T const &, returns_void_t);
- };
- static ::boost::type_traits::yes_type returns_void(returns_void_t);
- static ::boost::type_traits::no_type returns_void(int);
- static bool const value=
- sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<RHS>() BOOST_TT_TRAIT_OP,returns_void_t())));
-};
-
-template < typename RHS, typename RET, typename RETURNS_VOID >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1);
-
-// BOOST_TT_TRAIT_OP RHS does not return void, checks if it is convertible to RET
-template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, ::boost::false_type > {
- static ::boost::type_traits::yes_type is_convertible_to_RET(RET); // this version is preferred for types convertible to RET
- static ::boost::type_traits::no_type is_convertible_to_RET(...); // this version is used otherwise
-
- static const bool value=
- sizeof(is_convertible_to_RET(make<RHS>() BOOST_TT_TRAIT_OP))==sizeof(::boost::type_traits::yes_type);
-};
-
-// BOOST_TT_TRAIT_OP RHS returns void!=RET
-template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, ::boost::true_type > {
- static const bool value=false;
-};
-
-// checks for return type if 2nd template parameter RET is non void
-template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
- static const bool value=
- BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, typename ::boost::integral_constant< bool, BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void)< RHS >::value > >::value;
-};
-
-// in case we do not want to check for return type
-tag operator,(tag, int);
-
-// do not check for return type if 2nd template parameter RET is void
-template < typename RHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< RHS, void > {
- static ::boost::type_traits::yes_type check(int); // this version is preferred for types convertible to RET
- static ::boost::type_traits::no_type check(tag); // this version is used otherwise
-
- static const bool value=
- sizeof(check(((make<RHS>() BOOST_TT_TRAIT_OP),0)))==sizeof(::boost::type_traits::yes_type);
-};
-
-template < typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RET > {
- static const bool value=false;
-};
-
-template <>
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void > {
- static const bool value=false;
-};
-
-} // namespace impl
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME,RHS,RET=BOOST_TT_DEFAULT_RET,(::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)<RHS,RET>::value))
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>

Added: sandbox/type_traits/boost/type_traits/detail/has_prefix_operator.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/detail/has_prefix_operator.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,125 @@
+// (C) Copyright 2009-2011 Frédéric Bron, Robert Stewart, Steven Watanabe & Roman Perepelitsa
+//
+// 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).
+//
+// See http://www.boost.org/libs/type_traits for most recent version including documentation.
+
+#include <boost/config.hpp>
+#include <boost/type_traits/detail/yes_no_type.hpp>
+#include <boost/type_traits/integral_constant.hpp>
+#include <boost/type_traits/is_base_of.hpp>
+#include <boost/type_traits/is_class.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/type_traits/is_pointer.hpp>
+#include <boost/type_traits/is_union.hpp>
+#include <boost/type_traits/is_void.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/type_traits/remove_pointer.hpp>
+#include <boost/type_traits/remove_reference.hpp>
+
+// should be the last #include
+#include <boost/type_traits/detail/bool_trait_def.hpp>
+
+namespace boost {
+namespace detail {
+
+// This namespace ensures that ADL does not mess things up.
+namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+
+// a type returned from comparison operator when no such operator is found in the
+// type's own namespace
+struct tag { };
+
+// any soaks up implicit conversions and makes the following
+// comparison operators less-preferred than any other such operators that
+// might be found via ADL.
+struct any { template <class T> any(T const&); };
+
+// when operator BOOST_TT_TRAIT_OP is not available, this one is used
+tag operator BOOST_TT_TRAIT_OP (const any&);
+
+namespace {
+ template <typename T>
+ typename ::boost::remove_cv<T>::type &make();
+}
+
+template < typename RHS >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void) {
+ struct returns_void_t {
+ template <typename T> friend int operator,(T const &, returns_void_t);
+ };
+ static ::boost::type_traits::yes_type returns_void(returns_void_t);
+ static ::boost::type_traits::no_type returns_void(int);
+ static bool const value=
+ sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((BOOST_TT_TRAIT_OP make<RHS>(),returns_void_t())));
+};
+
+template < typename RHS, typename RET, typename RETURNS_VOID >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1);
+
+// BOOST_TT_TRAIT_OP RHS does not return void, checks if it is convertible to RET
+template < typename RHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, ::boost::false_type > {
+ static ::boost::type_traits::yes_type is_convertible_to_RET(RET); // this version is preferred for types convertible to RET
+ static ::boost::type_traits::no_type is_convertible_to_RET(...); // this version is used otherwise
+
+ static const bool value=
+ sizeof(is_convertible_to_RET(BOOST_TT_TRAIT_OP make<RHS>()))==sizeof(::boost::type_traits::yes_type);
+};
+
+// BOOST_TT_TRAIT_OP RHS returns void!=RET
+template < typename RHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, ::boost::true_type > {
+ static const bool value=false;
+};
+
+template < typename RHS, typename RET,
+ bool forbidden_if=BOOST_TT_FORBIDDEN_IF
+>
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl);
+
+template < typename RHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) < RHS, RET, true > {
+ static const bool value=false;
+};
+
+// checks for return type if 2nd template parameter RET is non void
+template < typename RHS, typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) < RHS, RET, false > {
+ static const bool value=
+ BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, typename ::boost::integral_constant< bool, BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void)< RHS >::value > >::value;
+};
+
+// in case we do not want to check for return type
+tag operator,(tag, int);
+
+// do not check for return type if 2nd template parameter RET is void
+template < typename RHS >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< RHS, void, false > {
+ static ::boost::type_traits::yes_type check(int); // this version is preferred for types convertible to RET
+ static ::boost::type_traits::no_type check(tag); // this version is used otherwise
+
+ static const bool value=
+ sizeof(check(((BOOST_TT_TRAIT_OP make<RHS>()),0)))==sizeof(::boost::type_traits::yes_type);
+};
+
+template < typename RET >
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RET, false > {
+ static const bool value=false;
+};
+
+template <>
+struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void, false > {
+ static const bool value=false;
+};
+
+} // namespace impl
+} // namespace detail
+
+BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME,RHS,RET=BOOST_TT_DEFAULT_RET,(::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)<RHS,RET>::value))
+
+} // namespace boost
+
+#include <boost/type_traits/detail/bool_trait_undef.hpp>

Deleted: sandbox/type_traits/boost/type_traits/detail/has_prefix_unary_operator.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/has_prefix_unary_operator.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
+++ (empty file)
@@ -1,107 +0,0 @@
-// Copyright 2010 Robert Stewart, Steven Watanabe, Roman Perepelitsa & Frédéric Bron
-//
-// 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).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#include <boost/config.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-namespace detail {
-
-// This namespace ensures that ADL does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
-
-// a type returned from comparison operator when no such operator is found in the
-// type's own namespace
-struct tag { };
-
-// any soaks up implicit conversions and makes the following
-// comparison operators less-preferred than any other such operators that
-// might be found via ADL.
-struct any { template <class T> any(T const&); };
-
-// when operator BOOST_TT_TRAIT_OP is not available, this one is used
-tag operator BOOST_TT_TRAIT_OP (const any&);
-
-namespace {
- template <typename T>
- typename ::boost::remove_cv<T>::type &make();
-}
-
-template < typename RHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void) {
- struct returns_void_t {
- template <typename T> friend int operator,(T const &, returns_void_t);
- };
- static ::boost::type_traits::yes_type returns_void(returns_void_t);
- static ::boost::type_traits::no_type returns_void(int);
- static bool const value=
- sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((BOOST_TT_TRAIT_OP make<RHS>(),returns_void_t())));
-};
-
-template < typename RHS, typename RET, typename RETURNS_VOID >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1);
-
-// BOOST_TT_TRAIT_OP RHS does not return void, checks if it is convertible to RET
-template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, ::boost::false_type > {
- static ::boost::type_traits::yes_type is_convertible_to_RET(RET); // this version is preferred for types convertible to RET
- static ::boost::type_traits::no_type is_convertible_to_RET(...); // this version is used otherwise
-
- static const bool value=
- sizeof(is_convertible_to_RET(BOOST_TT_TRAIT_OP make<RHS>()))==sizeof(::boost::type_traits::yes_type);
-};
-
-// BOOST_TT_TRAIT_OP RHS returns void!=RET
-template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, ::boost::true_type > {
- static const bool value=false;
-};
-
-// checks for return type if 2nd template parameter RET is non void
-template < typename RHS, typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
- static const bool value=
- BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl1)< RHS, RET, typename ::boost::integral_constant< bool, BOOST_JOIN(BOOST_TT_TRAIT_NAME,_returns_void)< RHS >::value > >::value;
-};
-
-// in case we do not want to check for return type
-tag operator,(tag, int);
-
-// do not check for return type if 2nd template parameter RET is void
-template < typename RHS >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< RHS, void > {
- static ::boost::type_traits::yes_type check(int); // this version is preferred for types convertible to RET
- static ::boost::type_traits::no_type check(tag); // this version is used otherwise
-
- static const bool value=
- sizeof(check(((BOOST_TT_TRAIT_OP make<RHS>()),0)))==sizeof(::boost::type_traits::yes_type);
-};
-
-template < typename RET >
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, RET > {
- static const bool value=false;
-};
-
-template <>
-struct BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)< void, void > {
- static const bool value=false;
-};
-
-} // namespace impl
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME,RHS,RET=BOOST_TT_DEFAULT_RET,(::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)<RHS,RET>::value))
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>

Modified: sandbox/type_traits/boost/type_traits/has_operator_bit_and.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_bit_and.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_bit_and.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_bit_and
 #define BOOST_TT_TRAIT_OP &
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_bit_and_equal
 #define BOOST_TT_TRAIT_OP &=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_bit_or
 #define BOOST_TT_TRAIT_OP |
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_bit_or_equal
 #define BOOST_TT_TRAIT_OP |=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_bit_xor
 #define BOOST_TT_TRAIT_OP ^
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_bit_xor_equal
 #define BOOST_TT_TRAIT_OP ^=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,19 @@
 #define BOOST_TT_TRAIT_NAME has_operator_divides
 #define BOOST_TT_TRAIT_OP /
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,19 @@
 #define BOOST_TT_TRAIT_NAME has_operator_divides_equal
 #define BOOST_TT_TRAIT_OP /=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,45 @@
 #define BOOST_TT_TRAIT_NAME has_operator_equal_to
 #define BOOST_TT_TRAIT_OP ==
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one pointer and one non pointer built-in */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ )\
+ )\
+ or\
+ /* two pointers but no inheritance */\
+ (\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ ) and not (\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type >::value or\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type >::value or\
+ boost::is_void< typename boost::remove_pointer<LHS>::type >::value or\
+ boost::is_void< typename boost::remove_pointer<RHS>::type >::value\
+ )\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,45 @@
 #define BOOST_TT_TRAIT_NAME has_operator_greater
 #define BOOST_TT_TRAIT_OP >
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one pointer and one non pointer built-in */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ )\
+ )\
+ or\
+ /* two pointers but no inheritance */\
+ (\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ ) and not (\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type >::value or\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type >::value or\
+ boost::is_void< typename boost::remove_pointer<LHS>::type >::value or\
+ boost::is_void< typename boost::remove_pointer<RHS>::type >::value\
+ )\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,45 @@
 #define BOOST_TT_TRAIT_NAME has_operator_greater_equal
 #define BOOST_TT_TRAIT_OP >=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one pointer and one non pointer built-in */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ )\
+ )\
+ or\
+ /* two pointers but no inheritance */\
+ (\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ ) and not (\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type >::value or\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type >::value or\
+ boost::is_void< typename boost::remove_pointer<LHS>::type >::value or\
+ boost::is_void< typename boost::remove_pointer<RHS>::type >::value\
+ )\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_left_shift
 #define BOOST_TT_TRAIT_OP <<
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_left_shift_equal
 #define BOOST_TT_TRAIT_OP <<=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,45 @@
 #define BOOST_TT_TRAIT_NAME has_operator_less
 #define BOOST_TT_TRAIT_OP <
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one pointer and one non pointer built-in */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ )\
+ )\
+ or\
+ /* two pointers but no inheritance */\
+ (\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ ) and not (\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type >::value or\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type >::value or\
+ boost::is_void< typename boost::remove_pointer<LHS>::type >::value or\
+ boost::is_void< typename boost::remove_pointer<RHS>::type >::value\
+ )\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,45 @@
 #define BOOST_TT_TRAIT_NAME has_operator_less_equal
 #define BOOST_TT_TRAIT_OP <=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one pointer and one non pointer built-in */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ )\
+ )\
+ or\
+ /* two pointers but no inheritance */\
+ (\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ ) and not (\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type >::value or\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type >::value or\
+ boost::is_void< typename boost::remove_pointer<LHS>::type >::value or\
+ boost::is_void< typename boost::remove_pointer<RHS>::type >::value\
+ )\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,32 @@
 #define BOOST_TT_TRAIT_NAME has_operator_logical_and
 #define BOOST_TT_TRAIT_OP &&
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* pointer with built-in non convertible to bool */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ not (\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_convertible < typename boost::remove_reference<RHS>::type, bool >::value\
+ )\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value and\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_convertible < typename boost::remove_reference<LHS>::type, bool >::value\
+ )\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

Modified: sandbox/type_traits/boost/type_traits/has_operator_logical_not.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_logical_not.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_logical_not.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,14 @@
 #define BOOST_TT_TRAIT_NAME has_operator_logical_not
 #define BOOST_TT_TRAIT_OP !
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ false
 
-#include <boost/type_traits/detail/has_prefix_unary_operator.hpp>
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,32 @@
 #define BOOST_TT_TRAIT_NAME has_operator_logical_or
 #define BOOST_TT_TRAIT_OP ||
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* pointer with built-in non convertible to bool */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ not (\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_convertible < typename boost::remove_reference<RHS>::type, bool >::value\
+ )\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value and\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_convertible < typename boost::remove_reference<LHS>::type, bool >::value\
+ )\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,48 @@
 #define BOOST_TT_TRAIT_NAME has_operator_minus
 #define BOOST_TT_TRAIT_OP -
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one is void* */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_void< typename boost::remove_pointer<LHS>::type >::value\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value and\
+ boost::is_void< typename boost::remove_pointer<RHS>::type >::value\
+ )\
+ or\
+ /* LHS==pointer!=void* and RHS==built-in non integral */\
+ (\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ not boost::is_void< typename boost::remove_pointer<LHS>::type >::value\
+ ) and (\
+ not boost::is_class < typename boost::remove_reference<RHS>::type >::value and\
+ not boost::is_union < typename boost::remove_reference<RHS>::type >::value and\
+ not boost::is_pointer< typename boost::remove_reference<RHS>::type >::value and\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* LHS=non pointer and RHS=pointer */\
+ (\
+ not boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ or\
+ /* two different pointers */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value and\
+ not boost::is_same< typename boost::remove_cv< typename boost::remove_reference<LHS>::type >::type, typename boost::remove_cv< typename boost::remove_reference<RHS>::type >::type >::value\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,29 @@
 #define BOOST_TT_TRAIT_NAME has_operator_minus_equal
 #define BOOST_TT_TRAIT_OP -=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* RHS==pointer */\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ or\
+ /* LHS==pointer and (LHS==void* or (RHS==builtin and RHS!=integral) */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ (\
+ boost::is_void< typename boost::remove_pointer<LHS>::type >::value\
+ or (\
+ not boost::is_class < typename boost::remove_reference<RHS>::type >::value and\
+ not boost::is_union < typename boost::remove_reference<RHS>::type >::value and\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_modulus
 #define BOOST_TT_TRAIT_OP %
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_modulus_equal
 #define BOOST_TT_TRAIT_OP %=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,19 @@
 #define BOOST_TT_TRAIT_NAME has_operator_multiplies
 #define BOOST_TT_TRAIT_OP *
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,19 @@
 #define BOOST_TT_TRAIT_NAME has_operator_multiplies_equal
 #define BOOST_TT_TRAIT_OP *=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,45 @@
 #define BOOST_TT_TRAIT_NAME has_operator_not_equal_to
 #define BOOST_TT_TRAIT_OP !=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one pointer and one non pointer built-in */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ and\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ )\
+ )\
+ or\
+ /* two pointers but no inheritance */\
+ (\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ ) and not (\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type >::value or\
+ boost::is_base_of< typename boost::remove_reference< typename boost::remove_pointer<RHS>::type >::type, typename boost::remove_reference< typename boost::remove_pointer<LHS>::type >::type >::value or\
+ boost::is_void< typename boost::remove_pointer<LHS>::type >::value or\
+ boost::is_void< typename boost::remove_pointer<RHS>::type >::value\
+ )\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,47 @@
 #define BOOST_TT_TRAIT_NAME has_operator_plus
 #define BOOST_TT_TRAIT_OP +
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* pointer with pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ or\
+ /* built-in non pointer non integral with pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value\
+ and not (\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value or\
+ std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ and not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one is void* */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_void< typename boost::remove_pointer<LHS>::type >::value\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value and\
+ boost::is_void< typename boost::remove_pointer<RHS>::type >::value\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,43 @@
 #define BOOST_TT_TRAIT_NAME has_operator_plus_equal
 #define BOOST_TT_TRAIT_OP +=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* one is void* */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_void< typename boost::remove_pointer<LHS>::type >::value\
+ ) or (\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value and\
+ boost::is_void< typename boost::remove_pointer<RHS>::type >::value\
+ )\
+ or\
+ /* two pointers */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ or\
+ /* LHS==pointer!=void* and RHS==non integral */\
+ (\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value and\
+ not boost::is_void< typename boost::remove_pointer<LHS>::type >::value\
+ ) and\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ or\
+ /* LHS==non bool and RHS==pointer */\
+ (\
+ not boost::is_same< bool, typename boost::remove_cv< typename boost::remove_reference<LHS>::type >::type >::value\
+ and boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
+
 
 #include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,17 +12,15 @@
 #define BOOST_TT_TRAIT_NAME has_operator_postfix_decrement
 #define BOOST_TT_TRAIT_OP --
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ boost::is_same< bool, typename boost::remove_cv< typename boost::remove_reference<LHS>::type >::type >::value
 
-#include <boost/type_traits/detail/has_postfix_unary_operator.hpp>
 
-namespace boost {
-
-template < typename R > struct BOOST_TT_TRAIT_NAME < bool, R > : ::boost::integral_constant<bool,false> { };
-
-}
+#include <boost/type_traits/detail/has_postfix_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,14 @@
 #define BOOST_TT_TRAIT_NAME has_operator_postfix_increment
 #define BOOST_TT_TRAIT_OP ++
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ false
 
-#include <boost/type_traits/detail/has_postfix_unary_operator.hpp>
+#include <boost/type_traits/detail/has_postfix_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,17 +12,15 @@
 #define BOOST_TT_TRAIT_NAME has_operator_prefix_decrement
 #define BOOST_TT_TRAIT_OP --
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ boost::is_same< bool, typename boost::remove_cv< typename boost::remove_reference<RHS>::type >::type >::value
 
-#include <boost/type_traits/detail/has_prefix_unary_operator.hpp>
 
-namespace boost {
-
-template < typename R > struct BOOST_TT_TRAIT_NAME < bool, R > : ::boost::integral_constant<bool,false> { };
-
-}
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,14 @@
 #define BOOST_TT_TRAIT_NAME has_operator_prefix_increment
 #define BOOST_TT_TRAIT_OP ++
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ false
 
-#include <boost/type_traits/detail/has_prefix_unary_operator.hpp>
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_right_shift
 #define BOOST_TT_TRAIT_OP >>
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,39 @@
 #define BOOST_TT_TRAIT_NAME has_operator_right_shift_equal
 #define BOOST_TT_TRAIT_OP >>=
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ /* two built-in, one non integer */\
+ (\
+ /* two builtin */\
+ not (\
+ boost::is_class < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_class < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_union < typename boost::remove_reference<RHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )\
+ and\
+ (\
+ /* one non integer */\
+ not std::numeric_limits< typename boost::remove_reference<LHS>::type >::is_integer\
+ or\
+ not std::numeric_limits< typename boost::remove_reference<RHS>::type >::is_integer\
+ )\
+ )\
+ or\
+ /* one pointer */\
+ (\
+ boost::is_pointer< typename boost::remove_reference<LHS>::type >::value or\
+ boost::is_pointer< typename boost::remove_reference<RHS>::type >::value\
+ )
 
-#include <boost/type_traits/detail/has_integer_binary_operator.hpp>
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

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-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,14 @@
 #define BOOST_TT_TRAIT_NAME has_operator_unary_minus
 #define BOOST_TT_TRAIT_OP -
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ false
 
-#include <boost/type_traits/detail/has_prefix_unary_operator.hpp>
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

Modified: sandbox/type_traits/boost/type_traits/has_operator_unary_plus.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_operator_unary_plus.hpp (original)
+++ sandbox/type_traits/boost/type_traits/has_operator_unary_plus.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// Copyright 2010 Frédéric Bron (frederic.bron_at_[hidden])
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 //
 // Use, modification and distribution are subject to the Boost Software License,
 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -12,11 +12,14 @@
 #define BOOST_TT_TRAIT_NAME has_operator_unary_plus
 #define BOOST_TT_TRAIT_OP +
 #define BOOST_TT_DEFAULT_RET void
+#define BOOST_TT_FORBIDDEN_IF\
+ false
 
-#include <boost/type_traits/detail/has_prefix_unary_operator.hpp>
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
 
 #undef BOOST_TT_TRAIT_NAME
 #undef BOOST_TT_TRAIT_OP
 #undef BOOST_TT_DEFAULT_RET
+#undef BOOST_TT_FORBIDDEN_IF
 
 #endif

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_bit_and.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_bit_and.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_bit_and.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_bit_and_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_bit_and_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_bit_and_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_bit_or.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_bit_or.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_bit_or.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_bit_or_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_bit_or_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_bit_or_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_bit_xor.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_bit_xor.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_bit_xor.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_bit_xor_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_bit_xor_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_bit_xor_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_divides.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_divides.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_divides.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_divides_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_divides_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_divides_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_equal_to.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_equal_to.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_equal_to.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_greater.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_greater.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_greater.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_greater_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_greater_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_greater_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_left_shift.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_left_shift.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_left_shift.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_left_shift_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_left_shift_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_left_shift_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_less.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_less.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_less.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_less_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_less_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_less_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_logical_and.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_logical_and.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_logical_and.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_logical_not.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_logical_not.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_logical_not.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_logical_or.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_logical_or.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_logical_or.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_minus.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_minus.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_minus.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_minus_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_minus_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_minus_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_modulus.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_modulus.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_modulus.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_modulus_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_modulus_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_modulus_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_multiplies.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_multiplies.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_multiplies.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_multiplies_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_multiplies_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_multiplies_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_not_equal_to.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_not_equal_to.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_not_equal_to.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_plus.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_plus.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_plus.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_plus_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_plus_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_plus_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_decrement.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_decrement.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_decrement.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_increment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_increment.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_postfix_increment.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_decrement.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_decrement.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_decrement.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_increment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_increment.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_prefix_increment.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_right_shift.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_right_shift.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_right_shift.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_right_shift_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_right_shift_equal.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_right_shift_equal.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_unary_minus.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_unary_minus.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_unary_minus.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/has_operator_unary_plus.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/has_operator_unary_plus.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/has_operator_unary_plus.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,5 +1,5 @@
 [/
- Copyright 2010 Frédéric Bron.
+ Copyright 2009-2011 Frédéric Bron.
   Distributed under the Boost Software License, Version 1.0.
   (See accompanying file LICENSE_1_0.txt or copy at
   http://www.boost.org/LICENSE_1_0.txt).

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/background.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/background.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/background.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -49,7 +49,7 @@
       method available to them.
     </p>
 <a name="boost_typetraits.background.type_traits"></a><h5>
-<a name="id2813597"></a>
+<a name="id3025565"></a>
       <a class="link" href="background.html#boost_typetraits.background.type_traits">Type Traits</a>
     </h5>
 <p>
@@ -77,7 +77,7 @@
       given.
     </p>
 <a name="boost_typetraits.background.implementation"></a><h5>
-<a name="id2812640"></a>
+<a name="id3024608"></a>
       <a class="link" href="background.html#boost_typetraits.background.implementation">Implementation</a>
     </h5>
 <p>
@@ -167,7 +167,7 @@
       in the default template.
     </p>
 <a name="boost_typetraits.background.optimized_copy"></a><h5>
-<a name="id2864125"></a>
+<a name="id3076093"></a>
       <a class="link" href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
     </h5>
 <p>
@@ -240,7 +240,7 @@
       otherwise it will call the "slow but safe version".
     </p>
 <a name="boost_typetraits.background.was_it_worth_it_"></a><h5>
-<a name="id2864588"></a>
+<a name="id3076556"></a>
       <a class="link" href="background.html#boost_typetraits.background.was_it_worth_it_">Was it worth it?</a>
     </h5>
 <p>
@@ -273,7 +273,7 @@
         </li>
 </ul></div>
 <div class="table">
-<a name="id2864656"></a><p class="title"><b>Table&#160;1.1.&#160;Time taken to copy 1000 elements using `copy&lt;const T*, T*&gt;` (times
+<a name="id3076624"></a><p class="title"><b>Table&#160;1.1.&#160;Time taken to copy 1000 elements using `copy&lt;const T*, T*&gt;` (times
       in micro-seconds)</b></p>
 <div class="table-contents"><table class="table" summary="Time taken to copy 1000 elements using `copy&lt;const T*, T*&gt;` (times
       in micro-seconds)">
@@ -372,7 +372,7 @@
 </table></div>
 </div>
 <br class="table-break"><a name="boost_typetraits.background.pair_of_references"></a><h5>
-<a name="id2864808"></a>
+<a name="id3076776"></a>
       <a class="link" href="background.html#boost_typetraits.background.pair_of_references">Pair of References</a>
     </h5>
 <p>
@@ -409,7 +409,7 @@
       to hold non-reference types, references, and constant references:
     </p>
 <div class="table">
-<a name="id2865115"></a><p class="title"><b>Table&#160;1.2.&#160;Required Constructor Argument Types</b></p>
+<a name="id3077083"></a><p class="title"><b>Table&#160;1.2.&#160;Required Constructor Argument Types</b></p>
 <div class="table-contents"><table class="table" summary="Required Constructor Argument Types">
 <colgroup>
 <col>
@@ -474,7 +474,7 @@
       adds a reference to its type, unless it is already a reference.
     </p>
 <div class="table">
-<a name="id2865231"></a><p class="title"><b>Table&#160;1.3.&#160;Using add_reference to synthesize the correct constructor type</b></p>
+<a name="id3077199"></a><p class="title"><b>Table&#160;1.3.&#160;Using add_reference to synthesize the correct constructor type</b></p>
 <div class="table-contents"><table class="table" summary="Using add_reference to synthesize the correct constructor type">
 <colgroup>
 <col>
@@ -590,7 +590,7 @@
       easier to maintain and easier to understand.
     </p>
 <a name="boost_typetraits.background.conclusion"></a><h5>
-<a name="id2865763"></a>
+<a name="id3077731"></a>
       <a class="link" href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
     </h5>
 <p>
@@ -603,7 +603,7 @@
       can be optimal as well as generic.
     </p>
 <a name="boost_typetraits.background.acknowledgements"></a><h5>
-<a name="id2865794"></a>
+<a name="id3077762"></a>
       <a class="link" href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
     </h5>
 <p>
@@ -611,7 +611,7 @@
       comments when preparing this article.
     </p>
 <a name="background.references"></a><a name="boost_typetraits.background.references"></a><h5>
-<a name="id2865821"></a>
+<a name="id3077789"></a>
       <a class="link" href="background.html#boost_typetraits.background.references">References</a>
     </h5>
 <div class="orderedlist"><ol class="orderedlist" type="1">
@@ -662,7 +662,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -40,7 +40,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/alignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/alignment.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/alignment.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -38,7 +38,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/function.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/function.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/function.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -35,7 +35,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/transform.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/transform.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/transform.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -90,7 +90,7 @@
 <span class="keyword">struct</span> <a class="link" href="../reference/remove_volatile.html" title="remove_volatile">remove_volatile</a><span class="special">;</span>
 </pre>
 <a name="boost_typetraits.category.transform.broken_compiler_workarounds_"></a><h5>
-<a name="id2869275"></a>
+<a name="id3081243"></a>
         <a class="link" href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
         Compiler Workarounds:</a>
       </h5>
@@ -148,7 +148,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -41,7 +41,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -106,7 +106,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -101,7 +101,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -39,7 +39,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/credits.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/credits.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/credits.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -55,7 +55,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -34,7 +34,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/copy.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/copy.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/copy.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -71,7 +71,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -58,7 +58,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/fill.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/fill.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/fill.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -65,7 +65,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/iter.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/iter.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/iter.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -74,7 +74,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/to_double.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -34,7 +34,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intrinsics.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intrinsics.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intrinsics.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -92,7 +92,7 @@
       of the following macros:
     </p>
 <div class="table">
-<a name="id2871156"></a><p class="title"><b>Table&#160;1.4.&#160;Macros for Compiler Intrinsics</b></p>
+<a name="id3083124"></a><p class="title"><b>Table&#160;1.4.&#160;Macros for Compiler Intrinsics</b></p>
 <div class="table-contents"><table class="table" summary="Macros for Compiler Intrinsics">
 <colgroup>
 <col>
@@ -332,7 +332,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intro.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intro.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/intro.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -41,7 +41,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/mpl.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/mpl.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/mpl.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -38,7 +38,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -159,7 +159,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_const.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2875711"></a><p class="title"><b>Table&#160;1.5.&#160;Examples</b></p>
+<a name="id3087679"></a><p class="title"><b>Table&#160;1.5.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -121,7 +121,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_cv.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -47,7 +47,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2876296"></a><p class="title"><b>Table&#160;1.6.&#160;Examples</b></p>
+<a name="id3088264"></a><p class="title"><b>Table&#160;1.6.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -124,7 +124,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -49,7 +49,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2876948"></a><p class="title"><b>Table&#160;1.7.&#160;Examples</b></p>
+<a name="id3088916"></a><p class="title"><b>Table&#160;1.7.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -123,7 +123,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2877533"></a><p class="title"><b>Table&#160;1.8.&#160;Examples</b></p>
+<a name="id3089501"></a><p class="title"><b>Table&#160;1.8.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -120,7 +120,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2878111"></a><p class="title"><b>Table&#160;1.9.&#160;Examples</b></p>
+<a name="id3090079"></a><p class="title"><b>Table&#160;1.9.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -122,7 +122,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/aligned_storage.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -38,7 +38,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/alignment_of.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -57,7 +57,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/decay.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/decay.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/decay.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -41,7 +41,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2879609"></a><p class="title"><b>Table&#160;1.10.&#160;Examples</b></p>
+<a name="id3091577"></a><p class="title"><b>Table&#160;1.10.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -127,7 +127,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/extent.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/extent.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/extent.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -71,7 +71,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/floating_point_promotion.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -42,7 +42,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2881219"></a><p class="title"><b>Table&#160;1.11.&#160;Examples</b></p>
+<a name="id3093187"></a><p class="title"><b>Table&#160;1.11.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -105,7 +105,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -52,7 +52,7 @@
         </p></td></tr>
 </table></div>
 <div class="table">
-<a name="id2881664"></a><p class="title"><b>Table&#160;1.12.&#160;Function Traits Members</b></p>
+<a name="id3093632"></a><p class="title"><b>Table&#160;1.12.&#160;Function Traits Members</b></p>
 <div class="table-contents"><table class="table" summary="Function Traits Members">
 <colgroup>
 <col>
@@ -115,7 +115,7 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id2881921"></a><p class="title"><b>Table&#160;1.13.&#160;Examples</b></p>
+<a name="id3093889"></a><p class="title"><b>Table&#160;1.13.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -260,7 +260,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -25,7 +25,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -49,7 +49,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -56,7 +56,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_copy.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -55,7 +55,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_cp_cons.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -25,7 +25,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_and.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_and.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_and.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -74,7 +74,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_and_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_and_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_and_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -81,7 +81,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_or.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_or.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_or.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -75,7 +75,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_or_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_or_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_or_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -80,7 +80,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_xor.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_xor.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_xor.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -75,7 +75,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_xor_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_xor_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_bit_xor_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -80,7 +80,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_divides.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_divides.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_divides.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -82,7 +82,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_divides_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_divides_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_divides_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -88,7 +88,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_equal_to.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_equal_to.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_equal_to.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -75,7 +75,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_greater.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_greater.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_greater.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -74,7 +74,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_greater_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_greater_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_greater_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -79,7 +79,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_left_shift.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_left_shift.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_left_shift.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -81,7 +81,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_left_shift_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_left_shift_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_left_shift_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -81,7 +81,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_less.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_less.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_less.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -74,7 +74,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_less_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_less_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_less_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -79,7 +79,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_and.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_and.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_and.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -81,7 +81,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_not.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_not.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_not.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -77,7 +77,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_or.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_or.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_logical_or.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -80,7 +80,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_minus.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_minus.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_minus.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -82,7 +82,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_minus_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_minus_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_minus_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -88,7 +88,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_modulus.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_modulus.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_modulus.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -74,7 +74,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_modulus_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_modulus_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_modulus_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -79,7 +79,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_multiplies.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_multiplies.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_multiplies.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -88,7 +88,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_multiplies_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_multiplies_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_multiplies_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -88,7 +88,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_not_equal_to.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_not_equal_to.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_not_equal_to.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -80,7 +80,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -82,7 +82,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_plus_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -88,7 +88,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_decrement.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_decrement.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_decrement.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -84,7 +84,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_increment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_increment.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_postfix_increment.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -84,7 +84,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_decrement.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_decrement.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_decrement.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -84,7 +84,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_increment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_increment.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_prefix_increment.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -84,7 +84,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_right_shift.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_right_shift.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_right_shift.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -81,7 +81,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_right_shift_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_right_shift_equal.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_right_shift_equal.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -81,7 +81,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_unary_minus.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_unary_minus.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_unary_minus.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -84,7 +84,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_unary_plus.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_unary_plus.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_operator_unary_plus.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -84,7 +84,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_assign.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -76,7 +76,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -86,7 +86,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_copy.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -82,7 +82,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_cp_cons.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -25,7 +25,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_def_cons.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -25,7 +25,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_destructor.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -79,7 +79,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -48,7 +48,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_constant.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -40,7 +40,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/integral_promotion.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -42,7 +42,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2920634"></a><p class="title"><b>Table&#160;1.14.&#160;Examples</b></p>
+<a name="id3132602"></a><p class="title"><b>Table&#160;1.14.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -106,7 +106,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_abstract.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -68,7 +68,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_arithmetic.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -57,7 +57,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_array.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -59,7 +59,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_base_of.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -90,7 +90,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_class.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -75,7 +75,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_complex.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -39,7 +39,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_compound.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -64,7 +64,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_const.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -68,7 +68,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_convertible.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -107,7 +107,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_empty.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -83,7 +83,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_enum.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -75,7 +75,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_floating_point.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -55,7 +55,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_function.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -123,7 +123,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_fundamental.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -60,7 +60,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_integral.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -56,7 +56,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -64,7 +64,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -64,7 +64,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_pointer.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -56,7 +56,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_object.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -74,7 +74,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_pod.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -80,7 +80,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_pointer.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -81,7 +81,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_polymorphic.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -66,7 +66,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_reference.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -63,7 +63,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -65,7 +65,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_scalar.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -74,7 +74,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_signed.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -68,7 +68,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_stateless.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -65,7 +65,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_union.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -73,7 +73,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_unsigned.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -69,7 +69,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -60,7 +60,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_volatile.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -60,7 +60,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_signed.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -47,7 +47,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2938553"></a><p class="title"><b>Table&#160;1.15.&#160;Examples</b></p>
+<a name="id3150521"></a><p class="title"><b>Table&#160;1.15.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -136,7 +136,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/make_unsigned.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -47,7 +47,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2939133"></a><p class="title"><b>Table&#160;1.16.&#160;Examples</b></p>
+<a name="id3151101"></a><p class="title"><b>Table&#160;1.16.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -137,7 +137,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/member_object.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/member_object.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/member_object.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -44,7 +44,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2939738"></a><p class="title"><b>Table&#160;1.17.&#160;Examples</b></p>
+<a name="id3151706"></a><p class="title"><b>Table&#160;1.17.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -142,7 +142,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/promote.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/promote.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/promote.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -44,7 +44,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2940497"></a><p class="title"><b>Table&#160;1.18.&#160;Examples</b></p>
+<a name="id3152465"></a><p class="title"><b>Table&#160;1.18.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -106,7 +106,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/rank.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/rank.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/rank.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -65,7 +65,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_all_extents.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -47,7 +47,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2941784"></a><p class="title"><b>Table&#160;1.19.&#160;Examples</b></p>
+<a name="id3153752"></a><p class="title"><b>Table&#160;1.19.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -135,7 +135,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_const.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2942446"></a><p class="title"><b>Table&#160;1.20.&#160;Examples</b></p>
+<a name="id3154414"></a><p class="title"><b>Table&#160;1.20.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -133,7 +133,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_cv.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2943091"></a><p class="title"><b>Table&#160;1.21.&#160;Examples</b></p>
+<a name="id3155059"></a><p class="title"><b>Table&#160;1.21.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -133,7 +133,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_extent.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -47,7 +47,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2943737"></a><p class="title"><b>Table&#160;1.22.&#160;Examples</b></p>
+<a name="id3155705"></a><p class="title"><b>Table&#160;1.22.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -133,7 +133,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_member_pointer.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_member_pointer.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_member_pointer.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -42,7 +42,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2945006"></a><p class="title"><b>Table&#160;1.24.&#160;Examples</b></p>
+<a name="id3156974"></a><p class="title"><b>Table&#160;1.24.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -145,7 +145,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_pointer.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2944413"></a><p class="title"><b>Table&#160;1.23.&#160;Examples</b></p>
+<a name="id3156381"></a><p class="title"><b>Table&#160;1.23.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -134,7 +134,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2945795"></a><p class="title"><b>Table&#160;1.25.&#160;Examples</b></p>
+<a name="id3157763"></a><p class="title"><b>Table&#160;1.25.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -121,7 +121,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_volatile.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -46,7 +46,7 @@
         or <code class="computeroutput"> <span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
       </p>
 <div class="table">
-<a name="id2946350"></a><p class="title"><b>Table&#160;1.26.&#160;Examples</b></p>
+<a name="id3158318"></a><p class="title"><b>Table&#160;1.26.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -136,7 +136,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/type_with_alignment.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -37,7 +37,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/user_defined.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/user_defined.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/user_defined.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -56,7 +56,7 @@
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"></td>
-<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<td align="right"><div class="copyright-footer">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven

Modified: sandbox/type_traits/libs/type_traits/doc/html/index.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/index.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/index.html 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -18,13 +18,13 @@
 <div><div class="author"><h3 class="author">
 <span class="firstname">various</span> <span class="surname">authors</span>
 </h3></div></div>
-<div><p class="copyright">Copyright &#169; 2000, 2010 Adobe Systems Inc, David Abrahams,
+<div><p class="copyright">Copyright &#169; 2000, 2011 Adobe Systems Inc, David Abrahams,
       Fr&#233;d&#233;ric Bron, Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant,
       Jesse Jones, Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven
       Watanabe</p></div>
 <div><div class="legalnotice">
-<a name="id2854014"></a><p>
+<a name="id3065982"></a><p>
         Distributed under the Boost Software License, Version 1.0. (See accompanying
         file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
       </p>
@@ -217,7 +217,7 @@
   </p>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: December 10, 2010 at 15:30:19 +0100</small></p></td>
+<td align="left"><p><small>Last revised: December 23, 2010 at 11:18:11 +0100</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Modified: sandbox/type_traits/libs/type_traits/doc/type_traits.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/type_traits.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/type_traits.qbk 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -7,7 +7,7 @@
 
 [library Boost.TypeTraits
     [quickbook 1.4]
- [copyright 2000 2010 Adobe Systems Inc, David Abrahams, Frédéric Bron,
+ [copyright 2000 2011 Adobe Systems Inc, David Abrahams, Frédéric Bron,
     Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones,
     Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen,
     Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven Watanabe]

Added: sandbox/type_traits/libs/type_traits/test/has_binary_logical_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_logical_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,836 @@
+// (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
+#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
+#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
+#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
+#define TEST_TTR(TYPE1,TYPE2,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (const internal&) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, const external&);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP (const internal_private&) const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (const returns_int&); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (const returns_void&); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (const returns_void_star&); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (const returns_double&); };
+
+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&); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&, const Base1&) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&, const Derived2&) { return true; }
+
+struct tag { };
+
+struct A { };
+struct B : public A { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, true);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+ // test with only two template parameters
+ TEST_TT(bool, bool, true);
+ TEST_TT(bool, char, true);
+ TEST_TT(bool, signed char, true);
+ TEST_TT(bool, short int, true);
+ TEST_TT(bool, int, true);
+ TEST_TT(bool, long int, true);
+ TEST_TT(bool, unsigned char, true);
+ TEST_TT(bool, unsigned short int, true);
+ TEST_TT(bool, unsigned int, true);
+ TEST_TT(bool, unsigned long int, true);
+ TEST_TT(bool, wchar_t, true);
+ TEST_TT(bool, float, true);
+ TEST_TT(bool, double, true);
+ TEST_TT(bool, long double, true);
+ TEST_TT(char, bool, true);
+ TEST_TT(char, char, true);
+ TEST_TT(char, signed char, true);
+ TEST_TT(char, short int, true);
+ TEST_TT(char, int, true);
+ TEST_TT(char, long int, true);
+ TEST_TT(char, unsigned char, true);
+ TEST_TT(char, unsigned short int, true);
+ TEST_TT(char, unsigned int, true);
+ TEST_TT(char, unsigned long int, true);
+ TEST_TT(char, wchar_t, true);
+ TEST_TT(char, float, true);
+ TEST_TT(char, double, true);
+ TEST_TT(char, long double, true);
+ TEST_TT(signed char, bool, true);
+ TEST_TT(signed char, char, true);
+ TEST_TT(signed char, signed char, true);
+ TEST_TT(signed char, short int, true);
+ TEST_TT(signed char, int, true);
+ TEST_TT(signed char, long int, true);
+ TEST_TT(signed char, unsigned char, true);
+ TEST_TT(signed char, unsigned short int, true);
+ TEST_TT(signed char, unsigned int, true);
+ TEST_TT(signed char, unsigned long int, true);
+ TEST_TT(signed char, wchar_t, true);
+ TEST_TT(signed char, float, true);
+ TEST_TT(signed char, double, true);
+ TEST_TT(signed char, long double, true);
+ TEST_TT(short int, bool, true);
+ TEST_TT(short int, char, true);
+ TEST_TT(short int, signed char, true);
+ TEST_TT(short int, short int, true);
+ TEST_TT(short int, int, true);
+ TEST_TT(short int, long int, true);
+ TEST_TT(short int, unsigned char, true);
+ TEST_TT(short int, unsigned short int, true);
+ TEST_TT(short int, unsigned int, true);
+ TEST_TT(short int, unsigned long int, true);
+ TEST_TT(short int, wchar_t, true);
+ TEST_TT(short int, float, true);
+ TEST_TT(short int, double, true);
+ TEST_TT(short int, long double, true);
+ TEST_TT(int, bool, true);
+ TEST_TT(int, char, true);
+ TEST_TT(int, signed char, true);
+ TEST_TT(int, short int, true);
+ TEST_TT(int, int, true);
+ TEST_TT(int, long int, true);
+ TEST_TT(int, unsigned char, true);
+ TEST_TT(int, unsigned short int, true);
+ TEST_TT(int, unsigned int, true);
+ TEST_TT(int, unsigned long int, true);
+ TEST_TT(int, wchar_t, true);
+ TEST_TT(int, float, true);
+ TEST_TT(int, double, true);
+ TEST_TT(int, long double, true);
+ TEST_TT(long int, bool, true);
+ TEST_TT(long int, char, true);
+ TEST_TT(long int, signed char, true);
+ TEST_TT(long int, short int, true);
+ TEST_TT(long int, int, true);
+ TEST_TT(long int, long int, true);
+ TEST_TT(long int, unsigned char, true);
+ TEST_TT(long int, unsigned short int, true);
+ TEST_TT(long int, unsigned int, true);
+ TEST_TT(long int, unsigned long int, true);
+ TEST_TT(long int, wchar_t, true);
+ TEST_TT(long int, float, true);
+ TEST_TT(long int, double, true);
+ TEST_TT(long int, long double, true);
+ TEST_TT(unsigned char, bool, true);
+ TEST_TT(unsigned char, char, true);
+ TEST_TT(unsigned char, signed char, true);
+ TEST_TT(unsigned char, short int, true);
+ TEST_TT(unsigned char, int, true);
+ TEST_TT(unsigned char, long int, true);
+ TEST_TT(unsigned char, unsigned char, true);
+ TEST_TT(unsigned char, unsigned short int, true);
+ TEST_TT(unsigned char, unsigned int, true);
+ TEST_TT(unsigned char, unsigned long int, true);
+ TEST_TT(unsigned char, wchar_t, true);
+ TEST_TT(unsigned char, float, true);
+ TEST_TT(unsigned char, double, true);
+ TEST_TT(unsigned char, long double, true);
+ TEST_TT(unsigned short int, bool, true);
+ TEST_TT(unsigned short int, char, true);
+ TEST_TT(unsigned short int, signed char, true);
+ TEST_TT(unsigned short int, short int, true);
+ TEST_TT(unsigned short int, int, true);
+ TEST_TT(unsigned short int, long int, true);
+ TEST_TT(unsigned short int, unsigned char, true);
+ TEST_TT(unsigned short int, unsigned short int, true);
+ TEST_TT(unsigned short int, unsigned int, true);
+ TEST_TT(unsigned short int, unsigned long int, true);
+ TEST_TT(unsigned short int, wchar_t, true);
+ TEST_TT(unsigned short int, float, true);
+ TEST_TT(unsigned short int, double, true);
+ TEST_TT(unsigned short int, long double, true);
+ TEST_TT(unsigned int, bool, true);
+ TEST_TT(unsigned int, char, true);
+ TEST_TT(unsigned int, signed char, true);
+ TEST_TT(unsigned int, short int, true);
+ TEST_TT(unsigned int, int, true);
+ TEST_TT(unsigned int, long int, true);
+ TEST_TT(unsigned int, unsigned char, true);
+ TEST_TT(unsigned int, unsigned short int, true);
+ TEST_TT(unsigned int, unsigned int, true);
+ TEST_TT(unsigned int, unsigned long int, true);
+ TEST_TT(unsigned int, wchar_t, true);
+ TEST_TT(unsigned int, float, true);
+ TEST_TT(unsigned int, double, true);
+ TEST_TT(unsigned int, long double, true);
+ TEST_TT(unsigned long int, bool, true);
+ TEST_TT(unsigned long int, char, true);
+ TEST_TT(unsigned long int, signed char, true);
+ TEST_TT(unsigned long int, short int, true);
+ TEST_TT(unsigned long int, int, true);
+ TEST_TT(unsigned long int, long int, true);
+ TEST_TT(unsigned long int, unsigned char, true);
+ TEST_TT(unsigned long int, unsigned short int, true);
+ TEST_TT(unsigned long int, unsigned int, true);
+ TEST_TT(unsigned long int, unsigned long int, true);
+ TEST_TT(unsigned long int, wchar_t, true);
+ TEST_TT(unsigned long int, float, true);
+ TEST_TT(unsigned long int, double, true);
+ TEST_TT(unsigned long int, long double, true);
+ TEST_TT(wchar_t, bool, true);
+ TEST_TT(wchar_t, char, true);
+ TEST_TT(wchar_t, signed char, true);
+ TEST_TT(wchar_t, short int, true);
+ TEST_TT(wchar_t, int, true);
+ TEST_TT(wchar_t, long int, true);
+ TEST_TT(wchar_t, unsigned char, true);
+ TEST_TT(wchar_t, unsigned short int, true);
+ TEST_TT(wchar_t, unsigned int, true);
+ TEST_TT(wchar_t, unsigned long int, true);
+ TEST_TT(wchar_t, wchar_t, true);
+ TEST_TT(wchar_t, float, true);
+ TEST_TT(wchar_t, double, true);
+ TEST_TT(wchar_t, long double, true);
+ TEST_TT(float, bool, true);
+ TEST_TT(float, char, true);
+ TEST_TT(float, signed char, true);
+ TEST_TT(float, short int, true);
+ TEST_TT(float, int, true);
+ TEST_TT(float, long int, true);
+ TEST_TT(float, unsigned char, true);
+ TEST_TT(float, unsigned short int, true);
+ TEST_TT(float, unsigned int, true);
+ TEST_TT(float, unsigned long int, true);
+ TEST_TT(float, wchar_t, true);
+ TEST_TT(float, float, true);
+ TEST_TT(float, double, true);
+ TEST_TT(float, long double, true);
+ TEST_TT(double, bool, true);
+ TEST_TT(double, char, true);
+ TEST_TT(double, signed char, true);
+ TEST_TT(double, short int, true);
+ TEST_TT(double, int, true);
+ TEST_TT(double, long int, true);
+ TEST_TT(double, unsigned char, true);
+ TEST_TT(double, unsigned short int, true);
+ TEST_TT(double, unsigned int, true);
+ TEST_TT(double, unsigned long int, true);
+ TEST_TT(double, wchar_t, true);
+ TEST_TT(double, float, true);
+ TEST_TT(double, double, true);
+ TEST_TT(double, long double, true);
+ TEST_TT(long double, bool, true);
+ TEST_TT(long double, char, true);
+ TEST_TT(long double, signed char, true);
+ TEST_TT(long double, short int, true);
+ TEST_TT(long double, int, true);
+ TEST_TT(long double, long int, true);
+ TEST_TT(long double, unsigned char, true);
+ TEST_TT(long double, unsigned short int, true);
+ TEST_TT(long double, unsigned int, true);
+ TEST_TT(long double, unsigned long int, true);
+ TEST_TT(long double, wchar_t, true);
+ TEST_TT(long double, float, true);
+ TEST_TT(long double, double, true);
+ TEST_TT(long double, long double, true);
+ TEST_TT(bool, void, false);
+ TEST_TT(void, bool, false);
+ TEST_TT(char, void, false);
+ TEST_TT(void, char, false);
+ TEST_TT(signed char, void, false);
+ TEST_TT(void, signed char, false);
+ TEST_TT(short int, void, false);
+ TEST_TT(void, short int, false);
+ TEST_TT(int, void, false);
+ TEST_TT(void, int, false);
+ TEST_TT(long int, void, false);
+ TEST_TT(void, long int, false);
+ TEST_TT(unsigned char, void, false);
+ TEST_TT(void, unsigned char, false);
+ TEST_TT(unsigned short int, void, false);
+ TEST_TT(void, unsigned short int, false);
+ TEST_TT(unsigned int, void, false);
+ TEST_TT(void, unsigned int, false);
+ TEST_TT(unsigned long int, void, false);
+ TEST_TT(void, unsigned long int, false);
+ TEST_TT(wchar_t, void, false);
+ TEST_TT(void, wchar_t, false);
+ TEST_TT(float, void, false);
+ TEST_TT(void, float, false);
+ TEST_TT(double, void, false);
+ TEST_TT(void, double, false);
+ TEST_TT(long double, void, false);
+ TEST_TT(void, long double, false);
+
+// test with three template parameters
+ TEST_TTR(bool, bool, bool, true);
+ TEST_TTR(bool, char, bool, true);
+ TEST_TTR(bool, signed char, bool, true);
+ TEST_TTR(bool, short int, bool, true);
+ TEST_TTR(bool, int, bool, true);
+ TEST_TTR(bool, long int, bool, true);
+ TEST_TTR(bool, unsigned char, bool, true);
+ TEST_TTR(bool, unsigned short int, bool, true);
+ TEST_TTR(bool, unsigned int, bool, true);
+ TEST_TTR(bool, unsigned long int, bool, true);
+ TEST_TTR(bool, wchar_t, bool, true);
+ TEST_TTR(bool, float, bool, true);
+ TEST_TTR(bool, double, bool, true);
+ TEST_TTR(bool, long double, bool, true);
+ TEST_TTR(char, bool, bool, true);
+ TEST_TTR(char, char, bool, true);
+ TEST_TTR(char, signed char, bool, true);
+ TEST_TTR(char, short int, bool, true);
+ TEST_TTR(char, int, bool, true);
+ TEST_TTR(char, long int, bool, true);
+ TEST_TTR(char, unsigned char, bool, true);
+ TEST_TTR(char, unsigned short int, bool, true);
+ TEST_TTR(char, unsigned int, bool, true);
+ TEST_TTR(char, unsigned long int, bool, true);
+ TEST_TTR(char, wchar_t, bool, true);
+ TEST_TTR(char, float, bool, true);
+ TEST_TTR(char, double, bool, true);
+ TEST_TTR(char, long double, bool, true);
+ TEST_TTR(signed char, bool, bool, true);
+ TEST_TTR(signed char, char, bool, true);
+ TEST_TTR(signed char, signed char, bool, true);
+ TEST_TTR(signed char, short int, bool, true);
+ TEST_TTR(signed char, int, bool, true);
+ TEST_TTR(signed char, long int, bool, true);
+ TEST_TTR(signed char, unsigned char, bool, true);
+ TEST_TTR(signed char, unsigned short int, bool, true);
+ TEST_TTR(signed char, unsigned int, bool, true);
+ TEST_TTR(signed char, unsigned long int, bool, true);
+ TEST_TTR(signed char, wchar_t, bool, true);
+ TEST_TTR(signed char, float, bool, true);
+ TEST_TTR(signed char, double, bool, true);
+ TEST_TTR(signed char, long double, bool, true);
+ TEST_TTR(short int, bool, bool, true);
+ TEST_TTR(short int, char, bool, true);
+ TEST_TTR(short int, signed char, bool, true);
+ TEST_TTR(short int, short int, bool, true);
+ TEST_TTR(short int, int, bool, true);
+ TEST_TTR(short int, long int, bool, true);
+ TEST_TTR(short int, unsigned char, bool, true);
+ TEST_TTR(short int, unsigned short int, bool, true);
+ TEST_TTR(short int, unsigned int, bool, true);
+ TEST_TTR(short int, unsigned long int, bool, true);
+ TEST_TTR(short int, wchar_t, bool, true);
+ TEST_TTR(short int, float, bool, true);
+ TEST_TTR(short int, double, bool, true);
+ TEST_TTR(short int, long double, bool, true);
+ TEST_TTR(int, bool, bool, true);
+ TEST_TTR(int, char, bool, true);
+ TEST_TTR(int, signed char, bool, true);
+ TEST_TTR(int, short int, bool, true);
+ TEST_TTR(int, int, bool, true);
+ TEST_TTR(int, long int, bool, true);
+ TEST_TTR(int, unsigned char, bool, true);
+ TEST_TTR(int, unsigned short int, bool, true);
+ TEST_TTR(int, unsigned int, bool, true);
+ TEST_TTR(int, unsigned long int, bool, true);
+ TEST_TTR(int, wchar_t, bool, true);
+ TEST_TTR(int, float, bool, true);
+ TEST_TTR(int, double, bool, true);
+ TEST_TTR(int, long double, bool, true);
+ TEST_TTR(long int, bool, bool, true);
+ TEST_TTR(long int, char, bool, true);
+ TEST_TTR(long int, signed char, bool, true);
+ TEST_TTR(long int, short int, bool, true);
+ TEST_TTR(long int, int, bool, true);
+ TEST_TTR(long int, long int, bool, true);
+ TEST_TTR(long int, unsigned char, bool, true);
+ TEST_TTR(long int, unsigned short int, bool, true);
+ TEST_TTR(long int, unsigned int, bool, true);
+ TEST_TTR(long int, unsigned long int, bool, true);
+ TEST_TTR(long int, wchar_t, bool, true);
+ TEST_TTR(long int, float, bool, true);
+ TEST_TTR(long int, double, bool, true);
+ TEST_TTR(long int, long double, bool, true);
+ TEST_TTR(unsigned char, bool, bool, true);
+ TEST_TTR(unsigned char, char, bool, true);
+ TEST_TTR(unsigned char, signed char, bool, true);
+ TEST_TTR(unsigned char, short int, bool, true);
+ TEST_TTR(unsigned char, int, bool, true);
+ TEST_TTR(unsigned char, long int, bool, true);
+ TEST_TTR(unsigned char, unsigned char, bool, true);
+ TEST_TTR(unsigned char, unsigned short int, bool, true);
+ TEST_TTR(unsigned char, unsigned int, bool, true);
+ TEST_TTR(unsigned char, unsigned long int, bool, true);
+ TEST_TTR(unsigned char, wchar_t, bool, true);
+ TEST_TTR(unsigned char, float, bool, true);
+ TEST_TTR(unsigned char, double, bool, true);
+ TEST_TTR(unsigned char, long double, bool, true);
+ TEST_TTR(unsigned short int, bool, bool, true);
+ TEST_TTR(unsigned short int, char, bool, true);
+ TEST_TTR(unsigned short int, signed char, bool, true);
+ TEST_TTR(unsigned short int, short int, bool, true);
+ TEST_TTR(unsigned short int, int, bool, true);
+ TEST_TTR(unsigned short int, long int, bool, true);
+ TEST_TTR(unsigned short int, unsigned char, bool, true);
+ TEST_TTR(unsigned short int, unsigned short int, bool, true);
+ TEST_TTR(unsigned short int, unsigned int, bool, true);
+ TEST_TTR(unsigned short int, unsigned long int, bool, true);
+ TEST_TTR(unsigned short int, wchar_t, bool, true);
+ TEST_TTR(unsigned short int, float, bool, true);
+ TEST_TTR(unsigned short int, double, bool, true);
+ TEST_TTR(unsigned short int, long double, bool, true);
+ TEST_TTR(unsigned int, bool, bool, true);
+ TEST_TTR(unsigned int, char, bool, true);
+ TEST_TTR(unsigned int, signed char, bool, true);
+ TEST_TTR(unsigned int, short int, bool, true);
+ TEST_TTR(unsigned int, int, bool, true);
+ TEST_TTR(unsigned int, long int, bool, true);
+ TEST_TTR(unsigned int, unsigned char, bool, true);
+ TEST_TTR(unsigned int, unsigned short int, bool, true);
+ TEST_TTR(unsigned int, unsigned int, bool, true);
+ TEST_TTR(unsigned int, unsigned long int, bool, true);
+ TEST_TTR(unsigned int, wchar_t, bool, true);
+ TEST_TTR(unsigned int, float, bool, true);
+ TEST_TTR(unsigned int, double, bool, true);
+ TEST_TTR(unsigned int, long double, bool, true);
+ TEST_TTR(unsigned long int, bool, bool, true);
+ TEST_TTR(unsigned long int, char, bool, true);
+ TEST_TTR(unsigned long int, signed char, bool, true);
+ TEST_TTR(unsigned long int, short int, bool, true);
+ TEST_TTR(unsigned long int, int, bool, true);
+ TEST_TTR(unsigned long int, long int, bool, true);
+ TEST_TTR(unsigned long int, unsigned char, bool, true);
+ TEST_TTR(unsigned long int, unsigned short int, bool, true);
+ TEST_TTR(unsigned long int, unsigned int, bool, true);
+ TEST_TTR(unsigned long int, unsigned long int, bool, true);
+ TEST_TTR(unsigned long int, wchar_t, bool, true);
+ TEST_TTR(unsigned long int, float, bool, true);
+ TEST_TTR(unsigned long int, double, bool, true);
+ TEST_TTR(unsigned long int, long double, bool, true);
+ TEST_TTR(wchar_t, bool, bool, true);
+ TEST_TTR(wchar_t, char, bool, true);
+ TEST_TTR(wchar_t, signed char, bool, true);
+ TEST_TTR(wchar_t, short int, bool, true);
+ TEST_TTR(wchar_t, int, bool, true);
+ TEST_TTR(wchar_t, long int, bool, true);
+ TEST_TTR(wchar_t, unsigned char, bool, true);
+ TEST_TTR(wchar_t, unsigned short int, bool, true);
+ TEST_TTR(wchar_t, unsigned int, bool, true);
+ TEST_TTR(wchar_t, unsigned long int, bool, true);
+ TEST_TTR(wchar_t, wchar_t, bool, true);
+ TEST_TTR(wchar_t, float, bool, true);
+ TEST_TTR(wchar_t, double, bool, true);
+ TEST_TTR(wchar_t, long double, bool, true);
+ TEST_TTR(float, bool, bool, true);
+ TEST_TTR(float, char, bool, true);
+ TEST_TTR(float, signed char, bool, true);
+ TEST_TTR(float, short int, bool, true);
+ TEST_TTR(float, int, bool, true);
+ TEST_TTR(float, long int, bool, true);
+ TEST_TTR(float, unsigned char, bool, true);
+ TEST_TTR(float, unsigned short int, bool, true);
+ TEST_TTR(float, unsigned int, bool, true);
+ TEST_TTR(float, unsigned long int, bool, true);
+ TEST_TTR(float, wchar_t, bool, true);
+ TEST_TTR(float, float, bool, true);
+ TEST_TTR(float, double, bool, true);
+ TEST_TTR(float, long double, bool, true);
+ TEST_TTR(double, bool, bool, true);
+ TEST_TTR(double, char, bool, true);
+ TEST_TTR(double, signed char, bool, true);
+ TEST_TTR(double, short int, bool, true);
+ TEST_TTR(double, int, bool, true);
+ TEST_TTR(double, long int, bool, true);
+ TEST_TTR(double, unsigned char, bool, true);
+ TEST_TTR(double, unsigned short int, bool, true);
+ TEST_TTR(double, unsigned int, bool, true);
+ TEST_TTR(double, unsigned long int, bool, true);
+ TEST_TTR(double, wchar_t, bool, true);
+ TEST_TTR(double, float, bool, true);
+ TEST_TTR(double, double, bool, true);
+ TEST_TTR(double, long double, bool, true);
+ TEST_TTR(long double, bool, bool, true);
+ TEST_TTR(long double, char, bool, true);
+ TEST_TTR(long double, signed char, bool, true);
+ TEST_TTR(long double, short int, bool, true);
+ TEST_TTR(long double, int, bool, true);
+ TEST_TTR(long double, long int, bool, true);
+ TEST_TTR(long double, unsigned char, bool, true);
+ TEST_TTR(long double, unsigned short int, bool, true);
+ TEST_TTR(long double, unsigned int, bool, true);
+ TEST_TTR(long double, unsigned long int, bool, true);
+ TEST_TTR(long double, wchar_t, bool, true);
+ TEST_TTR(long double, float, bool, true);
+ TEST_TTR(long double, double, bool, true);
+ TEST_TTR(long double, long double, bool, true);
+ TEST_TTR(bool, bool, tag, false);
+ TEST_TTR(bool, char, tag, false);
+ TEST_TTR(bool, signed char, tag, false);
+ TEST_TTR(bool, short int, tag, false);
+ TEST_TTR(bool, int, tag, false);
+ TEST_TTR(bool, long int, tag, false);
+ TEST_TTR(bool, unsigned char, tag, false);
+ TEST_TTR(bool, unsigned short int, tag, false);
+ TEST_TTR(bool, unsigned int, tag, false);
+ TEST_TTR(bool, unsigned long int, tag, false);
+ TEST_TTR(bool, wchar_t, tag, false);
+ TEST_TTR(bool, float, tag, false);
+ TEST_TTR(bool, double, tag, false);
+ TEST_TTR(bool, long double, tag, false);
+ TEST_TTR(char, bool, tag, false);
+ TEST_TTR(char, char, tag, false);
+ TEST_TTR(char, signed char, tag, false);
+ TEST_TTR(char, short int, tag, false);
+ TEST_TTR(char, int, tag, false);
+ TEST_TTR(char, long int, tag, false);
+ TEST_TTR(char, unsigned char, tag, false);
+ TEST_TTR(char, unsigned short int, tag, false);
+ TEST_TTR(char, unsigned int, tag, false);
+ TEST_TTR(char, unsigned long int, tag, false);
+ TEST_TTR(char, wchar_t, tag, false);
+ TEST_TTR(char, float, tag, false);
+ TEST_TTR(char, double, tag, false);
+ TEST_TTR(char, long double, tag, false);
+ TEST_TTR(signed char, bool, tag, false);
+ TEST_TTR(signed char, char, tag, false);
+ TEST_TTR(signed char, signed char, tag, false);
+ TEST_TTR(signed char, short int, tag, false);
+ TEST_TTR(signed char, int, tag, false);
+ TEST_TTR(signed char, long int, tag, false);
+ TEST_TTR(signed char, unsigned char, tag, false);
+ TEST_TTR(signed char, unsigned short int, tag, false);
+ TEST_TTR(signed char, unsigned int, tag, false);
+ TEST_TTR(signed char, unsigned long int, tag, false);
+ TEST_TTR(signed char, wchar_t, tag, false);
+ TEST_TTR(signed char, float, tag, false);
+ TEST_TTR(signed char, double, tag, false);
+ TEST_TTR(signed char, long double, tag, false);
+ TEST_TTR(short int, bool, tag, false);
+ TEST_TTR(short int, char, tag, false);
+ TEST_TTR(short int, signed char, tag, false);
+ TEST_TTR(short int, short int, tag, false);
+ TEST_TTR(short int, int, tag, false);
+ TEST_TTR(short int, long int, tag, false);
+ TEST_TTR(short int, unsigned char, tag, false);
+ TEST_TTR(short int, unsigned short int, tag, false);
+ TEST_TTR(short int, unsigned int, tag, false);
+ TEST_TTR(short int, unsigned long int, tag, false);
+ TEST_TTR(short int, wchar_t, tag, false);
+ TEST_TTR(short int, float, tag, false);
+ TEST_TTR(short int, double, tag, false);
+ TEST_TTR(short int, long double, tag, false);
+ TEST_TTR(int, bool, tag, false);
+ TEST_TTR(int, char, tag, false);
+ TEST_TTR(int, signed char, tag, false);
+ TEST_TTR(int, short int, tag, false);
+ TEST_TTR(int, int, tag, false);
+ TEST_TTR(int, long int, tag, false);
+ TEST_TTR(int, unsigned char, tag, false);
+ TEST_TTR(int, unsigned short int, tag, false);
+ TEST_TTR(int, unsigned int, tag, false);
+ TEST_TTR(int, unsigned long int, tag, false);
+ TEST_TTR(int, wchar_t, tag, false);
+ TEST_TTR(int, float, tag, false);
+ TEST_TTR(int, double, tag, false);
+ TEST_TTR(int, long double, tag, false);
+ TEST_TTR(long int, bool, tag, false);
+ TEST_TTR(long int, char, tag, false);
+ TEST_TTR(long int, signed char, tag, false);
+ TEST_TTR(long int, short int, tag, false);
+ TEST_TTR(long int, int, tag, false);
+ TEST_TTR(long int, long int, tag, false);
+ TEST_TTR(long int, unsigned char, tag, false);
+ TEST_TTR(long int, unsigned short int, tag, false);
+ TEST_TTR(long int, unsigned int, tag, false);
+ TEST_TTR(long int, unsigned long int, tag, false);
+ TEST_TTR(long int, wchar_t, tag, false);
+ TEST_TTR(long int, float, tag, false);
+ TEST_TTR(long int, double, tag, false);
+ TEST_TTR(long int, long double, tag, false);
+ TEST_TTR(unsigned char, bool, tag, false);
+ TEST_TTR(unsigned char, char, tag, false);
+ TEST_TTR(unsigned char, signed char, tag, false);
+ TEST_TTR(unsigned char, short int, tag, false);
+ TEST_TTR(unsigned char, int, tag, false);
+ TEST_TTR(unsigned char, long int, tag, false);
+ TEST_TTR(unsigned char, unsigned char, tag, false);
+ TEST_TTR(unsigned char, unsigned short int, tag, false);
+ TEST_TTR(unsigned char, unsigned int, tag, false);
+ TEST_TTR(unsigned char, unsigned long int, tag, false);
+ TEST_TTR(unsigned char, wchar_t, tag, false);
+ TEST_TTR(unsigned char, float, tag, false);
+ TEST_TTR(unsigned char, double, tag, false);
+ TEST_TTR(unsigned char, long double, tag, false);
+ TEST_TTR(unsigned short int, bool, tag, false);
+ TEST_TTR(unsigned short int, char, tag, false);
+ TEST_TTR(unsigned short int, signed char, tag, false);
+ TEST_TTR(unsigned short int, short int, tag, false);
+ TEST_TTR(unsigned short int, int, tag, false);
+ TEST_TTR(unsigned short int, long int, tag, false);
+ TEST_TTR(unsigned short int, unsigned char, tag, false);
+ TEST_TTR(unsigned short int, unsigned short int, tag, false);
+ TEST_TTR(unsigned short int, unsigned int, tag, false);
+ TEST_TTR(unsigned short int, unsigned long int, tag, false);
+ TEST_TTR(unsigned short int, wchar_t, tag, false);
+ TEST_TTR(unsigned short int, float, tag, false);
+ TEST_TTR(unsigned short int, double, tag, false);
+ TEST_TTR(unsigned short int, long double, tag, false);
+ TEST_TTR(unsigned int, bool, tag, false);
+ TEST_TTR(unsigned int, char, tag, false);
+ TEST_TTR(unsigned int, signed char, tag, false);
+ TEST_TTR(unsigned int, short int, tag, false);
+ TEST_TTR(unsigned int, int, tag, false);
+ TEST_TTR(unsigned int, long int, tag, false);
+ TEST_TTR(unsigned int, unsigned char, tag, false);
+ TEST_TTR(unsigned int, unsigned short int, tag, false);
+ TEST_TTR(unsigned int, unsigned int, tag, false);
+ TEST_TTR(unsigned int, unsigned long int, tag, false);
+ TEST_TTR(unsigned int, wchar_t, tag, false);
+ TEST_TTR(unsigned int, float, tag, false);
+ TEST_TTR(unsigned int, double, tag, false);
+ TEST_TTR(unsigned int, long double, tag, false);
+ TEST_TTR(unsigned long int, bool, tag, false);
+ TEST_TTR(unsigned long int, char, tag, false);
+ TEST_TTR(unsigned long int, signed char, tag, false);
+ TEST_TTR(unsigned long int, short int, tag, false);
+ TEST_TTR(unsigned long int, int, tag, false);
+ TEST_TTR(unsigned long int, long int, tag, false);
+ TEST_TTR(unsigned long int, unsigned char, tag, false);
+ TEST_TTR(unsigned long int, unsigned short int, tag, false);
+ TEST_TTR(unsigned long int, unsigned int, tag, false);
+ TEST_TTR(unsigned long int, unsigned long int, tag, false);
+ TEST_TTR(unsigned long int, wchar_t, tag, false);
+ TEST_TTR(unsigned long int, float, tag, false);
+ TEST_TTR(unsigned long int, double, tag, false);
+ TEST_TTR(unsigned long int, long double, tag, false);
+ TEST_TTR(wchar_t, bool, tag, false);
+ TEST_TTR(wchar_t, char, tag, false);
+ TEST_TTR(wchar_t, signed char, tag, false);
+ TEST_TTR(wchar_t, short int, tag, false);
+ TEST_TTR(wchar_t, int, tag, false);
+ TEST_TTR(wchar_t, long int, tag, false);
+ TEST_TTR(wchar_t, unsigned char, tag, false);
+ TEST_TTR(wchar_t, unsigned short int, tag, false);
+ TEST_TTR(wchar_t, unsigned int, tag, false);
+ TEST_TTR(wchar_t, unsigned long int, tag, false);
+ TEST_TTR(wchar_t, wchar_t, tag, false);
+ TEST_TTR(wchar_t, float, tag, false);
+ TEST_TTR(wchar_t, double, tag, false);
+ TEST_TTR(wchar_t, long double, tag, false);
+ TEST_TTR(float, bool, tag, false);
+ TEST_TTR(float, char, tag, false);
+ TEST_TTR(float, signed char, tag, false);
+ TEST_TTR(float, short int, tag, false);
+ TEST_TTR(float, int, tag, false);
+ TEST_TTR(float, long int, tag, false);
+ TEST_TTR(float, unsigned char, tag, false);
+ TEST_TTR(float, unsigned short int, tag, false);
+ TEST_TTR(float, unsigned int, tag, false);
+ TEST_TTR(float, unsigned long int, tag, false);
+ TEST_TTR(float, wchar_t, tag, false);
+ TEST_TTR(float, float, tag, false);
+ TEST_TTR(float, double, tag, false);
+ TEST_TTR(float, long double, tag, false);
+ TEST_TTR(double, bool, tag, false);
+ TEST_TTR(double, char, tag, false);
+ TEST_TTR(double, signed char, tag, false);
+ TEST_TTR(double, short int, tag, false);
+ TEST_TTR(double, int, tag, false);
+ TEST_TTR(double, long int, tag, false);
+ TEST_TTR(double, unsigned char, tag, false);
+ TEST_TTR(double, unsigned short int, tag, false);
+ TEST_TTR(double, unsigned int, tag, false);
+ TEST_TTR(double, unsigned long int, tag, false);
+ TEST_TTR(double, wchar_t, tag, false);
+ TEST_TTR(double, float, tag, false);
+ TEST_TTR(double, double, tag, false);
+ TEST_TTR(double, long double, tag, false);
+ TEST_TTR(long double, bool, tag, false);
+ TEST_TTR(long double, char, tag, false);
+ TEST_TTR(long double, signed char, tag, false);
+ TEST_TTR(long double, short int, tag, false);
+ TEST_TTR(long double, int, tag, false);
+ TEST_TTR(long double, long int, tag, false);
+ TEST_TTR(long double, unsigned char, tag, false);
+ TEST_TTR(long double, unsigned short int, tag, false);
+ TEST_TTR(long double, unsigned int, tag, false);
+ TEST_TTR(long double, unsigned long int, tag, false);
+ TEST_TTR(long double, wchar_t, tag, false);
+ TEST_TTR(long double, float, tag, false);
+ TEST_TTR(long double, double, tag, false);
+ TEST_TTR(long double, long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+ // pointers
+ TEST_TT(void*, bool, true);
+ TEST_TT(void*, int, true);
+ TEST_TT(void*, double, true);
+ TEST_TT(void*, A, false);
+ TEST_TT(void*, B, false);
+ TEST_TT(bool*, bool, true);
+ TEST_TT(bool*, int, true);
+ TEST_TT(bool*, double, true);
+ TEST_TT(bool*, A, false);
+ TEST_TT(bool*, B, false);
+ TEST_TT(int*, bool, true);
+ TEST_TT(int*, int, true);
+ TEST_TT(int*, double, true);
+ TEST_TT(int*, A, false);
+ TEST_TT(int*, B, false);
+ TEST_TT(double*, bool, true);
+ TEST_TT(double*, int, true);
+ TEST_TT(double*, double, true);
+ TEST_TT(double*, A, false);
+ TEST_TT(double*, B, false);
+ TEST_TT(A*, bool, true);
+ TEST_TT(A*, int, true);
+ TEST_TT(A*, double, true);
+ TEST_TT(A*, A, false);
+ TEST_TT(A*, B, false);
+ TEST_TT(B*, bool, true);
+ TEST_TT(B*, int, true);
+ TEST_TT(B*, double, true);
+ TEST_TT(B*, A, false);
+ TEST_TT(B*, B, false);
+ TEST_TT(bool, void*, true);
+ TEST_TT(bool, bool*, true);
+ TEST_TT(bool, int*, true);
+ TEST_TT(bool, double*, true);
+ TEST_TT(bool, A*, true);
+ TEST_TT(bool, B*, true);
+ TEST_TT(int, void*, true);
+ TEST_TT(int, bool*, true);
+ TEST_TT(int, int*, true);
+ TEST_TT(int, double*, true);
+ TEST_TT(int, A*, true);
+ TEST_TT(int, B*, true);
+ TEST_TT(double, void*, true);
+ TEST_TT(double, bool*, true);
+ TEST_TT(double, int*, true);
+ TEST_TT(double, double*, true);
+ TEST_TT(double, A*, true);
+ TEST_TT(double, B*, true);
+ TEST_TT(A, void*, false);
+ TEST_TT(A, bool*, false);
+ TEST_TT(A, int*, false);
+ TEST_TT(A, double*, false);
+ TEST_TT(A, A*, false);
+ TEST_TT(A, B*, false);
+ TEST_TT(B, void*, false);
+ TEST_TT(B, bool*, false);
+ TEST_TT(B, int*, false);
+ TEST_TT(B, double*, false);
+ TEST_TT(B, A*, false);
+ TEST_TT(B, B*, false);
+ TEST_TT(void*, void*, true);
+ TEST_TT(void*, bool*, true);
+ TEST_TT(void*, int*, true);
+ TEST_TT(void*, double*, true);
+ TEST_TT(void*, A*, true);
+ TEST_TT(void*, B*, true);
+ TEST_TT(bool*, void*, true);
+ TEST_TT(bool*, bool*, true);
+ TEST_TT(bool*, int*, true);
+ TEST_TT(bool*, double*, true);
+ TEST_TT(bool*, A*, true);
+ TEST_TT(bool*, B*, true);
+ TEST_TT(int*, void*, true);
+ TEST_TT(int*, bool*, true);
+ TEST_TT(int*, int*, true);
+ TEST_TT(int*, double*, true);
+ TEST_TT(int*, A*, true);
+ TEST_TT(int*, B*, true);
+ TEST_TT(double*, void*, true);
+ TEST_TT(double*, bool*, true);
+ TEST_TT(double*, int*, true);
+ TEST_TT(double*, double*, true);
+ TEST_TT(double*, A*, true);
+ TEST_TT(double*, B*, true);
+ TEST_TT(A*, void*, true);
+ TEST_TT(A*, bool*, true);
+ TEST_TT(A*, int*, true);
+ TEST_TT(A*, double*, true);
+ TEST_TT(A*, A*, true);
+ TEST_TT(A*, B*, true);
+ TEST_TT(B*, void*, true);
+ TEST_TT(B*, bool*, true);
+ TEST_TT(B*, int*, true);
+ TEST_TT(B*, double*, true);
+ TEST_TT(B*, A*, true);
+ TEST_TT(B*, B*, true);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_minus_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_minus_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,836 @@
+// (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
+#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
+#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
+#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
+#define TEST_TTR(TYPE1,TYPE2,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (const internal&) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, const external&);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP (const internal_private&) const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (const returns_int&); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (const returns_void&); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (const returns_void_star&); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (const returns_double&); };
+
+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&); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&, const Base1&) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&, const Derived2&) { return true; }
+
+struct tag { };
+
+struct A { };
+struct B : public A { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, true);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+ // test with only two template parameters
+ TEST_TT(bool, bool, true);
+ TEST_TT(bool, char, true);
+ TEST_TT(bool, signed char, true);
+ TEST_TT(bool, short int, true);
+ TEST_TT(bool, int, true);
+ TEST_TT(bool, long int, true);
+ TEST_TT(bool, unsigned char, true);
+ TEST_TT(bool, unsigned short int, true);
+ TEST_TT(bool, unsigned int, true);
+ TEST_TT(bool, unsigned long int, true);
+ TEST_TT(bool, wchar_t, true);
+ TEST_TT(bool, float, true);
+ TEST_TT(bool, double, true);
+ TEST_TT(bool, long double, true);
+ TEST_TT(char, bool, true);
+ TEST_TT(char, char, true);
+ TEST_TT(char, signed char, true);
+ TEST_TT(char, short int, true);
+ TEST_TT(char, int, true);
+ TEST_TT(char, long int, true);
+ TEST_TT(char, unsigned char, true);
+ TEST_TT(char, unsigned short int, true);
+ TEST_TT(char, unsigned int, true);
+ TEST_TT(char, unsigned long int, true);
+ TEST_TT(char, wchar_t, true);
+ TEST_TT(char, float, true);
+ TEST_TT(char, double, true);
+ TEST_TT(char, long double, true);
+ TEST_TT(signed char, bool, true);
+ TEST_TT(signed char, char, true);
+ TEST_TT(signed char, signed char, true);
+ TEST_TT(signed char, short int, true);
+ TEST_TT(signed char, int, true);
+ TEST_TT(signed char, long int, true);
+ TEST_TT(signed char, unsigned char, true);
+ TEST_TT(signed char, unsigned short int, true);
+ TEST_TT(signed char, unsigned int, true);
+ TEST_TT(signed char, unsigned long int, true);
+ TEST_TT(signed char, wchar_t, true);
+ TEST_TT(signed char, float, true);
+ TEST_TT(signed char, double, true);
+ TEST_TT(signed char, long double, true);
+ TEST_TT(short int, bool, true);
+ TEST_TT(short int, char, true);
+ TEST_TT(short int, signed char, true);
+ TEST_TT(short int, short int, true);
+ TEST_TT(short int, int, true);
+ TEST_TT(short int, long int, true);
+ TEST_TT(short int, unsigned char, true);
+ TEST_TT(short int, unsigned short int, true);
+ TEST_TT(short int, unsigned int, true);
+ TEST_TT(short int, unsigned long int, true);
+ TEST_TT(short int, wchar_t, true);
+ TEST_TT(short int, float, true);
+ TEST_TT(short int, double, true);
+ TEST_TT(short int, long double, true);
+ TEST_TT(int, bool, true);
+ TEST_TT(int, char, true);
+ TEST_TT(int, signed char, true);
+ TEST_TT(int, short int, true);
+ TEST_TT(int, int, true);
+ TEST_TT(int, long int, true);
+ TEST_TT(int, unsigned char, true);
+ TEST_TT(int, unsigned short int, true);
+ TEST_TT(int, unsigned int, true);
+ TEST_TT(int, unsigned long int, true);
+ TEST_TT(int, wchar_t, true);
+ TEST_TT(int, float, true);
+ TEST_TT(int, double, true);
+ TEST_TT(int, long double, true);
+ TEST_TT(long int, bool, true);
+ TEST_TT(long int, char, true);
+ TEST_TT(long int, signed char, true);
+ TEST_TT(long int, short int, true);
+ TEST_TT(long int, int, true);
+ TEST_TT(long int, long int, true);
+ TEST_TT(long int, unsigned char, true);
+ TEST_TT(long int, unsigned short int, true);
+ TEST_TT(long int, unsigned int, true);
+ TEST_TT(long int, unsigned long int, true);
+ TEST_TT(long int, wchar_t, true);
+ TEST_TT(long int, float, true);
+ TEST_TT(long int, double, true);
+ TEST_TT(long int, long double, true);
+ TEST_TT(unsigned char, bool, true);
+ TEST_TT(unsigned char, char, true);
+ TEST_TT(unsigned char, signed char, true);
+ TEST_TT(unsigned char, short int, true);
+ TEST_TT(unsigned char, int, true);
+ TEST_TT(unsigned char, long int, true);
+ TEST_TT(unsigned char, unsigned char, true);
+ TEST_TT(unsigned char, unsigned short int, true);
+ TEST_TT(unsigned char, unsigned int, true);
+ TEST_TT(unsigned char, unsigned long int, true);
+ TEST_TT(unsigned char, wchar_t, true);
+ TEST_TT(unsigned char, float, true);
+ TEST_TT(unsigned char, double, true);
+ TEST_TT(unsigned char, long double, true);
+ TEST_TT(unsigned short int, bool, true);
+ TEST_TT(unsigned short int, char, true);
+ TEST_TT(unsigned short int, signed char, true);
+ TEST_TT(unsigned short int, short int, true);
+ TEST_TT(unsigned short int, int, true);
+ TEST_TT(unsigned short int, long int, true);
+ TEST_TT(unsigned short int, unsigned char, true);
+ TEST_TT(unsigned short int, unsigned short int, true);
+ TEST_TT(unsigned short int, unsigned int, true);
+ TEST_TT(unsigned short int, unsigned long int, true);
+ TEST_TT(unsigned short int, wchar_t, true);
+ TEST_TT(unsigned short int, float, true);
+ TEST_TT(unsigned short int, double, true);
+ TEST_TT(unsigned short int, long double, true);
+ TEST_TT(unsigned int, bool, true);
+ TEST_TT(unsigned int, char, true);
+ TEST_TT(unsigned int, signed char, true);
+ TEST_TT(unsigned int, short int, true);
+ TEST_TT(unsigned int, int, true);
+ TEST_TT(unsigned int, long int, true);
+ TEST_TT(unsigned int, unsigned char, true);
+ TEST_TT(unsigned int, unsigned short int, true);
+ TEST_TT(unsigned int, unsigned int, true);
+ TEST_TT(unsigned int, unsigned long int, true);
+ TEST_TT(unsigned int, wchar_t, true);
+ TEST_TT(unsigned int, float, true);
+ TEST_TT(unsigned int, double, true);
+ TEST_TT(unsigned int, long double, true);
+ TEST_TT(unsigned long int, bool, true);
+ TEST_TT(unsigned long int, char, true);
+ TEST_TT(unsigned long int, signed char, true);
+ TEST_TT(unsigned long int, short int, true);
+ TEST_TT(unsigned long int, int, true);
+ TEST_TT(unsigned long int, long int, true);
+ TEST_TT(unsigned long int, unsigned char, true);
+ TEST_TT(unsigned long int, unsigned short int, true);
+ TEST_TT(unsigned long int, unsigned int, true);
+ TEST_TT(unsigned long int, unsigned long int, true);
+ TEST_TT(unsigned long int, wchar_t, true);
+ TEST_TT(unsigned long int, float, true);
+ TEST_TT(unsigned long int, double, true);
+ TEST_TT(unsigned long int, long double, true);
+ TEST_TT(wchar_t, bool, true);
+ TEST_TT(wchar_t, char, true);
+ TEST_TT(wchar_t, signed char, true);
+ TEST_TT(wchar_t, short int, true);
+ TEST_TT(wchar_t, int, true);
+ TEST_TT(wchar_t, long int, true);
+ TEST_TT(wchar_t, unsigned char, true);
+ TEST_TT(wchar_t, unsigned short int, true);
+ TEST_TT(wchar_t, unsigned int, true);
+ TEST_TT(wchar_t, unsigned long int, true);
+ TEST_TT(wchar_t, wchar_t, true);
+ TEST_TT(wchar_t, float, true);
+ TEST_TT(wchar_t, double, true);
+ TEST_TT(wchar_t, long double, true);
+ TEST_TT(float, bool, true);
+ TEST_TT(float, char, true);
+ TEST_TT(float, signed char, true);
+ TEST_TT(float, short int, true);
+ TEST_TT(float, int, true);
+ TEST_TT(float, long int, true);
+ TEST_TT(float, unsigned char, true);
+ TEST_TT(float, unsigned short int, true);
+ TEST_TT(float, unsigned int, true);
+ TEST_TT(float, unsigned long int, true);
+ TEST_TT(float, wchar_t, true);
+ TEST_TT(float, float, true);
+ TEST_TT(float, double, true);
+ TEST_TT(float, long double, true);
+ TEST_TT(double, bool, true);
+ TEST_TT(double, char, true);
+ TEST_TT(double, signed char, true);
+ TEST_TT(double, short int, true);
+ TEST_TT(double, int, true);
+ TEST_TT(double, long int, true);
+ TEST_TT(double, unsigned char, true);
+ TEST_TT(double, unsigned short int, true);
+ TEST_TT(double, unsigned int, true);
+ TEST_TT(double, unsigned long int, true);
+ TEST_TT(double, wchar_t, true);
+ TEST_TT(double, float, true);
+ TEST_TT(double, double, true);
+ TEST_TT(double, long double, true);
+ TEST_TT(long double, bool, true);
+ TEST_TT(long double, char, true);
+ TEST_TT(long double, signed char, true);
+ TEST_TT(long double, short int, true);
+ TEST_TT(long double, int, true);
+ TEST_TT(long double, long int, true);
+ TEST_TT(long double, unsigned char, true);
+ TEST_TT(long double, unsigned short int, true);
+ TEST_TT(long double, unsigned int, true);
+ TEST_TT(long double, unsigned long int, true);
+ TEST_TT(long double, wchar_t, true);
+ TEST_TT(long double, float, true);
+ TEST_TT(long double, double, true);
+ TEST_TT(long double, long double, true);
+ TEST_TT(bool, void, false);
+ TEST_TT(void, bool, false);
+ TEST_TT(char, void, false);
+ TEST_TT(void, char, false);
+ TEST_TT(signed char, void, false);
+ TEST_TT(void, signed char, false);
+ TEST_TT(short int, void, false);
+ TEST_TT(void, short int, false);
+ TEST_TT(int, void, false);
+ TEST_TT(void, int, false);
+ TEST_TT(long int, void, false);
+ TEST_TT(void, long int, false);
+ TEST_TT(unsigned char, void, false);
+ TEST_TT(void, unsigned char, false);
+ TEST_TT(unsigned short int, void, false);
+ TEST_TT(void, unsigned short int, false);
+ TEST_TT(unsigned int, void, false);
+ TEST_TT(void, unsigned int, false);
+ TEST_TT(unsigned long int, void, false);
+ TEST_TT(void, unsigned long int, false);
+ TEST_TT(wchar_t, void, false);
+ TEST_TT(void, wchar_t, false);
+ TEST_TT(float, void, false);
+ TEST_TT(void, float, false);
+ TEST_TT(double, void, false);
+ TEST_TT(void, double, false);
+ TEST_TT(long double, void, false);
+ TEST_TT(void, long double, false);
+
+// test with three template parameters
+ TEST_TTR(bool, bool, bool, true);
+ TEST_TTR(bool, char, bool, true);
+ TEST_TTR(bool, signed char, bool, true);
+ TEST_TTR(bool, short int, bool, true);
+ TEST_TTR(bool, int, bool, true);
+ TEST_TTR(bool, long int, bool, true);
+ TEST_TTR(bool, unsigned char, bool, true);
+ TEST_TTR(bool, unsigned short int, bool, true);
+ TEST_TTR(bool, unsigned int, bool, true);
+ TEST_TTR(bool, unsigned long int, bool, true);
+ TEST_TTR(bool, wchar_t, bool, true);
+ TEST_TTR(bool, float, bool, true);
+ TEST_TTR(bool, double, bool, true);
+ TEST_TTR(bool, long double, bool, true);
+ TEST_TTR(char, bool, bool, true);
+ TEST_TTR(char, char, bool, true);
+ TEST_TTR(char, signed char, bool, true);
+ TEST_TTR(char, short int, bool, true);
+ TEST_TTR(char, int, bool, true);
+ TEST_TTR(char, long int, bool, true);
+ TEST_TTR(char, unsigned char, bool, true);
+ TEST_TTR(char, unsigned short int, bool, true);
+ TEST_TTR(char, unsigned int, bool, true);
+ TEST_TTR(char, unsigned long int, bool, true);
+ TEST_TTR(char, wchar_t, bool, true);
+ TEST_TTR(char, float, bool, true);
+ TEST_TTR(char, double, bool, true);
+ TEST_TTR(char, long double, bool, true);
+ TEST_TTR(signed char, bool, bool, true);
+ TEST_TTR(signed char, char, bool, true);
+ TEST_TTR(signed char, signed char, bool, true);
+ TEST_TTR(signed char, short int, bool, true);
+ TEST_TTR(signed char, int, bool, true);
+ TEST_TTR(signed char, long int, bool, true);
+ TEST_TTR(signed char, unsigned char, bool, true);
+ TEST_TTR(signed char, unsigned short int, bool, true);
+ TEST_TTR(signed char, unsigned int, bool, true);
+ TEST_TTR(signed char, unsigned long int, bool, true);
+ TEST_TTR(signed char, wchar_t, bool, true);
+ TEST_TTR(signed char, float, bool, true);
+ TEST_TTR(signed char, double, bool, true);
+ TEST_TTR(signed char, long double, bool, true);
+ TEST_TTR(short int, bool, bool, true);
+ TEST_TTR(short int, char, bool, true);
+ TEST_TTR(short int, signed char, bool, true);
+ TEST_TTR(short int, short int, bool, true);
+ TEST_TTR(short int, int, bool, true);
+ TEST_TTR(short int, long int, bool, true);
+ TEST_TTR(short int, unsigned char, bool, true);
+ TEST_TTR(short int, unsigned short int, bool, true);
+ TEST_TTR(short int, unsigned int, bool, true);
+ TEST_TTR(short int, unsigned long int, bool, true);
+ TEST_TTR(short int, wchar_t, bool, true);
+ TEST_TTR(short int, float, bool, true);
+ TEST_TTR(short int, double, bool, true);
+ TEST_TTR(short int, long double, bool, true);
+ TEST_TTR(int, bool, bool, true);
+ TEST_TTR(int, char, bool, true);
+ TEST_TTR(int, signed char, bool, true);
+ TEST_TTR(int, short int, bool, true);
+ TEST_TTR(int, int, bool, true);
+ TEST_TTR(int, long int, bool, true);
+ TEST_TTR(int, unsigned char, bool, true);
+ TEST_TTR(int, unsigned short int, bool, true);
+ TEST_TTR(int, unsigned int, bool, true);
+ TEST_TTR(int, unsigned long int, bool, true);
+ TEST_TTR(int, wchar_t, bool, true);
+ TEST_TTR(int, float, bool, true);
+ TEST_TTR(int, double, bool, true);
+ TEST_TTR(int, long double, bool, true);
+ TEST_TTR(long int, bool, bool, true);
+ TEST_TTR(long int, char, bool, true);
+ TEST_TTR(long int, signed char, bool, true);
+ TEST_TTR(long int, short int, bool, true);
+ TEST_TTR(long int, int, bool, true);
+ TEST_TTR(long int, long int, bool, true);
+ TEST_TTR(long int, unsigned char, bool, true);
+ TEST_TTR(long int, unsigned short int, bool, true);
+ TEST_TTR(long int, unsigned int, bool, true);
+ TEST_TTR(long int, unsigned long int, bool, true);
+ TEST_TTR(long int, wchar_t, bool, true);
+ TEST_TTR(long int, float, bool, true);
+ TEST_TTR(long int, double, bool, true);
+ TEST_TTR(long int, long double, bool, true);
+ TEST_TTR(unsigned char, bool, bool, true);
+ TEST_TTR(unsigned char, char, bool, true);
+ TEST_TTR(unsigned char, signed char, bool, true);
+ TEST_TTR(unsigned char, short int, bool, true);
+ TEST_TTR(unsigned char, int, bool, true);
+ TEST_TTR(unsigned char, long int, bool, true);
+ TEST_TTR(unsigned char, unsigned char, bool, true);
+ TEST_TTR(unsigned char, unsigned short int, bool, true);
+ TEST_TTR(unsigned char, unsigned int, bool, true);
+ TEST_TTR(unsigned char, unsigned long int, bool, true);
+ TEST_TTR(unsigned char, wchar_t, bool, true);
+ TEST_TTR(unsigned char, float, bool, true);
+ TEST_TTR(unsigned char, double, bool, true);
+ TEST_TTR(unsigned char, long double, bool, true);
+ TEST_TTR(unsigned short int, bool, bool, true);
+ TEST_TTR(unsigned short int, char, bool, true);
+ TEST_TTR(unsigned short int, signed char, bool, true);
+ TEST_TTR(unsigned short int, short int, bool, true);
+ TEST_TTR(unsigned short int, int, bool, true);
+ TEST_TTR(unsigned short int, long int, bool, true);
+ TEST_TTR(unsigned short int, unsigned char, bool, true);
+ TEST_TTR(unsigned short int, unsigned short int, bool, true);
+ TEST_TTR(unsigned short int, unsigned int, bool, true);
+ TEST_TTR(unsigned short int, unsigned long int, bool, true);
+ TEST_TTR(unsigned short int, wchar_t, bool, true);
+ TEST_TTR(unsigned short int, float, bool, true);
+ TEST_TTR(unsigned short int, double, bool, true);
+ TEST_TTR(unsigned short int, long double, bool, true);
+ TEST_TTR(unsigned int, bool, bool, true);
+ TEST_TTR(unsigned int, char, bool, true);
+ TEST_TTR(unsigned int, signed char, bool, true);
+ TEST_TTR(unsigned int, short int, bool, true);
+ TEST_TTR(unsigned int, int, bool, true);
+ TEST_TTR(unsigned int, long int, bool, true);
+ TEST_TTR(unsigned int, unsigned char, bool, true);
+ TEST_TTR(unsigned int, unsigned short int, bool, true);
+ TEST_TTR(unsigned int, unsigned int, bool, true);
+ TEST_TTR(unsigned int, unsigned long int, bool, true);
+ TEST_TTR(unsigned int, wchar_t, bool, true);
+ TEST_TTR(unsigned int, float, bool, true);
+ TEST_TTR(unsigned int, double, bool, true);
+ TEST_TTR(unsigned int, long double, bool, true);
+ TEST_TTR(unsigned long int, bool, bool, true);
+ TEST_TTR(unsigned long int, char, bool, true);
+ TEST_TTR(unsigned long int, signed char, bool, true);
+ TEST_TTR(unsigned long int, short int, bool, true);
+ TEST_TTR(unsigned long int, int, bool, true);
+ TEST_TTR(unsigned long int, long int, bool, true);
+ TEST_TTR(unsigned long int, unsigned char, bool, true);
+ TEST_TTR(unsigned long int, unsigned short int, bool, true);
+ TEST_TTR(unsigned long int, unsigned int, bool, true);
+ TEST_TTR(unsigned long int, unsigned long int, bool, true);
+ TEST_TTR(unsigned long int, wchar_t, bool, true);
+ TEST_TTR(unsigned long int, float, bool, true);
+ TEST_TTR(unsigned long int, double, bool, true);
+ TEST_TTR(unsigned long int, long double, bool, true);
+ TEST_TTR(wchar_t, bool, bool, true);
+ TEST_TTR(wchar_t, char, bool, true);
+ TEST_TTR(wchar_t, signed char, bool, true);
+ TEST_TTR(wchar_t, short int, bool, true);
+ TEST_TTR(wchar_t, int, bool, true);
+ TEST_TTR(wchar_t, long int, bool, true);
+ TEST_TTR(wchar_t, unsigned char, bool, true);
+ TEST_TTR(wchar_t, unsigned short int, bool, true);
+ TEST_TTR(wchar_t, unsigned int, bool, true);
+ TEST_TTR(wchar_t, unsigned long int, bool, true);
+ TEST_TTR(wchar_t, wchar_t, bool, true);
+ TEST_TTR(wchar_t, float, bool, true);
+ TEST_TTR(wchar_t, double, bool, true);
+ TEST_TTR(wchar_t, long double, bool, true);
+ TEST_TTR(float, bool, bool, true);
+ TEST_TTR(float, char, bool, true);
+ TEST_TTR(float, signed char, bool, true);
+ TEST_TTR(float, short int, bool, true);
+ TEST_TTR(float, int, bool, true);
+ TEST_TTR(float, long int, bool, true);
+ TEST_TTR(float, unsigned char, bool, true);
+ TEST_TTR(float, unsigned short int, bool, true);
+ TEST_TTR(float, unsigned int, bool, true);
+ TEST_TTR(float, unsigned long int, bool, true);
+ TEST_TTR(float, wchar_t, bool, true);
+ TEST_TTR(float, float, bool, true);
+ TEST_TTR(float, double, bool, true);
+ TEST_TTR(float, long double, bool, true);
+ TEST_TTR(double, bool, bool, true);
+ TEST_TTR(double, char, bool, true);
+ TEST_TTR(double, signed char, bool, true);
+ TEST_TTR(double, short int, bool, true);
+ TEST_TTR(double, int, bool, true);
+ TEST_TTR(double, long int, bool, true);
+ TEST_TTR(double, unsigned char, bool, true);
+ TEST_TTR(double, unsigned short int, bool, true);
+ TEST_TTR(double, unsigned int, bool, true);
+ TEST_TTR(double, unsigned long int, bool, true);
+ TEST_TTR(double, wchar_t, bool, true);
+ TEST_TTR(double, float, bool, true);
+ TEST_TTR(double, double, bool, true);
+ TEST_TTR(double, long double, bool, true);
+ TEST_TTR(long double, bool, bool, true);
+ TEST_TTR(long double, char, bool, true);
+ TEST_TTR(long double, signed char, bool, true);
+ TEST_TTR(long double, short int, bool, true);
+ TEST_TTR(long double, int, bool, true);
+ TEST_TTR(long double, long int, bool, true);
+ TEST_TTR(long double, unsigned char, bool, true);
+ TEST_TTR(long double, unsigned short int, bool, true);
+ TEST_TTR(long double, unsigned int, bool, true);
+ TEST_TTR(long double, unsigned long int, bool, true);
+ TEST_TTR(long double, wchar_t, bool, true);
+ TEST_TTR(long double, float, bool, true);
+ TEST_TTR(long double, double, bool, true);
+ TEST_TTR(long double, long double, bool, true);
+ TEST_TTR(bool, bool, tag, false);
+ TEST_TTR(bool, char, tag, false);
+ TEST_TTR(bool, signed char, tag, false);
+ TEST_TTR(bool, short int, tag, false);
+ TEST_TTR(bool, int, tag, false);
+ TEST_TTR(bool, long int, tag, false);
+ TEST_TTR(bool, unsigned char, tag, false);
+ TEST_TTR(bool, unsigned short int, tag, false);
+ TEST_TTR(bool, unsigned int, tag, false);
+ TEST_TTR(bool, unsigned long int, tag, false);
+ TEST_TTR(bool, wchar_t, tag, false);
+ TEST_TTR(bool, float, tag, false);
+ TEST_TTR(bool, double, tag, false);
+ TEST_TTR(bool, long double, tag, false);
+ TEST_TTR(char, bool, tag, false);
+ TEST_TTR(char, char, tag, false);
+ TEST_TTR(char, signed char, tag, false);
+ TEST_TTR(char, short int, tag, false);
+ TEST_TTR(char, int, tag, false);
+ TEST_TTR(char, long int, tag, false);
+ TEST_TTR(char, unsigned char, tag, false);
+ TEST_TTR(char, unsigned short int, tag, false);
+ TEST_TTR(char, unsigned int, tag, false);
+ TEST_TTR(char, unsigned long int, tag, false);
+ TEST_TTR(char, wchar_t, tag, false);
+ TEST_TTR(char, float, tag, false);
+ TEST_TTR(char, double, tag, false);
+ TEST_TTR(char, long double, tag, false);
+ TEST_TTR(signed char, bool, tag, false);
+ TEST_TTR(signed char, char, tag, false);
+ TEST_TTR(signed char, signed char, tag, false);
+ TEST_TTR(signed char, short int, tag, false);
+ TEST_TTR(signed char, int, tag, false);
+ TEST_TTR(signed char, long int, tag, false);
+ TEST_TTR(signed char, unsigned char, tag, false);
+ TEST_TTR(signed char, unsigned short int, tag, false);
+ TEST_TTR(signed char, unsigned int, tag, false);
+ TEST_TTR(signed char, unsigned long int, tag, false);
+ TEST_TTR(signed char, wchar_t, tag, false);
+ TEST_TTR(signed char, float, tag, false);
+ TEST_TTR(signed char, double, tag, false);
+ TEST_TTR(signed char, long double, tag, false);
+ TEST_TTR(short int, bool, tag, false);
+ TEST_TTR(short int, char, tag, false);
+ TEST_TTR(short int, signed char, tag, false);
+ TEST_TTR(short int, short int, tag, false);
+ TEST_TTR(short int, int, tag, false);
+ TEST_TTR(short int, long int, tag, false);
+ TEST_TTR(short int, unsigned char, tag, false);
+ TEST_TTR(short int, unsigned short int, tag, false);
+ TEST_TTR(short int, unsigned int, tag, false);
+ TEST_TTR(short int, unsigned long int, tag, false);
+ TEST_TTR(short int, wchar_t, tag, false);
+ TEST_TTR(short int, float, tag, false);
+ TEST_TTR(short int, double, tag, false);
+ TEST_TTR(short int, long double, tag, false);
+ TEST_TTR(int, bool, tag, false);
+ TEST_TTR(int, char, tag, false);
+ TEST_TTR(int, signed char, tag, false);
+ TEST_TTR(int, short int, tag, false);
+ TEST_TTR(int, int, tag, false);
+ TEST_TTR(int, long int, tag, false);
+ TEST_TTR(int, unsigned char, tag, false);
+ TEST_TTR(int, unsigned short int, tag, false);
+ TEST_TTR(int, unsigned int, tag, false);
+ TEST_TTR(int, unsigned long int, tag, false);
+ TEST_TTR(int, wchar_t, tag, false);
+ TEST_TTR(int, float, tag, false);
+ TEST_TTR(int, double, tag, false);
+ TEST_TTR(int, long double, tag, false);
+ TEST_TTR(long int, bool, tag, false);
+ TEST_TTR(long int, char, tag, false);
+ TEST_TTR(long int, signed char, tag, false);
+ TEST_TTR(long int, short int, tag, false);
+ TEST_TTR(long int, int, tag, false);
+ TEST_TTR(long int, long int, tag, false);
+ TEST_TTR(long int, unsigned char, tag, false);
+ TEST_TTR(long int, unsigned short int, tag, false);
+ TEST_TTR(long int, unsigned int, tag, false);
+ TEST_TTR(long int, unsigned long int, tag, false);
+ TEST_TTR(long int, wchar_t, tag, false);
+ TEST_TTR(long int, float, tag, false);
+ TEST_TTR(long int, double, tag, false);
+ TEST_TTR(long int, long double, tag, false);
+ TEST_TTR(unsigned char, bool, tag, false);
+ TEST_TTR(unsigned char, char, tag, false);
+ TEST_TTR(unsigned char, signed char, tag, false);
+ TEST_TTR(unsigned char, short int, tag, false);
+ TEST_TTR(unsigned char, int, tag, false);
+ TEST_TTR(unsigned char, long int, tag, false);
+ TEST_TTR(unsigned char, unsigned char, tag, false);
+ TEST_TTR(unsigned char, unsigned short int, tag, false);
+ TEST_TTR(unsigned char, unsigned int, tag, false);
+ TEST_TTR(unsigned char, unsigned long int, tag, false);
+ TEST_TTR(unsigned char, wchar_t, tag, false);
+ TEST_TTR(unsigned char, float, tag, false);
+ TEST_TTR(unsigned char, double, tag, false);
+ TEST_TTR(unsigned char, long double, tag, false);
+ TEST_TTR(unsigned short int, bool, tag, false);
+ TEST_TTR(unsigned short int, char, tag, false);
+ TEST_TTR(unsigned short int, signed char, tag, false);
+ TEST_TTR(unsigned short int, short int, tag, false);
+ TEST_TTR(unsigned short int, int, tag, false);
+ TEST_TTR(unsigned short int, long int, tag, false);
+ TEST_TTR(unsigned short int, unsigned char, tag, false);
+ TEST_TTR(unsigned short int, unsigned short int, tag, false);
+ TEST_TTR(unsigned short int, unsigned int, tag, false);
+ TEST_TTR(unsigned short int, unsigned long int, tag, false);
+ TEST_TTR(unsigned short int, wchar_t, tag, false);
+ TEST_TTR(unsigned short int, float, tag, false);
+ TEST_TTR(unsigned short int, double, tag, false);
+ TEST_TTR(unsigned short int, long double, tag, false);
+ TEST_TTR(unsigned int, bool, tag, false);
+ TEST_TTR(unsigned int, char, tag, false);
+ TEST_TTR(unsigned int, signed char, tag, false);
+ TEST_TTR(unsigned int, short int, tag, false);
+ TEST_TTR(unsigned int, int, tag, false);
+ TEST_TTR(unsigned int, long int, tag, false);
+ TEST_TTR(unsigned int, unsigned char, tag, false);
+ TEST_TTR(unsigned int, unsigned short int, tag, false);
+ TEST_TTR(unsigned int, unsigned int, tag, false);
+ TEST_TTR(unsigned int, unsigned long int, tag, false);
+ TEST_TTR(unsigned int, wchar_t, tag, false);
+ TEST_TTR(unsigned int, float, tag, false);
+ TEST_TTR(unsigned int, double, tag, false);
+ TEST_TTR(unsigned int, long double, tag, false);
+ TEST_TTR(unsigned long int, bool, tag, false);
+ TEST_TTR(unsigned long int, char, tag, false);
+ TEST_TTR(unsigned long int, signed char, tag, false);
+ TEST_TTR(unsigned long int, short int, tag, false);
+ TEST_TTR(unsigned long int, int, tag, false);
+ TEST_TTR(unsigned long int, long int, tag, false);
+ TEST_TTR(unsigned long int, unsigned char, tag, false);
+ TEST_TTR(unsigned long int, unsigned short int, tag, false);
+ TEST_TTR(unsigned long int, unsigned int, tag, false);
+ TEST_TTR(unsigned long int, unsigned long int, tag, false);
+ TEST_TTR(unsigned long int, wchar_t, tag, false);
+ TEST_TTR(unsigned long int, float, tag, false);
+ TEST_TTR(unsigned long int, double, tag, false);
+ TEST_TTR(unsigned long int, long double, tag, false);
+ TEST_TTR(wchar_t, bool, tag, false);
+ TEST_TTR(wchar_t, char, tag, false);
+ TEST_TTR(wchar_t, signed char, tag, false);
+ TEST_TTR(wchar_t, short int, tag, false);
+ TEST_TTR(wchar_t, int, tag, false);
+ TEST_TTR(wchar_t, long int, tag, false);
+ TEST_TTR(wchar_t, unsigned char, tag, false);
+ TEST_TTR(wchar_t, unsigned short int, tag, false);
+ TEST_TTR(wchar_t, unsigned int, tag, false);
+ TEST_TTR(wchar_t, unsigned long int, tag, false);
+ TEST_TTR(wchar_t, wchar_t, tag, false);
+ TEST_TTR(wchar_t, float, tag, false);
+ TEST_TTR(wchar_t, double, tag, false);
+ TEST_TTR(wchar_t, long double, tag, false);
+ TEST_TTR(float, bool, tag, false);
+ TEST_TTR(float, char, tag, false);
+ TEST_TTR(float, signed char, tag, false);
+ TEST_TTR(float, short int, tag, false);
+ TEST_TTR(float, int, tag, false);
+ TEST_TTR(float, long int, tag, false);
+ TEST_TTR(float, unsigned char, tag, false);
+ TEST_TTR(float, unsigned short int, tag, false);
+ TEST_TTR(float, unsigned int, tag, false);
+ TEST_TTR(float, unsigned long int, tag, false);
+ TEST_TTR(float, wchar_t, tag, false);
+ TEST_TTR(float, float, tag, false);
+ TEST_TTR(float, double, tag, false);
+ TEST_TTR(float, long double, tag, false);
+ TEST_TTR(double, bool, tag, false);
+ TEST_TTR(double, char, tag, false);
+ TEST_TTR(double, signed char, tag, false);
+ TEST_TTR(double, short int, tag, false);
+ TEST_TTR(double, int, tag, false);
+ TEST_TTR(double, long int, tag, false);
+ TEST_TTR(double, unsigned char, tag, false);
+ TEST_TTR(double, unsigned short int, tag, false);
+ TEST_TTR(double, unsigned int, tag, false);
+ TEST_TTR(double, unsigned long int, tag, false);
+ TEST_TTR(double, wchar_t, tag, false);
+ TEST_TTR(double, float, tag, false);
+ TEST_TTR(double, double, tag, false);
+ TEST_TTR(double, long double, tag, false);
+ TEST_TTR(long double, bool, tag, false);
+ TEST_TTR(long double, char, tag, false);
+ TEST_TTR(long double, signed char, tag, false);
+ TEST_TTR(long double, short int, tag, false);
+ TEST_TTR(long double, int, tag, false);
+ TEST_TTR(long double, long int, tag, false);
+ TEST_TTR(long double, unsigned char, tag, false);
+ TEST_TTR(long double, unsigned short int, tag, false);
+ TEST_TTR(long double, unsigned int, tag, false);
+ TEST_TTR(long double, unsigned long int, tag, false);
+ TEST_TTR(long double, wchar_t, tag, false);
+ TEST_TTR(long double, float, tag, false);
+ TEST_TTR(long double, double, tag, false);
+ TEST_TTR(long double, long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+ // pointers
+ TEST_TT(void*, bool, false);
+ TEST_TT(void*, int, false);
+ TEST_TT(void*, double, false);
+ TEST_TT(void*, A, false);
+ TEST_TT(void*, B, false);
+ TEST_TT(bool*, bool, true);
+ TEST_TT(bool*, int, true);
+ TEST_TT(bool*, double, false);
+ TEST_TT(bool*, A, false);
+ TEST_TT(bool*, B, false);
+ TEST_TT(int*, bool, true);
+ TEST_TT(int*, int, true);
+ TEST_TT(int*, double, false);
+ TEST_TT(int*, A, false);
+ TEST_TT(int*, B, false);
+ TEST_TT(double*, bool, true);
+ TEST_TT(double*, int, true);
+ TEST_TT(double*, double, false);
+ TEST_TT(double*, A, false);
+ TEST_TT(double*, B, false);
+ TEST_TT(A*, bool, true);
+ TEST_TT(A*, int, true);
+ TEST_TT(A*, double, false);
+ TEST_TT(A*, A, false);
+ TEST_TT(A*, B, false);
+ TEST_TT(B*, bool, true);
+ TEST_TT(B*, int, true);
+ TEST_TT(B*, double, false);
+ TEST_TT(B*, A, false);
+ TEST_TT(B*, B, false);
+ TEST_TT(bool, void*, false);
+ TEST_TT(bool, bool*, false);
+ TEST_TT(bool, int*, false);
+ TEST_TT(bool, double*, false);
+ TEST_TT(bool, A*, false);
+ TEST_TT(bool, B*, false);
+ TEST_TT(int, void*, false);
+ TEST_TT(int, bool*, false);
+ TEST_TT(int, int*, false);
+ TEST_TT(int, double*, false);
+ TEST_TT(int, A*, false);
+ TEST_TT(int, B*, false);
+ TEST_TT(double, void*, false);
+ TEST_TT(double, bool*, false);
+ TEST_TT(double, int*, false);
+ TEST_TT(double, double*, false);
+ TEST_TT(double, A*, false);
+ TEST_TT(double, B*, false);
+ TEST_TT(A, void*, false);
+ TEST_TT(A, bool*, false);
+ TEST_TT(A, int*, false);
+ TEST_TT(A, double*, false);
+ TEST_TT(A, A*, false);
+ TEST_TT(A, B*, false);
+ TEST_TT(B, void*, false);
+ TEST_TT(B, bool*, false);
+ TEST_TT(B, int*, false);
+ TEST_TT(B, double*, false);
+ TEST_TT(B, A*, false);
+ TEST_TT(B, B*, false);
+ TEST_TT(void*, void*, false);
+ TEST_TT(void*, bool*, false);
+ TEST_TT(void*, int*, false);
+ TEST_TT(void*, double*, false);
+ TEST_TT(void*, A*, false);
+ TEST_TT(void*, B*, false);
+ TEST_TT(bool*, void*, false);
+ TEST_TT(bool*, bool*, true);
+ TEST_TT(bool*, int*, false);
+ TEST_TT(bool*, double*, false);
+ TEST_TT(bool*, A*, false);
+ TEST_TT(bool*, B*, false);
+ TEST_TT(int*, void*, false);
+ TEST_TT(int*, bool*, false);
+ TEST_TT(int*, int*, true);
+ TEST_TT(int*, double*, false);
+ TEST_TT(int*, A*, false);
+ TEST_TT(int*, B*, false);
+ TEST_TT(double*, void*, false);
+ TEST_TT(double*, bool*, false);
+ TEST_TT(double*, int*, false);
+ TEST_TT(double*, double*, true);
+ TEST_TT(double*, A*, false);
+ TEST_TT(double*, B*, false);
+ TEST_TT(A*, void*, false);
+ TEST_TT(A*, bool*, false);
+ TEST_TT(A*, int*, false);
+ TEST_TT(A*, double*, false);
+ TEST_TT(A*, A*, true);
+ TEST_TT(A*, B*, false);
+ TEST_TT(B*, void*, false);
+ TEST_TT(B*, bool*, false);
+ TEST_TT(B*, int*, false);
+ TEST_TT(B*, double*, false);
+ TEST_TT(B*, A*, false);
+ TEST_TT(B*, B*, true);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/has_binary_operator_test.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_binary_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
+++ (empty file)
@@ -1,737 +0,0 @@
-// (C) Copyright Frederic Bron 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>
-#include <vector>
-
-// 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
-#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
-#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
-#define TEST_TTR(TYPE1,TYPE2,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
-
-namespace {
-
-struct ret { };
-
-struct without { };
-
-struct internal { ret operator BOOST_TT_TRAIT_OP (const internal&) const; };
-
-struct external { };
-ret operator BOOST_TT_TRAIT_OP (const external&, const external&);
-
-class internal_private { ret operator BOOST_TT_TRAIT_OP (const internal_private&) const; };
-
-struct returns_int { int operator BOOST_TT_TRAIT_OP (const returns_int&); };
-
-struct returns_void { void operator BOOST_TT_TRAIT_OP (const returns_void&); };
-
-struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (const returns_void_star&); };
-
-struct returns_double { double operator BOOST_TT_TRAIT_OP (const returns_double&); };
-
-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&); };
-
-class Base1 { };
-class Derived1 : public Base1 { };
-
-bool operator BOOST_TT_TRAIT_OP (const Base1&, const Base1&) { return true; }
-
-class Base2 { };
-struct Derived2 : public Base2 {
- Derived2(int); // to check if it works with a class that is not default constructible
-};
-
-bool operator BOOST_TT_TRAIT_OP (const Derived2&, const Derived2&) { return true; }
-
-struct tag { };
-
-void run() {
- // test with only one template parameter
- TEST_T(bool, true);
- TEST_T(char, true);
- TEST_T(signed char, true);
- TEST_T(short int, true);
- TEST_T(int, true);
- TEST_T(long int, true);
- TEST_T(unsigned char, true);
- TEST_T(unsigned short int, true);
- TEST_T(unsigned int, true);
- TEST_T(unsigned long int, true);
- TEST_T(wchar_t, true);
- TEST_T(float, true);
- TEST_T(double, true);
- TEST_T(long double, true);
- TEST_T(void, false);
- // test with only two template parameters
- TEST_TT(bool, bool, true);
- TEST_TT(bool, char, true);
- TEST_TT(bool, signed char, true);
- TEST_TT(bool, short int, true);
- TEST_TT(bool, int, true);
- TEST_TT(bool, long int, true);
- TEST_TT(bool, unsigned char, true);
- TEST_TT(bool, unsigned short int, true);
- TEST_TT(bool, unsigned int, true);
- TEST_TT(bool, unsigned long int, true);
- TEST_TT(bool, wchar_t, true);
- TEST_TT(bool, float, true);
- TEST_TT(bool, double, true);
- TEST_TT(bool, long double, true);
- TEST_TT(char, bool, true);
- TEST_TT(char, char, true);
- TEST_TT(char, signed char, true);
- TEST_TT(char, short int, true);
- TEST_TT(char, int, true);
- TEST_TT(char, long int, true);
- TEST_TT(char, unsigned char, true);
- TEST_TT(char, unsigned short int, true);
- TEST_TT(char, unsigned int, true);
- TEST_TT(char, unsigned long int, true);
- TEST_TT(char, wchar_t, true);
- TEST_TT(char, float, true);
- TEST_TT(char, double, true);
- TEST_TT(char, long double, true);
- TEST_TT(signed char, bool, true);
- TEST_TT(signed char, char, true);
- TEST_TT(signed char, signed char, true);
- TEST_TT(signed char, short int, true);
- TEST_TT(signed char, int, true);
- TEST_TT(signed char, long int, true);
- TEST_TT(signed char, unsigned char, true);
- TEST_TT(signed char, unsigned short int, true);
- TEST_TT(signed char, unsigned int, true);
- TEST_TT(signed char, unsigned long int, true);
- TEST_TT(signed char, wchar_t, true);
- TEST_TT(signed char, float, true);
- TEST_TT(signed char, double, true);
- TEST_TT(signed char, long double, true);
- TEST_TT(short int, bool, true);
- TEST_TT(short int, char, true);
- TEST_TT(short int, signed char, true);
- TEST_TT(short int, short int, true);
- TEST_TT(short int, int, true);
- TEST_TT(short int, long int, true);
- TEST_TT(short int, unsigned char, true);
- TEST_TT(short int, unsigned short int, true);
- TEST_TT(short int, unsigned int, true);
- TEST_TT(short int, unsigned long int, true);
- TEST_TT(short int, wchar_t, true);
- TEST_TT(short int, float, true);
- TEST_TT(short int, double, true);
- TEST_TT(short int, long double, true);
- TEST_TT(int, bool, true);
- TEST_TT(int, char, true);
- TEST_TT(int, signed char, true);
- TEST_TT(int, short int, true);
- TEST_TT(int, int, true);
- TEST_TT(int, long int, true);
- TEST_TT(int, unsigned char, true);
- TEST_TT(int, unsigned short int, true);
- TEST_TT(int, unsigned int, true);
- TEST_TT(int, unsigned long int, true);
- TEST_TT(int, wchar_t, true);
- TEST_TT(int, float, true);
- TEST_TT(int, double, true);
- TEST_TT(int, long double, true);
- TEST_TT(long int, bool, true);
- TEST_TT(long int, char, true);
- TEST_TT(long int, signed char, true);
- TEST_TT(long int, short int, true);
- TEST_TT(long int, int, true);
- TEST_TT(long int, long int, true);
- TEST_TT(long int, unsigned char, true);
- TEST_TT(long int, unsigned short int, true);
- TEST_TT(long int, unsigned int, true);
- TEST_TT(long int, unsigned long int, true);
- TEST_TT(long int, wchar_t, true);
- TEST_TT(long int, float, true);
- TEST_TT(long int, double, true);
- TEST_TT(long int, long double, true);
- TEST_TT(unsigned char, bool, true);
- TEST_TT(unsigned char, char, true);
- TEST_TT(unsigned char, signed char, true);
- TEST_TT(unsigned char, short int, true);
- TEST_TT(unsigned char, int, true);
- TEST_TT(unsigned char, long int, true);
- TEST_TT(unsigned char, unsigned char, true);
- TEST_TT(unsigned char, unsigned short int, true);
- TEST_TT(unsigned char, unsigned int, true);
- TEST_TT(unsigned char, unsigned long int, true);
- TEST_TT(unsigned char, wchar_t, true);
- TEST_TT(unsigned char, float, true);
- TEST_TT(unsigned char, double, true);
- TEST_TT(unsigned char, long double, true);
- TEST_TT(unsigned short int, bool, true);
- TEST_TT(unsigned short int, char, true);
- TEST_TT(unsigned short int, signed char, true);
- TEST_TT(unsigned short int, short int, true);
- TEST_TT(unsigned short int, int, true);
- TEST_TT(unsigned short int, long int, true);
- TEST_TT(unsigned short int, unsigned char, true);
- TEST_TT(unsigned short int, unsigned short int, true);
- TEST_TT(unsigned short int, unsigned int, true);
- TEST_TT(unsigned short int, unsigned long int, true);
- TEST_TT(unsigned short int, wchar_t, true);
- TEST_TT(unsigned short int, float, true);
- TEST_TT(unsigned short int, double, true);
- TEST_TT(unsigned short int, long double, true);
- TEST_TT(unsigned int, bool, true);
- TEST_TT(unsigned int, char, true);
- TEST_TT(unsigned int, signed char, true);
- TEST_TT(unsigned int, short int, true);
- TEST_TT(unsigned int, int, true);
- TEST_TT(unsigned int, long int, true);
- TEST_TT(unsigned int, unsigned char, true);
- TEST_TT(unsigned int, unsigned short int, true);
- TEST_TT(unsigned int, unsigned int, true);
- TEST_TT(unsigned int, unsigned long int, true);
- TEST_TT(unsigned int, wchar_t, true);
- TEST_TT(unsigned int, float, true);
- TEST_TT(unsigned int, double, true);
- TEST_TT(unsigned int, long double, true);
- TEST_TT(unsigned long int, bool, true);
- TEST_TT(unsigned long int, char, true);
- TEST_TT(unsigned long int, signed char, true);
- TEST_TT(unsigned long int, short int, true);
- TEST_TT(unsigned long int, int, true);
- TEST_TT(unsigned long int, long int, true);
- TEST_TT(unsigned long int, unsigned char, true);
- TEST_TT(unsigned long int, unsigned short int, true);
- TEST_TT(unsigned long int, unsigned int, true);
- TEST_TT(unsigned long int, unsigned long int, true);
- TEST_TT(unsigned long int, wchar_t, true);
- TEST_TT(unsigned long int, float, true);
- TEST_TT(unsigned long int, double, true);
- TEST_TT(unsigned long int, long double, true);
- TEST_TT(wchar_t, bool, true);
- TEST_TT(wchar_t, char, true);
- TEST_TT(wchar_t, signed char, true);
- TEST_TT(wchar_t, short int, true);
- TEST_TT(wchar_t, int, true);
- TEST_TT(wchar_t, long int, true);
- TEST_TT(wchar_t, unsigned char, true);
- TEST_TT(wchar_t, unsigned short int, true);
- TEST_TT(wchar_t, unsigned int, true);
- TEST_TT(wchar_t, unsigned long int, true);
- TEST_TT(wchar_t, wchar_t, true);
- TEST_TT(wchar_t, float, true);
- TEST_TT(wchar_t, double, true);
- TEST_TT(wchar_t, long double, true);
- TEST_TT(float, bool, true);
- TEST_TT(float, char, true);
- TEST_TT(float, signed char, true);
- TEST_TT(float, short int, true);
- TEST_TT(float, int, true);
- TEST_TT(float, long int, true);
- TEST_TT(float, unsigned char, true);
- TEST_TT(float, unsigned short int, true);
- TEST_TT(float, unsigned int, true);
- TEST_TT(float, unsigned long int, true);
- TEST_TT(float, wchar_t, true);
- TEST_TT(float, float, true);
- TEST_TT(float, double, true);
- TEST_TT(float, long double, true);
- TEST_TT(double, bool, true);
- TEST_TT(double, char, true);
- TEST_TT(double, signed char, true);
- TEST_TT(double, short int, true);
- TEST_TT(double, int, true);
- TEST_TT(double, long int, true);
- TEST_TT(double, unsigned char, true);
- TEST_TT(double, unsigned short int, true);
- TEST_TT(double, unsigned int, true);
- TEST_TT(double, unsigned long int, true);
- TEST_TT(double, wchar_t, true);
- TEST_TT(double, float, true);
- TEST_TT(double, double, true);
- TEST_TT(double, long double, true);
- TEST_TT(long double, bool, true);
- TEST_TT(long double, char, true);
- TEST_TT(long double, signed char, true);
- TEST_TT(long double, short int, true);
- TEST_TT(long double, int, true);
- TEST_TT(long double, long int, true);
- TEST_TT(long double, unsigned char, true);
- TEST_TT(long double, unsigned short int, true);
- TEST_TT(long double, unsigned int, true);
- TEST_TT(long double, unsigned long int, true);
- TEST_TT(long double, wchar_t, true);
- TEST_TT(long double, float, true);
- TEST_TT(long double, double, true);
- TEST_TT(long double, long double, true);
- TEST_TT(bool, void, false);
- TEST_TT(void, bool, false);
- TEST_TT(char, void, false);
- TEST_TT(void, char, false);
- TEST_TT(signed char, void, false);
- TEST_TT(void, signed char, false);
- TEST_TT(short int, void, false);
- TEST_TT(void, short int, false);
- TEST_TT(int, void, false);
- TEST_TT(void, int, false);
- TEST_TT(long int, void, false);
- TEST_TT(void, long int, false);
- TEST_TT(unsigned char, void, false);
- TEST_TT(void, unsigned char, false);
- TEST_TT(unsigned short int, void, false);
- TEST_TT(void, unsigned short int, false);
- TEST_TT(unsigned int, void, false);
- TEST_TT(void, unsigned int, false);
- TEST_TT(unsigned long int, void, false);
- TEST_TT(void, unsigned long int, false);
- TEST_TT(wchar_t, void, false);
- TEST_TT(void, wchar_t, false);
- TEST_TT(float, void, false);
- TEST_TT(void, float, false);
- TEST_TT(double, void, false);
- TEST_TT(void, double, false);
- TEST_TT(long double, void, false);
- TEST_TT(void, long double, false);
-
-// test with three template parameters
- TEST_TTR(bool, bool, bool, true);
- TEST_TTR(bool, char, bool, true);
- TEST_TTR(bool, signed char, bool, true);
- TEST_TTR(bool, short int, bool, true);
- TEST_TTR(bool, int, bool, true);
- TEST_TTR(bool, long int, bool, true);
- TEST_TTR(bool, unsigned char, bool, true);
- TEST_TTR(bool, unsigned short int, bool, true);
- TEST_TTR(bool, unsigned int, bool, true);
- TEST_TTR(bool, unsigned long int, bool, true);
- TEST_TTR(bool, wchar_t, bool, true);
- TEST_TTR(bool, float, bool, true);
- TEST_TTR(bool, double, bool, true);
- TEST_TTR(bool, long double, bool, true);
- TEST_TTR(char, bool, bool, true);
- TEST_TTR(char, char, bool, true);
- TEST_TTR(char, signed char, bool, true);
- TEST_TTR(char, short int, bool, true);
- TEST_TTR(char, int, bool, true);
- TEST_TTR(char, long int, bool, true);
- TEST_TTR(char, unsigned char, bool, true);
- TEST_TTR(char, unsigned short int, bool, true);
- TEST_TTR(char, unsigned int, bool, true);
- TEST_TTR(char, unsigned long int, bool, true);
- TEST_TTR(char, wchar_t, bool, true);
- TEST_TTR(char, float, bool, true);
- TEST_TTR(char, double, bool, true);
- TEST_TTR(char, long double, bool, true);
- TEST_TTR(signed char, bool, bool, true);
- TEST_TTR(signed char, char, bool, true);
- TEST_TTR(signed char, signed char, bool, true);
- TEST_TTR(signed char, short int, bool, true);
- TEST_TTR(signed char, int, bool, true);
- TEST_TTR(signed char, long int, bool, true);
- TEST_TTR(signed char, unsigned char, bool, true);
- TEST_TTR(signed char, unsigned short int, bool, true);
- TEST_TTR(signed char, unsigned int, bool, true);
- TEST_TTR(signed char, unsigned long int, bool, true);
- TEST_TTR(signed char, wchar_t, bool, true);
- TEST_TTR(signed char, float, bool, true);
- TEST_TTR(signed char, double, bool, true);
- TEST_TTR(signed char, long double, bool, true);
- TEST_TTR(short int, bool, bool, true);
- TEST_TTR(short int, char, bool, true);
- TEST_TTR(short int, signed char, bool, true);
- TEST_TTR(short int, short int, bool, true);
- TEST_TTR(short int, int, bool, true);
- TEST_TTR(short int, long int, bool, true);
- TEST_TTR(short int, unsigned char, bool, true);
- TEST_TTR(short int, unsigned short int, bool, true);
- TEST_TTR(short int, unsigned int, bool, true);
- TEST_TTR(short int, unsigned long int, bool, true);
- TEST_TTR(short int, wchar_t, bool, true);
- TEST_TTR(short int, float, bool, true);
- TEST_TTR(short int, double, bool, true);
- TEST_TTR(short int, long double, bool, true);
- TEST_TTR(int, bool, bool, true);
- TEST_TTR(int, char, bool, true);
- TEST_TTR(int, signed char, bool, true);
- TEST_TTR(int, short int, bool, true);
- TEST_TTR(int, int, bool, true);
- TEST_TTR(int, long int, bool, true);
- TEST_TTR(int, unsigned char, bool, true);
- TEST_TTR(int, unsigned short int, bool, true);
- TEST_TTR(int, unsigned int, bool, true);
- TEST_TTR(int, unsigned long int, bool, true);
- TEST_TTR(int, wchar_t, bool, true);
- TEST_TTR(int, float, bool, true);
- TEST_TTR(int, double, bool, true);
- TEST_TTR(int, long double, bool, true);
- TEST_TTR(long int, bool, bool, true);
- TEST_TTR(long int, char, bool, true);
- TEST_TTR(long int, signed char, bool, true);
- TEST_TTR(long int, short int, bool, true);
- TEST_TTR(long int, int, bool, true);
- TEST_TTR(long int, long int, bool, true);
- TEST_TTR(long int, unsigned char, bool, true);
- TEST_TTR(long int, unsigned short int, bool, true);
- TEST_TTR(long int, unsigned int, bool, true);
- TEST_TTR(long int, unsigned long int, bool, true);
- TEST_TTR(long int, wchar_t, bool, true);
- TEST_TTR(long int, float, bool, true);
- TEST_TTR(long int, double, bool, true);
- TEST_TTR(long int, long double, bool, true);
- TEST_TTR(unsigned char, bool, bool, true);
- TEST_TTR(unsigned char, char, bool, true);
- TEST_TTR(unsigned char, signed char, bool, true);
- TEST_TTR(unsigned char, short int, bool, true);
- TEST_TTR(unsigned char, int, bool, true);
- TEST_TTR(unsigned char, long int, bool, true);
- TEST_TTR(unsigned char, unsigned char, bool, true);
- TEST_TTR(unsigned char, unsigned short int, bool, true);
- TEST_TTR(unsigned char, unsigned int, bool, true);
- TEST_TTR(unsigned char, unsigned long int, bool, true);
- TEST_TTR(unsigned char, wchar_t, bool, true);
- TEST_TTR(unsigned char, float, bool, true);
- TEST_TTR(unsigned char, double, bool, true);
- TEST_TTR(unsigned char, long double, bool, true);
- TEST_TTR(unsigned short int, bool, bool, true);
- TEST_TTR(unsigned short int, char, bool, true);
- TEST_TTR(unsigned short int, signed char, bool, true);
- TEST_TTR(unsigned short int, short int, bool, true);
- TEST_TTR(unsigned short int, int, bool, true);
- TEST_TTR(unsigned short int, long int, bool, true);
- TEST_TTR(unsigned short int, unsigned char, bool, true);
- TEST_TTR(unsigned short int, unsigned short int, bool, true);
- TEST_TTR(unsigned short int, unsigned int, bool, true);
- TEST_TTR(unsigned short int, unsigned long int, bool, true);
- TEST_TTR(unsigned short int, wchar_t, bool, true);
- TEST_TTR(unsigned short int, float, bool, true);
- TEST_TTR(unsigned short int, double, bool, true);
- TEST_TTR(unsigned short int, long double, bool, true);
- TEST_TTR(unsigned int, bool, bool, true);
- TEST_TTR(unsigned int, char, bool, true);
- TEST_TTR(unsigned int, signed char, bool, true);
- TEST_TTR(unsigned int, short int, bool, true);
- TEST_TTR(unsigned int, int, bool, true);
- TEST_TTR(unsigned int, long int, bool, true);
- TEST_TTR(unsigned int, unsigned char, bool, true);
- TEST_TTR(unsigned int, unsigned short int, bool, true);
- TEST_TTR(unsigned int, unsigned int, bool, true);
- TEST_TTR(unsigned int, unsigned long int, bool, true);
- TEST_TTR(unsigned int, wchar_t, bool, true);
- TEST_TTR(unsigned int, float, bool, true);
- TEST_TTR(unsigned int, double, bool, true);
- TEST_TTR(unsigned int, long double, bool, true);
- TEST_TTR(unsigned long int, bool, bool, true);
- TEST_TTR(unsigned long int, char, bool, true);
- TEST_TTR(unsigned long int, signed char, bool, true);
- TEST_TTR(unsigned long int, short int, bool, true);
- TEST_TTR(unsigned long int, int, bool, true);
- TEST_TTR(unsigned long int, long int, bool, true);
- TEST_TTR(unsigned long int, unsigned char, bool, true);
- TEST_TTR(unsigned long int, unsigned short int, bool, true);
- TEST_TTR(unsigned long int, unsigned int, bool, true);
- TEST_TTR(unsigned long int, unsigned long int, bool, true);
- TEST_TTR(unsigned long int, wchar_t, bool, true);
- TEST_TTR(unsigned long int, float, bool, true);
- TEST_TTR(unsigned long int, double, bool, true);
- TEST_TTR(unsigned long int, long double, bool, true);
- TEST_TTR(wchar_t, bool, bool, true);
- TEST_TTR(wchar_t, char, bool, true);
- TEST_TTR(wchar_t, signed char, bool, true);
- TEST_TTR(wchar_t, short int, bool, true);
- TEST_TTR(wchar_t, int, bool, true);
- TEST_TTR(wchar_t, long int, bool, true);
- TEST_TTR(wchar_t, unsigned char, bool, true);
- TEST_TTR(wchar_t, unsigned short int, bool, true);
- TEST_TTR(wchar_t, unsigned int, bool, true);
- TEST_TTR(wchar_t, unsigned long int, bool, true);
- TEST_TTR(wchar_t, wchar_t, bool, true);
- TEST_TTR(wchar_t, float, bool, true);
- TEST_TTR(wchar_t, double, bool, true);
- TEST_TTR(wchar_t, long double, bool, true);
- TEST_TTR(float, bool, bool, true);
- TEST_TTR(float, char, bool, true);
- TEST_TTR(float, signed char, bool, true);
- TEST_TTR(float, short int, bool, true);
- TEST_TTR(float, int, bool, true);
- TEST_TTR(float, long int, bool, true);
- TEST_TTR(float, unsigned char, bool, true);
- TEST_TTR(float, unsigned short int, bool, true);
- TEST_TTR(float, unsigned int, bool, true);
- TEST_TTR(float, unsigned long int, bool, true);
- TEST_TTR(float, wchar_t, bool, true);
- TEST_TTR(float, float, bool, true);
- TEST_TTR(float, double, bool, true);
- TEST_TTR(float, long double, bool, true);
- TEST_TTR(double, bool, bool, true);
- TEST_TTR(double, char, bool, true);
- TEST_TTR(double, signed char, bool, true);
- TEST_TTR(double, short int, bool, true);
- TEST_TTR(double, int, bool, true);
- TEST_TTR(double, long int, bool, true);
- TEST_TTR(double, unsigned char, bool, true);
- TEST_TTR(double, unsigned short int, bool, true);
- TEST_TTR(double, unsigned int, bool, true);
- TEST_TTR(double, unsigned long int, bool, true);
- TEST_TTR(double, wchar_t, bool, true);
- TEST_TTR(double, float, bool, true);
- TEST_TTR(double, double, bool, true);
- TEST_TTR(double, long double, bool, true);
- TEST_TTR(long double, bool, bool, true);
- TEST_TTR(long double, char, bool, true);
- TEST_TTR(long double, signed char, bool, true);
- TEST_TTR(long double, short int, bool, true);
- TEST_TTR(long double, int, bool, true);
- TEST_TTR(long double, long int, bool, true);
- TEST_TTR(long double, unsigned char, bool, true);
- TEST_TTR(long double, unsigned short int, bool, true);
- TEST_TTR(long double, unsigned int, bool, true);
- TEST_TTR(long double, unsigned long int, bool, true);
- TEST_TTR(long double, wchar_t, bool, true);
- TEST_TTR(long double, float, bool, true);
- TEST_TTR(long double, double, bool, true);
- TEST_TTR(long double, long double, bool, true);
- TEST_TTR(bool, bool, tag, false);
- TEST_TTR(bool, char, tag, false);
- TEST_TTR(bool, signed char, tag, false);
- TEST_TTR(bool, short int, tag, false);
- TEST_TTR(bool, int, tag, false);
- TEST_TTR(bool, long int, tag, false);
- TEST_TTR(bool, unsigned char, tag, false);
- TEST_TTR(bool, unsigned short int, tag, false);
- TEST_TTR(bool, unsigned int, tag, false);
- TEST_TTR(bool, unsigned long int, tag, false);
- TEST_TTR(bool, wchar_t, tag, false);
- TEST_TTR(bool, float, tag, false);
- TEST_TTR(bool, double, tag, false);
- TEST_TTR(bool, long double, tag, false);
- TEST_TTR(char, bool, tag, false);
- TEST_TTR(char, char, tag, false);
- TEST_TTR(char, signed char, tag, false);
- TEST_TTR(char, short int, tag, false);
- TEST_TTR(char, int, tag, false);
- TEST_TTR(char, long int, tag, false);
- TEST_TTR(char, unsigned char, tag, false);
- TEST_TTR(char, unsigned short int, tag, false);
- TEST_TTR(char, unsigned int, tag, false);
- TEST_TTR(char, unsigned long int, tag, false);
- TEST_TTR(char, wchar_t, tag, false);
- TEST_TTR(char, float, tag, false);
- TEST_TTR(char, double, tag, false);
- TEST_TTR(char, long double, tag, false);
- TEST_TTR(signed char, bool, tag, false);
- TEST_TTR(signed char, char, tag, false);
- TEST_TTR(signed char, signed char, tag, false);
- TEST_TTR(signed char, short int, tag, false);
- TEST_TTR(signed char, int, tag, false);
- TEST_TTR(signed char, long int, tag, false);
- TEST_TTR(signed char, unsigned char, tag, false);
- TEST_TTR(signed char, unsigned short int, tag, false);
- TEST_TTR(signed char, unsigned int, tag, false);
- TEST_TTR(signed char, unsigned long int, tag, false);
- TEST_TTR(signed char, wchar_t, tag, false);
- TEST_TTR(signed char, float, tag, false);
- TEST_TTR(signed char, double, tag, false);
- TEST_TTR(signed char, long double, tag, false);
- TEST_TTR(short int, bool, tag, false);
- TEST_TTR(short int, char, tag, false);
- TEST_TTR(short int, signed char, tag, false);
- TEST_TTR(short int, short int, tag, false);
- TEST_TTR(short int, int, tag, false);
- TEST_TTR(short int, long int, tag, false);
- TEST_TTR(short int, unsigned char, tag, false);
- TEST_TTR(short int, unsigned short int, tag, false);
- TEST_TTR(short int, unsigned int, tag, false);
- TEST_TTR(short int, unsigned long int, tag, false);
- TEST_TTR(short int, wchar_t, tag, false);
- TEST_TTR(short int, float, tag, false);
- TEST_TTR(short int, double, tag, false);
- TEST_TTR(short int, long double, tag, false);
- TEST_TTR(int, bool, tag, false);
- TEST_TTR(int, char, tag, false);
- TEST_TTR(int, signed char, tag, false);
- TEST_TTR(int, short int, tag, false);
- TEST_TTR(int, int, tag, false);
- TEST_TTR(int, long int, tag, false);
- TEST_TTR(int, unsigned char, tag, false);
- TEST_TTR(int, unsigned short int, tag, false);
- TEST_TTR(int, unsigned int, tag, false);
- TEST_TTR(int, unsigned long int, tag, false);
- TEST_TTR(int, wchar_t, tag, false);
- TEST_TTR(int, float, tag, false);
- TEST_TTR(int, double, tag, false);
- TEST_TTR(int, long double, tag, false);
- TEST_TTR(long int, bool, tag, false);
- TEST_TTR(long int, char, tag, false);
- TEST_TTR(long int, signed char, tag, false);
- TEST_TTR(long int, short int, tag, false);
- TEST_TTR(long int, int, tag, false);
- TEST_TTR(long int, long int, tag, false);
- TEST_TTR(long int, unsigned char, tag, false);
- TEST_TTR(long int, unsigned short int, tag, false);
- TEST_TTR(long int, unsigned int, tag, false);
- TEST_TTR(long int, unsigned long int, tag, false);
- TEST_TTR(long int, wchar_t, tag, false);
- TEST_TTR(long int, float, tag, false);
- TEST_TTR(long int, double, tag, false);
- TEST_TTR(long int, long double, tag, false);
- TEST_TTR(unsigned char, bool, tag, false);
- TEST_TTR(unsigned char, char, tag, false);
- TEST_TTR(unsigned char, signed char, tag, false);
- TEST_TTR(unsigned char, short int, tag, false);
- TEST_TTR(unsigned char, int, tag, false);
- TEST_TTR(unsigned char, long int, tag, false);
- TEST_TTR(unsigned char, unsigned char, tag, false);
- TEST_TTR(unsigned char, unsigned short int, tag, false);
- TEST_TTR(unsigned char, unsigned int, tag, false);
- TEST_TTR(unsigned char, unsigned long int, tag, false);
- TEST_TTR(unsigned char, wchar_t, tag, false);
- TEST_TTR(unsigned char, float, tag, false);
- TEST_TTR(unsigned char, double, tag, false);
- TEST_TTR(unsigned char, long double, tag, false);
- TEST_TTR(unsigned short int, bool, tag, false);
- TEST_TTR(unsigned short int, char, tag, false);
- TEST_TTR(unsigned short int, signed char, tag, false);
- TEST_TTR(unsigned short int, short int, tag, false);
- TEST_TTR(unsigned short int, int, tag, false);
- TEST_TTR(unsigned short int, long int, tag, false);
- TEST_TTR(unsigned short int, unsigned char, tag, false);
- TEST_TTR(unsigned short int, unsigned short int, tag, false);
- TEST_TTR(unsigned short int, unsigned int, tag, false);
- TEST_TTR(unsigned short int, unsigned long int, tag, false);
- TEST_TTR(unsigned short int, wchar_t, tag, false);
- TEST_TTR(unsigned short int, float, tag, false);
- TEST_TTR(unsigned short int, double, tag, false);
- TEST_TTR(unsigned short int, long double, tag, false);
- TEST_TTR(unsigned int, bool, tag, false);
- TEST_TTR(unsigned int, char, tag, false);
- TEST_TTR(unsigned int, signed char, tag, false);
- TEST_TTR(unsigned int, short int, tag, false);
- TEST_TTR(unsigned int, int, tag, false);
- TEST_TTR(unsigned int, long int, tag, false);
- TEST_TTR(unsigned int, unsigned char, tag, false);
- TEST_TTR(unsigned int, unsigned short int, tag, false);
- TEST_TTR(unsigned int, unsigned int, tag, false);
- TEST_TTR(unsigned int, unsigned long int, tag, false);
- TEST_TTR(unsigned int, wchar_t, tag, false);
- TEST_TTR(unsigned int, float, tag, false);
- TEST_TTR(unsigned int, double, tag, false);
- TEST_TTR(unsigned int, long double, tag, false);
- TEST_TTR(unsigned long int, bool, tag, false);
- TEST_TTR(unsigned long int, char, tag, false);
- TEST_TTR(unsigned long int, signed char, tag, false);
- TEST_TTR(unsigned long int, short int, tag, false);
- TEST_TTR(unsigned long int, int, tag, false);
- TEST_TTR(unsigned long int, long int, tag, false);
- TEST_TTR(unsigned long int, unsigned char, tag, false);
- TEST_TTR(unsigned long int, unsigned short int, tag, false);
- TEST_TTR(unsigned long int, unsigned int, tag, false);
- TEST_TTR(unsigned long int, unsigned long int, tag, false);
- TEST_TTR(unsigned long int, wchar_t, tag, false);
- TEST_TTR(unsigned long int, float, tag, false);
- TEST_TTR(unsigned long int, double, tag, false);
- TEST_TTR(unsigned long int, long double, tag, false);
- TEST_TTR(wchar_t, bool, tag, false);
- TEST_TTR(wchar_t, char, tag, false);
- TEST_TTR(wchar_t, signed char, tag, false);
- TEST_TTR(wchar_t, short int, tag, false);
- TEST_TTR(wchar_t, int, tag, false);
- TEST_TTR(wchar_t, long int, tag, false);
- TEST_TTR(wchar_t, unsigned char, tag, false);
- TEST_TTR(wchar_t, unsigned short int, tag, false);
- TEST_TTR(wchar_t, unsigned int, tag, false);
- TEST_TTR(wchar_t, unsigned long int, tag, false);
- TEST_TTR(wchar_t, wchar_t, tag, false);
- TEST_TTR(wchar_t, float, tag, false);
- TEST_TTR(wchar_t, double, tag, false);
- TEST_TTR(wchar_t, long double, tag, false);
- TEST_TTR(float, bool, tag, false);
- TEST_TTR(float, char, tag, false);
- TEST_TTR(float, signed char, tag, false);
- TEST_TTR(float, short int, tag, false);
- TEST_TTR(float, int, tag, false);
- TEST_TTR(float, long int, tag, false);
- TEST_TTR(float, unsigned char, tag, false);
- TEST_TTR(float, unsigned short int, tag, false);
- TEST_TTR(float, unsigned int, tag, false);
- TEST_TTR(float, unsigned long int, tag, false);
- TEST_TTR(float, wchar_t, tag, false);
- TEST_TTR(float, float, tag, false);
- TEST_TTR(float, double, tag, false);
- TEST_TTR(float, long double, tag, false);
- TEST_TTR(double, bool, tag, false);
- TEST_TTR(double, char, tag, false);
- TEST_TTR(double, signed char, tag, false);
- TEST_TTR(double, short int, tag, false);
- TEST_TTR(double, int, tag, false);
- TEST_TTR(double, long int, tag, false);
- TEST_TTR(double, unsigned char, tag, false);
- TEST_TTR(double, unsigned short int, tag, false);
- TEST_TTR(double, unsigned int, tag, false);
- TEST_TTR(double, unsigned long int, tag, false);
- TEST_TTR(double, wchar_t, tag, false);
- TEST_TTR(double, float, tag, false);
- TEST_TTR(double, double, tag, false);
- TEST_TTR(double, long double, tag, false);
- TEST_TTR(long double, bool, tag, false);
- TEST_TTR(long double, char, tag, false);
- TEST_TTR(long double, signed char, tag, false);
- TEST_TTR(long double, short int, tag, false);
- TEST_TTR(long double, int, tag, false);
- TEST_TTR(long double, long int, tag, false);
- TEST_TTR(long double, unsigned char, tag, false);
- TEST_TTR(long double, unsigned short int, tag, false);
- TEST_TTR(long double, unsigned int, tag, false);
- TEST_TTR(long double, unsigned long int, tag, false);
- TEST_TTR(long double, wchar_t, tag, false);
- TEST_TTR(long double, float, tag, false);
- TEST_TTR(long double, double, tag, false);
- TEST_TTR(long double, long double, tag, false);
-
- TEST_T(without, false);
- TEST_T(internal, true);
- TEST_T(external, true);
-// 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(Base1, true);
- TEST_T(Derived1, true);
- TEST_T(Base2, false);
- TEST_T(Derived2, true);
-
- TEST_TR(without, bool, false);
- TEST_TR(internal, bool, false);
- TEST_TR(internal, ret, true);
- TEST_TR(external, bool, false);
- TEST_TR(external, ret, true);
- TEST_TR(returns_int, bool, true);
- TEST_TR(returns_int, int, true);
- TEST_TR(returns_void, void, true);
- TEST_TR(returns_void, bool, false);
- TEST_TR(returns_void_star, bool, true);
- TEST_TR(returns_double, bool, true);
- 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(Base1, bool, true);
- TEST_TR(Derived1, bool, true);
- TEST_TR(Base2, bool, false);
- TEST_TR(Derived2, bool, true);
-}
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- run();
-TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_plus_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_plus_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,836 @@
+// (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
+#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
+#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
+#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
+#define TEST_TTR(TYPE1,TYPE2,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (const internal&) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, const external&);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP (const internal_private&) const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (const returns_int&); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (const returns_void&); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (const returns_void_star&); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (const returns_double&); };
+
+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&); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&, const Base1&) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&, const Derived2&) { return true; }
+
+struct tag { };
+
+struct A { };
+struct B : public A { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, true);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+ // test with only two template parameters
+ TEST_TT(bool, bool, true);
+ TEST_TT(bool, char, true);
+ TEST_TT(bool, signed char, true);
+ TEST_TT(bool, short int, true);
+ TEST_TT(bool, int, true);
+ TEST_TT(bool, long int, true);
+ TEST_TT(bool, unsigned char, true);
+ TEST_TT(bool, unsigned short int, true);
+ TEST_TT(bool, unsigned int, true);
+ TEST_TT(bool, unsigned long int, true);
+ TEST_TT(bool, wchar_t, true);
+ TEST_TT(bool, float, true);
+ TEST_TT(bool, double, true);
+ TEST_TT(bool, long double, true);
+ TEST_TT(char, bool, true);
+ TEST_TT(char, char, true);
+ TEST_TT(char, signed char, true);
+ TEST_TT(char, short int, true);
+ TEST_TT(char, int, true);
+ TEST_TT(char, long int, true);
+ TEST_TT(char, unsigned char, true);
+ TEST_TT(char, unsigned short int, true);
+ TEST_TT(char, unsigned int, true);
+ TEST_TT(char, unsigned long int, true);
+ TEST_TT(char, wchar_t, true);
+ TEST_TT(char, float, true);
+ TEST_TT(char, double, true);
+ TEST_TT(char, long double, true);
+ TEST_TT(signed char, bool, true);
+ TEST_TT(signed char, char, true);
+ TEST_TT(signed char, signed char, true);
+ TEST_TT(signed char, short int, true);
+ TEST_TT(signed char, int, true);
+ TEST_TT(signed char, long int, true);
+ TEST_TT(signed char, unsigned char, true);
+ TEST_TT(signed char, unsigned short int, true);
+ TEST_TT(signed char, unsigned int, true);
+ TEST_TT(signed char, unsigned long int, true);
+ TEST_TT(signed char, wchar_t, true);
+ TEST_TT(signed char, float, true);
+ TEST_TT(signed char, double, true);
+ TEST_TT(signed char, long double, true);
+ TEST_TT(short int, bool, true);
+ TEST_TT(short int, char, true);
+ TEST_TT(short int, signed char, true);
+ TEST_TT(short int, short int, true);
+ TEST_TT(short int, int, true);
+ TEST_TT(short int, long int, true);
+ TEST_TT(short int, unsigned char, true);
+ TEST_TT(short int, unsigned short int, true);
+ TEST_TT(short int, unsigned int, true);
+ TEST_TT(short int, unsigned long int, true);
+ TEST_TT(short int, wchar_t, true);
+ TEST_TT(short int, float, true);
+ TEST_TT(short int, double, true);
+ TEST_TT(short int, long double, true);
+ TEST_TT(int, bool, true);
+ TEST_TT(int, char, true);
+ TEST_TT(int, signed char, true);
+ TEST_TT(int, short int, true);
+ TEST_TT(int, int, true);
+ TEST_TT(int, long int, true);
+ TEST_TT(int, unsigned char, true);
+ TEST_TT(int, unsigned short int, true);
+ TEST_TT(int, unsigned int, true);
+ TEST_TT(int, unsigned long int, true);
+ TEST_TT(int, wchar_t, true);
+ TEST_TT(int, float, true);
+ TEST_TT(int, double, true);
+ TEST_TT(int, long double, true);
+ TEST_TT(long int, bool, true);
+ TEST_TT(long int, char, true);
+ TEST_TT(long int, signed char, true);
+ TEST_TT(long int, short int, true);
+ TEST_TT(long int, int, true);
+ TEST_TT(long int, long int, true);
+ TEST_TT(long int, unsigned char, true);
+ TEST_TT(long int, unsigned short int, true);
+ TEST_TT(long int, unsigned int, true);
+ TEST_TT(long int, unsigned long int, true);
+ TEST_TT(long int, wchar_t, true);
+ TEST_TT(long int, float, true);
+ TEST_TT(long int, double, true);
+ TEST_TT(long int, long double, true);
+ TEST_TT(unsigned char, bool, true);
+ TEST_TT(unsigned char, char, true);
+ TEST_TT(unsigned char, signed char, true);
+ TEST_TT(unsigned char, short int, true);
+ TEST_TT(unsigned char, int, true);
+ TEST_TT(unsigned char, long int, true);
+ TEST_TT(unsigned char, unsigned char, true);
+ TEST_TT(unsigned char, unsigned short int, true);
+ TEST_TT(unsigned char, unsigned int, true);
+ TEST_TT(unsigned char, unsigned long int, true);
+ TEST_TT(unsigned char, wchar_t, true);
+ TEST_TT(unsigned char, float, true);
+ TEST_TT(unsigned char, double, true);
+ TEST_TT(unsigned char, long double, true);
+ TEST_TT(unsigned short int, bool, true);
+ TEST_TT(unsigned short int, char, true);
+ TEST_TT(unsigned short int, signed char, true);
+ TEST_TT(unsigned short int, short int, true);
+ TEST_TT(unsigned short int, int, true);
+ TEST_TT(unsigned short int, long int, true);
+ TEST_TT(unsigned short int, unsigned char, true);
+ TEST_TT(unsigned short int, unsigned short int, true);
+ TEST_TT(unsigned short int, unsigned int, true);
+ TEST_TT(unsigned short int, unsigned long int, true);
+ TEST_TT(unsigned short int, wchar_t, true);
+ TEST_TT(unsigned short int, float, true);
+ TEST_TT(unsigned short int, double, true);
+ TEST_TT(unsigned short int, long double, true);
+ TEST_TT(unsigned int, bool, true);
+ TEST_TT(unsigned int, char, true);
+ TEST_TT(unsigned int, signed char, true);
+ TEST_TT(unsigned int, short int, true);
+ TEST_TT(unsigned int, int, true);
+ TEST_TT(unsigned int, long int, true);
+ TEST_TT(unsigned int, unsigned char, true);
+ TEST_TT(unsigned int, unsigned short int, true);
+ TEST_TT(unsigned int, unsigned int, true);
+ TEST_TT(unsigned int, unsigned long int, true);
+ TEST_TT(unsigned int, wchar_t, true);
+ TEST_TT(unsigned int, float, true);
+ TEST_TT(unsigned int, double, true);
+ TEST_TT(unsigned int, long double, true);
+ TEST_TT(unsigned long int, bool, true);
+ TEST_TT(unsigned long int, char, true);
+ TEST_TT(unsigned long int, signed char, true);
+ TEST_TT(unsigned long int, short int, true);
+ TEST_TT(unsigned long int, int, true);
+ TEST_TT(unsigned long int, long int, true);
+ TEST_TT(unsigned long int, unsigned char, true);
+ TEST_TT(unsigned long int, unsigned short int, true);
+ TEST_TT(unsigned long int, unsigned int, true);
+ TEST_TT(unsigned long int, unsigned long int, true);
+ TEST_TT(unsigned long int, wchar_t, true);
+ TEST_TT(unsigned long int, float, true);
+ TEST_TT(unsigned long int, double, true);
+ TEST_TT(unsigned long int, long double, true);
+ TEST_TT(wchar_t, bool, true);
+ TEST_TT(wchar_t, char, true);
+ TEST_TT(wchar_t, signed char, true);
+ TEST_TT(wchar_t, short int, true);
+ TEST_TT(wchar_t, int, true);
+ TEST_TT(wchar_t, long int, true);
+ TEST_TT(wchar_t, unsigned char, true);
+ TEST_TT(wchar_t, unsigned short int, true);
+ TEST_TT(wchar_t, unsigned int, true);
+ TEST_TT(wchar_t, unsigned long int, true);
+ TEST_TT(wchar_t, wchar_t, true);
+ TEST_TT(wchar_t, float, true);
+ TEST_TT(wchar_t, double, true);
+ TEST_TT(wchar_t, long double, true);
+ TEST_TT(float, bool, true);
+ TEST_TT(float, char, true);
+ TEST_TT(float, signed char, true);
+ TEST_TT(float, short int, true);
+ TEST_TT(float, int, true);
+ TEST_TT(float, long int, true);
+ TEST_TT(float, unsigned char, true);
+ TEST_TT(float, unsigned short int, true);
+ TEST_TT(float, unsigned int, true);
+ TEST_TT(float, unsigned long int, true);
+ TEST_TT(float, wchar_t, true);
+ TEST_TT(float, float, true);
+ TEST_TT(float, double, true);
+ TEST_TT(float, long double, true);
+ TEST_TT(double, bool, true);
+ TEST_TT(double, char, true);
+ TEST_TT(double, signed char, true);
+ TEST_TT(double, short int, true);
+ TEST_TT(double, int, true);
+ TEST_TT(double, long int, true);
+ TEST_TT(double, unsigned char, true);
+ TEST_TT(double, unsigned short int, true);
+ TEST_TT(double, unsigned int, true);
+ TEST_TT(double, unsigned long int, true);
+ TEST_TT(double, wchar_t, true);
+ TEST_TT(double, float, true);
+ TEST_TT(double, double, true);
+ TEST_TT(double, long double, true);
+ TEST_TT(long double, bool, true);
+ TEST_TT(long double, char, true);
+ TEST_TT(long double, signed char, true);
+ TEST_TT(long double, short int, true);
+ TEST_TT(long double, int, true);
+ TEST_TT(long double, long int, true);
+ TEST_TT(long double, unsigned char, true);
+ TEST_TT(long double, unsigned short int, true);
+ TEST_TT(long double, unsigned int, true);
+ TEST_TT(long double, unsigned long int, true);
+ TEST_TT(long double, wchar_t, true);
+ TEST_TT(long double, float, true);
+ TEST_TT(long double, double, true);
+ TEST_TT(long double, long double, true);
+ TEST_TT(bool, void, false);
+ TEST_TT(void, bool, false);
+ TEST_TT(char, void, false);
+ TEST_TT(void, char, false);
+ TEST_TT(signed char, void, false);
+ TEST_TT(void, signed char, false);
+ TEST_TT(short int, void, false);
+ TEST_TT(void, short int, false);
+ TEST_TT(int, void, false);
+ TEST_TT(void, int, false);
+ TEST_TT(long int, void, false);
+ TEST_TT(void, long int, false);
+ TEST_TT(unsigned char, void, false);
+ TEST_TT(void, unsigned char, false);
+ TEST_TT(unsigned short int, void, false);
+ TEST_TT(void, unsigned short int, false);
+ TEST_TT(unsigned int, void, false);
+ TEST_TT(void, unsigned int, false);
+ TEST_TT(unsigned long int, void, false);
+ TEST_TT(void, unsigned long int, false);
+ TEST_TT(wchar_t, void, false);
+ TEST_TT(void, wchar_t, false);
+ TEST_TT(float, void, false);
+ TEST_TT(void, float, false);
+ TEST_TT(double, void, false);
+ TEST_TT(void, double, false);
+ TEST_TT(long double, void, false);
+ TEST_TT(void, long double, false);
+
+// test with three template parameters
+ TEST_TTR(bool, bool, bool, true);
+ TEST_TTR(bool, char, bool, true);
+ TEST_TTR(bool, signed char, bool, true);
+ TEST_TTR(bool, short int, bool, true);
+ TEST_TTR(bool, int, bool, true);
+ TEST_TTR(bool, long int, bool, true);
+ TEST_TTR(bool, unsigned char, bool, true);
+ TEST_TTR(bool, unsigned short int, bool, true);
+ TEST_TTR(bool, unsigned int, bool, true);
+ TEST_TTR(bool, unsigned long int, bool, true);
+ TEST_TTR(bool, wchar_t, bool, true);
+ TEST_TTR(bool, float, bool, true);
+ TEST_TTR(bool, double, bool, true);
+ TEST_TTR(bool, long double, bool, true);
+ TEST_TTR(char, bool, bool, true);
+ TEST_TTR(char, char, bool, true);
+ TEST_TTR(char, signed char, bool, true);
+ TEST_TTR(char, short int, bool, true);
+ TEST_TTR(char, int, bool, true);
+ TEST_TTR(char, long int, bool, true);
+ TEST_TTR(char, unsigned char, bool, true);
+ TEST_TTR(char, unsigned short int, bool, true);
+ TEST_TTR(char, unsigned int, bool, true);
+ TEST_TTR(char, unsigned long int, bool, true);
+ TEST_TTR(char, wchar_t, bool, true);
+ TEST_TTR(char, float, bool, true);
+ TEST_TTR(char, double, bool, true);
+ TEST_TTR(char, long double, bool, true);
+ TEST_TTR(signed char, bool, bool, true);
+ TEST_TTR(signed char, char, bool, true);
+ TEST_TTR(signed char, signed char, bool, true);
+ TEST_TTR(signed char, short int, bool, true);
+ TEST_TTR(signed char, int, bool, true);
+ TEST_TTR(signed char, long int, bool, true);
+ TEST_TTR(signed char, unsigned char, bool, true);
+ TEST_TTR(signed char, unsigned short int, bool, true);
+ TEST_TTR(signed char, unsigned int, bool, true);
+ TEST_TTR(signed char, unsigned long int, bool, true);
+ TEST_TTR(signed char, wchar_t, bool, true);
+ TEST_TTR(signed char, float, bool, true);
+ TEST_TTR(signed char, double, bool, true);
+ TEST_TTR(signed char, long double, bool, true);
+ TEST_TTR(short int, bool, bool, true);
+ TEST_TTR(short int, char, bool, true);
+ TEST_TTR(short int, signed char, bool, true);
+ TEST_TTR(short int, short int, bool, true);
+ TEST_TTR(short int, int, bool, true);
+ TEST_TTR(short int, long int, bool, true);
+ TEST_TTR(short int, unsigned char, bool, true);
+ TEST_TTR(short int, unsigned short int, bool, true);
+ TEST_TTR(short int, unsigned int, bool, true);
+ TEST_TTR(short int, unsigned long int, bool, true);
+ TEST_TTR(short int, wchar_t, bool, true);
+ TEST_TTR(short int, float, bool, true);
+ TEST_TTR(short int, double, bool, true);
+ TEST_TTR(short int, long double, bool, true);
+ TEST_TTR(int, bool, bool, true);
+ TEST_TTR(int, char, bool, true);
+ TEST_TTR(int, signed char, bool, true);
+ TEST_TTR(int, short int, bool, true);
+ TEST_TTR(int, int, bool, true);
+ TEST_TTR(int, long int, bool, true);
+ TEST_TTR(int, unsigned char, bool, true);
+ TEST_TTR(int, unsigned short int, bool, true);
+ TEST_TTR(int, unsigned int, bool, true);
+ TEST_TTR(int, unsigned long int, bool, true);
+ TEST_TTR(int, wchar_t, bool, true);
+ TEST_TTR(int, float, bool, true);
+ TEST_TTR(int, double, bool, true);
+ TEST_TTR(int, long double, bool, true);
+ TEST_TTR(long int, bool, bool, true);
+ TEST_TTR(long int, char, bool, true);
+ TEST_TTR(long int, signed char, bool, true);
+ TEST_TTR(long int, short int, bool, true);
+ TEST_TTR(long int, int, bool, true);
+ TEST_TTR(long int, long int, bool, true);
+ TEST_TTR(long int, unsigned char, bool, true);
+ TEST_TTR(long int, unsigned short int, bool, true);
+ TEST_TTR(long int, unsigned int, bool, true);
+ TEST_TTR(long int, unsigned long int, bool, true);
+ TEST_TTR(long int, wchar_t, bool, true);
+ TEST_TTR(long int, float, bool, true);
+ TEST_TTR(long int, double, bool, true);
+ TEST_TTR(long int, long double, bool, true);
+ TEST_TTR(unsigned char, bool, bool, true);
+ TEST_TTR(unsigned char, char, bool, true);
+ TEST_TTR(unsigned char, signed char, bool, true);
+ TEST_TTR(unsigned char, short int, bool, true);
+ TEST_TTR(unsigned char, int, bool, true);
+ TEST_TTR(unsigned char, long int, bool, true);
+ TEST_TTR(unsigned char, unsigned char, bool, true);
+ TEST_TTR(unsigned char, unsigned short int, bool, true);
+ TEST_TTR(unsigned char, unsigned int, bool, true);
+ TEST_TTR(unsigned char, unsigned long int, bool, true);
+ TEST_TTR(unsigned char, wchar_t, bool, true);
+ TEST_TTR(unsigned char, float, bool, true);
+ TEST_TTR(unsigned char, double, bool, true);
+ TEST_TTR(unsigned char, long double, bool, true);
+ TEST_TTR(unsigned short int, bool, bool, true);
+ TEST_TTR(unsigned short int, char, bool, true);
+ TEST_TTR(unsigned short int, signed char, bool, true);
+ TEST_TTR(unsigned short int, short int, bool, true);
+ TEST_TTR(unsigned short int, int, bool, true);
+ TEST_TTR(unsigned short int, long int, bool, true);
+ TEST_TTR(unsigned short int, unsigned char, bool, true);
+ TEST_TTR(unsigned short int, unsigned short int, bool, true);
+ TEST_TTR(unsigned short int, unsigned int, bool, true);
+ TEST_TTR(unsigned short int, unsigned long int, bool, true);
+ TEST_TTR(unsigned short int, wchar_t, bool, true);
+ TEST_TTR(unsigned short int, float, bool, true);
+ TEST_TTR(unsigned short int, double, bool, true);
+ TEST_TTR(unsigned short int, long double, bool, true);
+ TEST_TTR(unsigned int, bool, bool, true);
+ TEST_TTR(unsigned int, char, bool, true);
+ TEST_TTR(unsigned int, signed char, bool, true);
+ TEST_TTR(unsigned int, short int, bool, true);
+ TEST_TTR(unsigned int, int, bool, true);
+ TEST_TTR(unsigned int, long int, bool, true);
+ TEST_TTR(unsigned int, unsigned char, bool, true);
+ TEST_TTR(unsigned int, unsigned short int, bool, true);
+ TEST_TTR(unsigned int, unsigned int, bool, true);
+ TEST_TTR(unsigned int, unsigned long int, bool, true);
+ TEST_TTR(unsigned int, wchar_t, bool, true);
+ TEST_TTR(unsigned int, float, bool, true);
+ TEST_TTR(unsigned int, double, bool, true);
+ TEST_TTR(unsigned int, long double, bool, true);
+ TEST_TTR(unsigned long int, bool, bool, true);
+ TEST_TTR(unsigned long int, char, bool, true);
+ TEST_TTR(unsigned long int, signed char, bool, true);
+ TEST_TTR(unsigned long int, short int, bool, true);
+ TEST_TTR(unsigned long int, int, bool, true);
+ TEST_TTR(unsigned long int, long int, bool, true);
+ TEST_TTR(unsigned long int, unsigned char, bool, true);
+ TEST_TTR(unsigned long int, unsigned short int, bool, true);
+ TEST_TTR(unsigned long int, unsigned int, bool, true);
+ TEST_TTR(unsigned long int, unsigned long int, bool, true);
+ TEST_TTR(unsigned long int, wchar_t, bool, true);
+ TEST_TTR(unsigned long int, float, bool, true);
+ TEST_TTR(unsigned long int, double, bool, true);
+ TEST_TTR(unsigned long int, long double, bool, true);
+ TEST_TTR(wchar_t, bool, bool, true);
+ TEST_TTR(wchar_t, char, bool, true);
+ TEST_TTR(wchar_t, signed char, bool, true);
+ TEST_TTR(wchar_t, short int, bool, true);
+ TEST_TTR(wchar_t, int, bool, true);
+ TEST_TTR(wchar_t, long int, bool, true);
+ TEST_TTR(wchar_t, unsigned char, bool, true);
+ TEST_TTR(wchar_t, unsigned short int, bool, true);
+ TEST_TTR(wchar_t, unsigned int, bool, true);
+ TEST_TTR(wchar_t, unsigned long int, bool, true);
+ TEST_TTR(wchar_t, wchar_t, bool, true);
+ TEST_TTR(wchar_t, float, bool, true);
+ TEST_TTR(wchar_t, double, bool, true);
+ TEST_TTR(wchar_t, long double, bool, true);
+ TEST_TTR(float, bool, bool, true);
+ TEST_TTR(float, char, bool, true);
+ TEST_TTR(float, signed char, bool, true);
+ TEST_TTR(float, short int, bool, true);
+ TEST_TTR(float, int, bool, true);
+ TEST_TTR(float, long int, bool, true);
+ TEST_TTR(float, unsigned char, bool, true);
+ TEST_TTR(float, unsigned short int, bool, true);
+ TEST_TTR(float, unsigned int, bool, true);
+ TEST_TTR(float, unsigned long int, bool, true);
+ TEST_TTR(float, wchar_t, bool, true);
+ TEST_TTR(float, float, bool, true);
+ TEST_TTR(float, double, bool, true);
+ TEST_TTR(float, long double, bool, true);
+ TEST_TTR(double, bool, bool, true);
+ TEST_TTR(double, char, bool, true);
+ TEST_TTR(double, signed char, bool, true);
+ TEST_TTR(double, short int, bool, true);
+ TEST_TTR(double, int, bool, true);
+ TEST_TTR(double, long int, bool, true);
+ TEST_TTR(double, unsigned char, bool, true);
+ TEST_TTR(double, unsigned short int, bool, true);
+ TEST_TTR(double, unsigned int, bool, true);
+ TEST_TTR(double, unsigned long int, bool, true);
+ TEST_TTR(double, wchar_t, bool, true);
+ TEST_TTR(double, float, bool, true);
+ TEST_TTR(double, double, bool, true);
+ TEST_TTR(double, long double, bool, true);
+ TEST_TTR(long double, bool, bool, true);
+ TEST_TTR(long double, char, bool, true);
+ TEST_TTR(long double, signed char, bool, true);
+ TEST_TTR(long double, short int, bool, true);
+ TEST_TTR(long double, int, bool, true);
+ TEST_TTR(long double, long int, bool, true);
+ TEST_TTR(long double, unsigned char, bool, true);
+ TEST_TTR(long double, unsigned short int, bool, true);
+ TEST_TTR(long double, unsigned int, bool, true);
+ TEST_TTR(long double, unsigned long int, bool, true);
+ TEST_TTR(long double, wchar_t, bool, true);
+ TEST_TTR(long double, float, bool, true);
+ TEST_TTR(long double, double, bool, true);
+ TEST_TTR(long double, long double, bool, true);
+ TEST_TTR(bool, bool, tag, false);
+ TEST_TTR(bool, char, tag, false);
+ TEST_TTR(bool, signed char, tag, false);
+ TEST_TTR(bool, short int, tag, false);
+ TEST_TTR(bool, int, tag, false);
+ TEST_TTR(bool, long int, tag, false);
+ TEST_TTR(bool, unsigned char, tag, false);
+ TEST_TTR(bool, unsigned short int, tag, false);
+ TEST_TTR(bool, unsigned int, tag, false);
+ TEST_TTR(bool, unsigned long int, tag, false);
+ TEST_TTR(bool, wchar_t, tag, false);
+ TEST_TTR(bool, float, tag, false);
+ TEST_TTR(bool, double, tag, false);
+ TEST_TTR(bool, long double, tag, false);
+ TEST_TTR(char, bool, tag, false);
+ TEST_TTR(char, char, tag, false);
+ TEST_TTR(char, signed char, tag, false);
+ TEST_TTR(char, short int, tag, false);
+ TEST_TTR(char, int, tag, false);
+ TEST_TTR(char, long int, tag, false);
+ TEST_TTR(char, unsigned char, tag, false);
+ TEST_TTR(char, unsigned short int, tag, false);
+ TEST_TTR(char, unsigned int, tag, false);
+ TEST_TTR(char, unsigned long int, tag, false);
+ TEST_TTR(char, wchar_t, tag, false);
+ TEST_TTR(char, float, tag, false);
+ TEST_TTR(char, double, tag, false);
+ TEST_TTR(char, long double, tag, false);
+ TEST_TTR(signed char, bool, tag, false);
+ TEST_TTR(signed char, char, tag, false);
+ TEST_TTR(signed char, signed char, tag, false);
+ TEST_TTR(signed char, short int, tag, false);
+ TEST_TTR(signed char, int, tag, false);
+ TEST_TTR(signed char, long int, tag, false);
+ TEST_TTR(signed char, unsigned char, tag, false);
+ TEST_TTR(signed char, unsigned short int, tag, false);
+ TEST_TTR(signed char, unsigned int, tag, false);
+ TEST_TTR(signed char, unsigned long int, tag, false);
+ TEST_TTR(signed char, wchar_t, tag, false);
+ TEST_TTR(signed char, float, tag, false);
+ TEST_TTR(signed char, double, tag, false);
+ TEST_TTR(signed char, long double, tag, false);
+ TEST_TTR(short int, bool, tag, false);
+ TEST_TTR(short int, char, tag, false);
+ TEST_TTR(short int, signed char, tag, false);
+ TEST_TTR(short int, short int, tag, false);
+ TEST_TTR(short int, int, tag, false);
+ TEST_TTR(short int, long int, tag, false);
+ TEST_TTR(short int, unsigned char, tag, false);
+ TEST_TTR(short int, unsigned short int, tag, false);
+ TEST_TTR(short int, unsigned int, tag, false);
+ TEST_TTR(short int, unsigned long int, tag, false);
+ TEST_TTR(short int, wchar_t, tag, false);
+ TEST_TTR(short int, float, tag, false);
+ TEST_TTR(short int, double, tag, false);
+ TEST_TTR(short int, long double, tag, false);
+ TEST_TTR(int, bool, tag, false);
+ TEST_TTR(int, char, tag, false);
+ TEST_TTR(int, signed char, tag, false);
+ TEST_TTR(int, short int, tag, false);
+ TEST_TTR(int, int, tag, false);
+ TEST_TTR(int, long int, tag, false);
+ TEST_TTR(int, unsigned char, tag, false);
+ TEST_TTR(int, unsigned short int, tag, false);
+ TEST_TTR(int, unsigned int, tag, false);
+ TEST_TTR(int, unsigned long int, tag, false);
+ TEST_TTR(int, wchar_t, tag, false);
+ TEST_TTR(int, float, tag, false);
+ TEST_TTR(int, double, tag, false);
+ TEST_TTR(int, long double, tag, false);
+ TEST_TTR(long int, bool, tag, false);
+ TEST_TTR(long int, char, tag, false);
+ TEST_TTR(long int, signed char, tag, false);
+ TEST_TTR(long int, short int, tag, false);
+ TEST_TTR(long int, int, tag, false);
+ TEST_TTR(long int, long int, tag, false);
+ TEST_TTR(long int, unsigned char, tag, false);
+ TEST_TTR(long int, unsigned short int, tag, false);
+ TEST_TTR(long int, unsigned int, tag, false);
+ TEST_TTR(long int, unsigned long int, tag, false);
+ TEST_TTR(long int, wchar_t, tag, false);
+ TEST_TTR(long int, float, tag, false);
+ TEST_TTR(long int, double, tag, false);
+ TEST_TTR(long int, long double, tag, false);
+ TEST_TTR(unsigned char, bool, tag, false);
+ TEST_TTR(unsigned char, char, tag, false);
+ TEST_TTR(unsigned char, signed char, tag, false);
+ TEST_TTR(unsigned char, short int, tag, false);
+ TEST_TTR(unsigned char, int, tag, false);
+ TEST_TTR(unsigned char, long int, tag, false);
+ TEST_TTR(unsigned char, unsigned char, tag, false);
+ TEST_TTR(unsigned char, unsigned short int, tag, false);
+ TEST_TTR(unsigned char, unsigned int, tag, false);
+ TEST_TTR(unsigned char, unsigned long int, tag, false);
+ TEST_TTR(unsigned char, wchar_t, tag, false);
+ TEST_TTR(unsigned char, float, tag, false);
+ TEST_TTR(unsigned char, double, tag, false);
+ TEST_TTR(unsigned char, long double, tag, false);
+ TEST_TTR(unsigned short int, bool, tag, false);
+ TEST_TTR(unsigned short int, char, tag, false);
+ TEST_TTR(unsigned short int, signed char, tag, false);
+ TEST_TTR(unsigned short int, short int, tag, false);
+ TEST_TTR(unsigned short int, int, tag, false);
+ TEST_TTR(unsigned short int, long int, tag, false);
+ TEST_TTR(unsigned short int, unsigned char, tag, false);
+ TEST_TTR(unsigned short int, unsigned short int, tag, false);
+ TEST_TTR(unsigned short int, unsigned int, tag, false);
+ TEST_TTR(unsigned short int, unsigned long int, tag, false);
+ TEST_TTR(unsigned short int, wchar_t, tag, false);
+ TEST_TTR(unsigned short int, float, tag, false);
+ TEST_TTR(unsigned short int, double, tag, false);
+ TEST_TTR(unsigned short int, long double, tag, false);
+ TEST_TTR(unsigned int, bool, tag, false);
+ TEST_TTR(unsigned int, char, tag, false);
+ TEST_TTR(unsigned int, signed char, tag, false);
+ TEST_TTR(unsigned int, short int, tag, false);
+ TEST_TTR(unsigned int, int, tag, false);
+ TEST_TTR(unsigned int, long int, tag, false);
+ TEST_TTR(unsigned int, unsigned char, tag, false);
+ TEST_TTR(unsigned int, unsigned short int, tag, false);
+ TEST_TTR(unsigned int, unsigned int, tag, false);
+ TEST_TTR(unsigned int, unsigned long int, tag, false);
+ TEST_TTR(unsigned int, wchar_t, tag, false);
+ TEST_TTR(unsigned int, float, tag, false);
+ TEST_TTR(unsigned int, double, tag, false);
+ TEST_TTR(unsigned int, long double, tag, false);
+ TEST_TTR(unsigned long int, bool, tag, false);
+ TEST_TTR(unsigned long int, char, tag, false);
+ TEST_TTR(unsigned long int, signed char, tag, false);
+ TEST_TTR(unsigned long int, short int, tag, false);
+ TEST_TTR(unsigned long int, int, tag, false);
+ TEST_TTR(unsigned long int, long int, tag, false);
+ TEST_TTR(unsigned long int, unsigned char, tag, false);
+ TEST_TTR(unsigned long int, unsigned short int, tag, false);
+ TEST_TTR(unsigned long int, unsigned int, tag, false);
+ TEST_TTR(unsigned long int, unsigned long int, tag, false);
+ TEST_TTR(unsigned long int, wchar_t, tag, false);
+ TEST_TTR(unsigned long int, float, tag, false);
+ TEST_TTR(unsigned long int, double, tag, false);
+ TEST_TTR(unsigned long int, long double, tag, false);
+ TEST_TTR(wchar_t, bool, tag, false);
+ TEST_TTR(wchar_t, char, tag, false);
+ TEST_TTR(wchar_t, signed char, tag, false);
+ TEST_TTR(wchar_t, short int, tag, false);
+ TEST_TTR(wchar_t, int, tag, false);
+ TEST_TTR(wchar_t, long int, tag, false);
+ TEST_TTR(wchar_t, unsigned char, tag, false);
+ TEST_TTR(wchar_t, unsigned short int, tag, false);
+ TEST_TTR(wchar_t, unsigned int, tag, false);
+ TEST_TTR(wchar_t, unsigned long int, tag, false);
+ TEST_TTR(wchar_t, wchar_t, tag, false);
+ TEST_TTR(wchar_t, float, tag, false);
+ TEST_TTR(wchar_t, double, tag, false);
+ TEST_TTR(wchar_t, long double, tag, false);
+ TEST_TTR(float, bool, tag, false);
+ TEST_TTR(float, char, tag, false);
+ TEST_TTR(float, signed char, tag, false);
+ TEST_TTR(float, short int, tag, false);
+ TEST_TTR(float, int, tag, false);
+ TEST_TTR(float, long int, tag, false);
+ TEST_TTR(float, unsigned char, tag, false);
+ TEST_TTR(float, unsigned short int, tag, false);
+ TEST_TTR(float, unsigned int, tag, false);
+ TEST_TTR(float, unsigned long int, tag, false);
+ TEST_TTR(float, wchar_t, tag, false);
+ TEST_TTR(float, float, tag, false);
+ TEST_TTR(float, double, tag, false);
+ TEST_TTR(float, long double, tag, false);
+ TEST_TTR(double, bool, tag, false);
+ TEST_TTR(double, char, tag, false);
+ TEST_TTR(double, signed char, tag, false);
+ TEST_TTR(double, short int, tag, false);
+ TEST_TTR(double, int, tag, false);
+ TEST_TTR(double, long int, tag, false);
+ TEST_TTR(double, unsigned char, tag, false);
+ TEST_TTR(double, unsigned short int, tag, false);
+ TEST_TTR(double, unsigned int, tag, false);
+ TEST_TTR(double, unsigned long int, tag, false);
+ TEST_TTR(double, wchar_t, tag, false);
+ TEST_TTR(double, float, tag, false);
+ TEST_TTR(double, double, tag, false);
+ TEST_TTR(double, long double, tag, false);
+ TEST_TTR(long double, bool, tag, false);
+ TEST_TTR(long double, char, tag, false);
+ TEST_TTR(long double, signed char, tag, false);
+ TEST_TTR(long double, short int, tag, false);
+ TEST_TTR(long double, int, tag, false);
+ TEST_TTR(long double, long int, tag, false);
+ TEST_TTR(long double, unsigned char, tag, false);
+ TEST_TTR(long double, unsigned short int, tag, false);
+ TEST_TTR(long double, unsigned int, tag, false);
+ TEST_TTR(long double, unsigned long int, tag, false);
+ TEST_TTR(long double, wchar_t, tag, false);
+ TEST_TTR(long double, float, tag, false);
+ TEST_TTR(long double, double, tag, false);
+ TEST_TTR(long double, long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+ // pointers
+ TEST_TT(void*, bool, false);
+ TEST_TT(void*, int, false);
+ TEST_TT(void*, double, false);
+ TEST_TT(void*, A, false);
+ TEST_TT(void*, B, false);
+ TEST_TT(bool*, bool, true);
+ TEST_TT(bool*, int, true);
+ TEST_TT(bool*, double, false);
+ TEST_TT(bool*, A, false);
+ TEST_TT(bool*, B, false);
+ TEST_TT(int*, bool, true);
+ TEST_TT(int*, int, true);
+ TEST_TT(int*, double, false);
+ TEST_TT(int*, A, false);
+ TEST_TT(int*, B, false);
+ TEST_TT(double*, bool, true);
+ TEST_TT(double*, int, true);
+ TEST_TT(double*, double, false);
+ TEST_TT(double*, A, false);
+ TEST_TT(double*, B, false);
+ TEST_TT(A*, bool, true);
+ TEST_TT(A*, int, true);
+ TEST_TT(A*, double, false);
+ TEST_TT(A*, A, false);
+ TEST_TT(A*, B, false);
+ TEST_TT(B*, bool, true);
+ TEST_TT(B*, int, true);
+ TEST_TT(B*, double, false);
+ TEST_TT(B*, A, false);
+ TEST_TT(B*, B, false);
+ TEST_TT(bool, void*, false);
+ TEST_TT(bool, bool*, true);
+ TEST_TT(bool, int*, true);
+ TEST_TT(bool, double*, true);
+ TEST_TT(bool, A*, true);
+ TEST_TT(bool, B*, true);
+ TEST_TT(int, void*, false);
+ TEST_TT(int, bool*, true);
+ TEST_TT(int, int*, true);
+ TEST_TT(int, double*, true);
+ TEST_TT(int, A*, true);
+ TEST_TT(int, B*, true);
+ TEST_TT(double, void*, false);
+ TEST_TT(double, bool*, false);
+ TEST_TT(double, int*, false);
+ TEST_TT(double, double*, false);
+ TEST_TT(double, A*, false);
+ TEST_TT(double, B*, false);
+ TEST_TT(A, void*, false);
+ TEST_TT(A, bool*, false);
+ TEST_TT(A, int*, false);
+ TEST_TT(A, double*, false);
+ TEST_TT(A, A*, false);
+ TEST_TT(A, B*, false);
+ TEST_TT(B, void*, false);
+ TEST_TT(B, bool*, false);
+ TEST_TT(B, int*, false);
+ TEST_TT(B, double*, false);
+ TEST_TT(B, A*, false);
+ TEST_TT(B, B*, false);
+ TEST_TT(void*, void*, false);
+ TEST_TT(void*, bool*, false);
+ TEST_TT(void*, int*, false);
+ TEST_TT(void*, double*, false);
+ TEST_TT(void*, A*, false);
+ TEST_TT(void*, B*, false);
+ TEST_TT(bool*, void*, false);
+ TEST_TT(bool*, bool*, false);
+ TEST_TT(bool*, int*, false);
+ TEST_TT(bool*, double*, false);
+ TEST_TT(bool*, A*, false);
+ TEST_TT(bool*, B*, false);
+ TEST_TT(int*, void*, false);
+ TEST_TT(int*, bool*, false);
+ TEST_TT(int*, int*, false);
+ TEST_TT(int*, double*, false);
+ TEST_TT(int*, A*, false);
+ TEST_TT(int*, B*, false);
+ TEST_TT(double*, void*, false);
+ TEST_TT(double*, bool*, false);
+ TEST_TT(double*, int*, false);
+ TEST_TT(double*, double*, false);
+ TEST_TT(double*, A*, false);
+ TEST_TT(double*, B*, false);
+ TEST_TT(A*, void*, false);
+ TEST_TT(A*, bool*, false);
+ TEST_TT(A*, int*, false);
+ TEST_TT(A*, double*, false);
+ TEST_TT(A*, A*, false);
+ TEST_TT(A*, B*, false);
+ TEST_TT(B*, void*, false);
+ TEST_TT(B*, bool*, false);
+ TEST_TT(B*, int*, false);
+ TEST_TT(B*, double*, false);
+ TEST_TT(B*, A*, false);
+ TEST_TT(B*, B*, false);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_comparison_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_comparison_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,836 @@
+// (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
+#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
+#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
+#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
+#define TEST_TTR(TYPE1,TYPE2,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (const internal&) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, const external&);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP (const internal_private&) const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (const returns_int&); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (const returns_void&); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (const returns_void_star&); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (const returns_double&); };
+
+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&); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&, const Base1&) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&, const Derived2&) { return true; }
+
+struct tag { };
+
+struct A { };
+struct B : public A { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, true);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+ // test with only two template parameters
+ TEST_TT(bool, bool, true);
+ TEST_TT(bool, char, true);
+ TEST_TT(bool, signed char, true);
+ TEST_TT(bool, short int, true);
+ TEST_TT(bool, int, true);
+ TEST_TT(bool, long int, true);
+ TEST_TT(bool, unsigned char, true);
+ TEST_TT(bool, unsigned short int, true);
+ TEST_TT(bool, unsigned int, true);
+ TEST_TT(bool, unsigned long int, true);
+ TEST_TT(bool, wchar_t, true);
+ TEST_TT(bool, float, true);
+ TEST_TT(bool, double, true);
+ TEST_TT(bool, long double, true);
+ TEST_TT(char, bool, true);
+ TEST_TT(char, char, true);
+ TEST_TT(char, signed char, true);
+ TEST_TT(char, short int, true);
+ TEST_TT(char, int, true);
+ TEST_TT(char, long int, true);
+ TEST_TT(char, unsigned char, true);
+ TEST_TT(char, unsigned short int, true);
+ TEST_TT(char, unsigned int, true);
+ TEST_TT(char, unsigned long int, true);
+ TEST_TT(char, wchar_t, true);
+ TEST_TT(char, float, true);
+ TEST_TT(char, double, true);
+ TEST_TT(char, long double, true);
+ TEST_TT(signed char, bool, true);
+ TEST_TT(signed char, char, true);
+ TEST_TT(signed char, signed char, true);
+ TEST_TT(signed char, short int, true);
+ TEST_TT(signed char, int, true);
+ TEST_TT(signed char, long int, true);
+ TEST_TT(signed char, unsigned char, true);
+ TEST_TT(signed char, unsigned short int, true);
+ TEST_TT(signed char, unsigned int, true);
+ TEST_TT(signed char, unsigned long int, true);
+ TEST_TT(signed char, wchar_t, true);
+ TEST_TT(signed char, float, true);
+ TEST_TT(signed char, double, true);
+ TEST_TT(signed char, long double, true);
+ TEST_TT(short int, bool, true);
+ TEST_TT(short int, char, true);
+ TEST_TT(short int, signed char, true);
+ TEST_TT(short int, short int, true);
+ TEST_TT(short int, int, true);
+ TEST_TT(short int, long int, true);
+ TEST_TT(short int, unsigned char, true);
+ TEST_TT(short int, unsigned short int, true);
+ TEST_TT(short int, unsigned int, true);
+ TEST_TT(short int, unsigned long int, true);
+ TEST_TT(short int, wchar_t, true);
+ TEST_TT(short int, float, true);
+ TEST_TT(short int, double, true);
+ TEST_TT(short int, long double, true);
+ TEST_TT(int, bool, true);
+ TEST_TT(int, char, true);
+ TEST_TT(int, signed char, true);
+ TEST_TT(int, short int, true);
+ TEST_TT(int, int, true);
+ TEST_TT(int, long int, true);
+ TEST_TT(int, unsigned char, true);
+ TEST_TT(int, unsigned short int, true);
+ TEST_TT(int, unsigned int, true);
+ TEST_TT(int, unsigned long int, true);
+ TEST_TT(int, wchar_t, true);
+ TEST_TT(int, float, true);
+ TEST_TT(int, double, true);
+ TEST_TT(int, long double, true);
+ TEST_TT(long int, bool, true);
+ TEST_TT(long int, char, true);
+ TEST_TT(long int, signed char, true);
+ TEST_TT(long int, short int, true);
+ TEST_TT(long int, int, true);
+ TEST_TT(long int, long int, true);
+ TEST_TT(long int, unsigned char, true);
+ TEST_TT(long int, unsigned short int, true);
+ TEST_TT(long int, unsigned int, true);
+ TEST_TT(long int, unsigned long int, true);
+ TEST_TT(long int, wchar_t, true);
+ TEST_TT(long int, float, true);
+ TEST_TT(long int, double, true);
+ TEST_TT(long int, long double, true);
+ TEST_TT(unsigned char, bool, true);
+ TEST_TT(unsigned char, char, true);
+ TEST_TT(unsigned char, signed char, true);
+ TEST_TT(unsigned char, short int, true);
+ TEST_TT(unsigned char, int, true);
+ TEST_TT(unsigned char, long int, true);
+ TEST_TT(unsigned char, unsigned char, true);
+ TEST_TT(unsigned char, unsigned short int, true);
+ TEST_TT(unsigned char, unsigned int, true);
+ TEST_TT(unsigned char, unsigned long int, true);
+ TEST_TT(unsigned char, wchar_t, true);
+ TEST_TT(unsigned char, float, true);
+ TEST_TT(unsigned char, double, true);
+ TEST_TT(unsigned char, long double, true);
+ TEST_TT(unsigned short int, bool, true);
+ TEST_TT(unsigned short int, char, true);
+ TEST_TT(unsigned short int, signed char, true);
+ TEST_TT(unsigned short int, short int, true);
+ TEST_TT(unsigned short int, int, true);
+ TEST_TT(unsigned short int, long int, true);
+ TEST_TT(unsigned short int, unsigned char, true);
+ TEST_TT(unsigned short int, unsigned short int, true);
+ TEST_TT(unsigned short int, unsigned int, true);
+ TEST_TT(unsigned short int, unsigned long int, true);
+ TEST_TT(unsigned short int, wchar_t, true);
+ TEST_TT(unsigned short int, float, true);
+ TEST_TT(unsigned short int, double, true);
+ TEST_TT(unsigned short int, long double, true);
+ TEST_TT(unsigned int, bool, true);
+ TEST_TT(unsigned int, char, true);
+ TEST_TT(unsigned int, signed char, true);
+ TEST_TT(unsigned int, short int, true);
+ TEST_TT(unsigned int, int, true);
+ TEST_TT(unsigned int, long int, true);
+ TEST_TT(unsigned int, unsigned char, true);
+ TEST_TT(unsigned int, unsigned short int, true);
+ TEST_TT(unsigned int, unsigned int, true);
+ TEST_TT(unsigned int, unsigned long int, true);
+ TEST_TT(unsigned int, wchar_t, true);
+ TEST_TT(unsigned int, float, true);
+ TEST_TT(unsigned int, double, true);
+ TEST_TT(unsigned int, long double, true);
+ TEST_TT(unsigned long int, bool, true);
+ TEST_TT(unsigned long int, char, true);
+ TEST_TT(unsigned long int, signed char, true);
+ TEST_TT(unsigned long int, short int, true);
+ TEST_TT(unsigned long int, int, true);
+ TEST_TT(unsigned long int, long int, true);
+ TEST_TT(unsigned long int, unsigned char, true);
+ TEST_TT(unsigned long int, unsigned short int, true);
+ TEST_TT(unsigned long int, unsigned int, true);
+ TEST_TT(unsigned long int, unsigned long int, true);
+ TEST_TT(unsigned long int, wchar_t, true);
+ TEST_TT(unsigned long int, float, true);
+ TEST_TT(unsigned long int, double, true);
+ TEST_TT(unsigned long int, long double, true);
+ TEST_TT(wchar_t, bool, true);
+ TEST_TT(wchar_t, char, true);
+ TEST_TT(wchar_t, signed char, true);
+ TEST_TT(wchar_t, short int, true);
+ TEST_TT(wchar_t, int, true);
+ TEST_TT(wchar_t, long int, true);
+ TEST_TT(wchar_t, unsigned char, true);
+ TEST_TT(wchar_t, unsigned short int, true);
+ TEST_TT(wchar_t, unsigned int, true);
+ TEST_TT(wchar_t, unsigned long int, true);
+ TEST_TT(wchar_t, wchar_t, true);
+ TEST_TT(wchar_t, float, true);
+ TEST_TT(wchar_t, double, true);
+ TEST_TT(wchar_t, long double, true);
+ TEST_TT(float, bool, true);
+ TEST_TT(float, char, true);
+ TEST_TT(float, signed char, true);
+ TEST_TT(float, short int, true);
+ TEST_TT(float, int, true);
+ TEST_TT(float, long int, true);
+ TEST_TT(float, unsigned char, true);
+ TEST_TT(float, unsigned short int, true);
+ TEST_TT(float, unsigned int, true);
+ TEST_TT(float, unsigned long int, true);
+ TEST_TT(float, wchar_t, true);
+ TEST_TT(float, float, true);
+ TEST_TT(float, double, true);
+ TEST_TT(float, long double, true);
+ TEST_TT(double, bool, true);
+ TEST_TT(double, char, true);
+ TEST_TT(double, signed char, true);
+ TEST_TT(double, short int, true);
+ TEST_TT(double, int, true);
+ TEST_TT(double, long int, true);
+ TEST_TT(double, unsigned char, true);
+ TEST_TT(double, unsigned short int, true);
+ TEST_TT(double, unsigned int, true);
+ TEST_TT(double, unsigned long int, true);
+ TEST_TT(double, wchar_t, true);
+ TEST_TT(double, float, true);
+ TEST_TT(double, double, true);
+ TEST_TT(double, long double, true);
+ TEST_TT(long double, bool, true);
+ TEST_TT(long double, char, true);
+ TEST_TT(long double, signed char, true);
+ TEST_TT(long double, short int, true);
+ TEST_TT(long double, int, true);
+ TEST_TT(long double, long int, true);
+ TEST_TT(long double, unsigned char, true);
+ TEST_TT(long double, unsigned short int, true);
+ TEST_TT(long double, unsigned int, true);
+ TEST_TT(long double, unsigned long int, true);
+ TEST_TT(long double, wchar_t, true);
+ TEST_TT(long double, float, true);
+ TEST_TT(long double, double, true);
+ TEST_TT(long double, long double, true);
+ TEST_TT(bool, void, false);
+ TEST_TT(void, bool, false);
+ TEST_TT(char, void, false);
+ TEST_TT(void, char, false);
+ TEST_TT(signed char, void, false);
+ TEST_TT(void, signed char, false);
+ TEST_TT(short int, void, false);
+ TEST_TT(void, short int, false);
+ TEST_TT(int, void, false);
+ TEST_TT(void, int, false);
+ TEST_TT(long int, void, false);
+ TEST_TT(void, long int, false);
+ TEST_TT(unsigned char, void, false);
+ TEST_TT(void, unsigned char, false);
+ TEST_TT(unsigned short int, void, false);
+ TEST_TT(void, unsigned short int, false);
+ TEST_TT(unsigned int, void, false);
+ TEST_TT(void, unsigned int, false);
+ TEST_TT(unsigned long int, void, false);
+ TEST_TT(void, unsigned long int, false);
+ TEST_TT(wchar_t, void, false);
+ TEST_TT(void, wchar_t, false);
+ TEST_TT(float, void, false);
+ TEST_TT(void, float, false);
+ TEST_TT(double, void, false);
+ TEST_TT(void, double, false);
+ TEST_TT(long double, void, false);
+ TEST_TT(void, long double, false);
+
+// test with three template parameters
+ TEST_TTR(bool, bool, bool, true);
+ TEST_TTR(bool, char, bool, true);
+ TEST_TTR(bool, signed char, bool, true);
+ TEST_TTR(bool, short int, bool, true);
+ TEST_TTR(bool, int, bool, true);
+ TEST_TTR(bool, long int, bool, true);
+ TEST_TTR(bool, unsigned char, bool, true);
+ TEST_TTR(bool, unsigned short int, bool, true);
+ TEST_TTR(bool, unsigned int, bool, true);
+ TEST_TTR(bool, unsigned long int, bool, true);
+ TEST_TTR(bool, wchar_t, bool, true);
+ TEST_TTR(bool, float, bool, true);
+ TEST_TTR(bool, double, bool, true);
+ TEST_TTR(bool, long double, bool, true);
+ TEST_TTR(char, bool, bool, true);
+ TEST_TTR(char, char, bool, true);
+ TEST_TTR(char, signed char, bool, true);
+ TEST_TTR(char, short int, bool, true);
+ TEST_TTR(char, int, bool, true);
+ TEST_TTR(char, long int, bool, true);
+ TEST_TTR(char, unsigned char, bool, true);
+ TEST_TTR(char, unsigned short int, bool, true);
+ TEST_TTR(char, unsigned int, bool, true);
+ TEST_TTR(char, unsigned long int, bool, true);
+ TEST_TTR(char, wchar_t, bool, true);
+ TEST_TTR(char, float, bool, true);
+ TEST_TTR(char, double, bool, true);
+ TEST_TTR(char, long double, bool, true);
+ TEST_TTR(signed char, bool, bool, true);
+ TEST_TTR(signed char, char, bool, true);
+ TEST_TTR(signed char, signed char, bool, true);
+ TEST_TTR(signed char, short int, bool, true);
+ TEST_TTR(signed char, int, bool, true);
+ TEST_TTR(signed char, long int, bool, true);
+ TEST_TTR(signed char, unsigned char, bool, true);
+ TEST_TTR(signed char, unsigned short int, bool, true);
+ TEST_TTR(signed char, unsigned int, bool, true);
+ TEST_TTR(signed char, unsigned long int, bool, true);
+ TEST_TTR(signed char, wchar_t, bool, true);
+ TEST_TTR(signed char, float, bool, true);
+ TEST_TTR(signed char, double, bool, true);
+ TEST_TTR(signed char, long double, bool, true);
+ TEST_TTR(short int, bool, bool, true);
+ TEST_TTR(short int, char, bool, true);
+ TEST_TTR(short int, signed char, bool, true);
+ TEST_TTR(short int, short int, bool, true);
+ TEST_TTR(short int, int, bool, true);
+ TEST_TTR(short int, long int, bool, true);
+ TEST_TTR(short int, unsigned char, bool, true);
+ TEST_TTR(short int, unsigned short int, bool, true);
+ TEST_TTR(short int, unsigned int, bool, true);
+ TEST_TTR(short int, unsigned long int, bool, true);
+ TEST_TTR(short int, wchar_t, bool, true);
+ TEST_TTR(short int, float, bool, true);
+ TEST_TTR(short int, double, bool, true);
+ TEST_TTR(short int, long double, bool, true);
+ TEST_TTR(int, bool, bool, true);
+ TEST_TTR(int, char, bool, true);
+ TEST_TTR(int, signed char, bool, true);
+ TEST_TTR(int, short int, bool, true);
+ TEST_TTR(int, int, bool, true);
+ TEST_TTR(int, long int, bool, true);
+ TEST_TTR(int, unsigned char, bool, true);
+ TEST_TTR(int, unsigned short int, bool, true);
+ TEST_TTR(int, unsigned int, bool, true);
+ TEST_TTR(int, unsigned long int, bool, true);
+ TEST_TTR(int, wchar_t, bool, true);
+ TEST_TTR(int, float, bool, true);
+ TEST_TTR(int, double, bool, true);
+ TEST_TTR(int, long double, bool, true);
+ TEST_TTR(long int, bool, bool, true);
+ TEST_TTR(long int, char, bool, true);
+ TEST_TTR(long int, signed char, bool, true);
+ TEST_TTR(long int, short int, bool, true);
+ TEST_TTR(long int, int, bool, true);
+ TEST_TTR(long int, long int, bool, true);
+ TEST_TTR(long int, unsigned char, bool, true);
+ TEST_TTR(long int, unsigned short int, bool, true);
+ TEST_TTR(long int, unsigned int, bool, true);
+ TEST_TTR(long int, unsigned long int, bool, true);
+ TEST_TTR(long int, wchar_t, bool, true);
+ TEST_TTR(long int, float, bool, true);
+ TEST_TTR(long int, double, bool, true);
+ TEST_TTR(long int, long double, bool, true);
+ TEST_TTR(unsigned char, bool, bool, true);
+ TEST_TTR(unsigned char, char, bool, true);
+ TEST_TTR(unsigned char, signed char, bool, true);
+ TEST_TTR(unsigned char, short int, bool, true);
+ TEST_TTR(unsigned char, int, bool, true);
+ TEST_TTR(unsigned char, long int, bool, true);
+ TEST_TTR(unsigned char, unsigned char, bool, true);
+ TEST_TTR(unsigned char, unsigned short int, bool, true);
+ TEST_TTR(unsigned char, unsigned int, bool, true);
+ TEST_TTR(unsigned char, unsigned long int, bool, true);
+ TEST_TTR(unsigned char, wchar_t, bool, true);
+ TEST_TTR(unsigned char, float, bool, true);
+ TEST_TTR(unsigned char, double, bool, true);
+ TEST_TTR(unsigned char, long double, bool, true);
+ TEST_TTR(unsigned short int, bool, bool, true);
+ TEST_TTR(unsigned short int, char, bool, true);
+ TEST_TTR(unsigned short int, signed char, bool, true);
+ TEST_TTR(unsigned short int, short int, bool, true);
+ TEST_TTR(unsigned short int, int, bool, true);
+ TEST_TTR(unsigned short int, long int, bool, true);
+ TEST_TTR(unsigned short int, unsigned char, bool, true);
+ TEST_TTR(unsigned short int, unsigned short int, bool, true);
+ TEST_TTR(unsigned short int, unsigned int, bool, true);
+ TEST_TTR(unsigned short int, unsigned long int, bool, true);
+ TEST_TTR(unsigned short int, wchar_t, bool, true);
+ TEST_TTR(unsigned short int, float, bool, true);
+ TEST_TTR(unsigned short int, double, bool, true);
+ TEST_TTR(unsigned short int, long double, bool, true);
+ TEST_TTR(unsigned int, bool, bool, true);
+ TEST_TTR(unsigned int, char, bool, true);
+ TEST_TTR(unsigned int, signed char, bool, true);
+ TEST_TTR(unsigned int, short int, bool, true);
+ TEST_TTR(unsigned int, int, bool, true);
+ TEST_TTR(unsigned int, long int, bool, true);
+ TEST_TTR(unsigned int, unsigned char, bool, true);
+ TEST_TTR(unsigned int, unsigned short int, bool, true);
+ TEST_TTR(unsigned int, unsigned int, bool, true);
+ TEST_TTR(unsigned int, unsigned long int, bool, true);
+ TEST_TTR(unsigned int, wchar_t, bool, true);
+ TEST_TTR(unsigned int, float, bool, true);
+ TEST_TTR(unsigned int, double, bool, true);
+ TEST_TTR(unsigned int, long double, bool, true);
+ TEST_TTR(unsigned long int, bool, bool, true);
+ TEST_TTR(unsigned long int, char, bool, true);
+ TEST_TTR(unsigned long int, signed char, bool, true);
+ TEST_TTR(unsigned long int, short int, bool, true);
+ TEST_TTR(unsigned long int, int, bool, true);
+ TEST_TTR(unsigned long int, long int, bool, true);
+ TEST_TTR(unsigned long int, unsigned char, bool, true);
+ TEST_TTR(unsigned long int, unsigned short int, bool, true);
+ TEST_TTR(unsigned long int, unsigned int, bool, true);
+ TEST_TTR(unsigned long int, unsigned long int, bool, true);
+ TEST_TTR(unsigned long int, wchar_t, bool, true);
+ TEST_TTR(unsigned long int, float, bool, true);
+ TEST_TTR(unsigned long int, double, bool, true);
+ TEST_TTR(unsigned long int, long double, bool, true);
+ TEST_TTR(wchar_t, bool, bool, true);
+ TEST_TTR(wchar_t, char, bool, true);
+ TEST_TTR(wchar_t, signed char, bool, true);
+ TEST_TTR(wchar_t, short int, bool, true);
+ TEST_TTR(wchar_t, int, bool, true);
+ TEST_TTR(wchar_t, long int, bool, true);
+ TEST_TTR(wchar_t, unsigned char, bool, true);
+ TEST_TTR(wchar_t, unsigned short int, bool, true);
+ TEST_TTR(wchar_t, unsigned int, bool, true);
+ TEST_TTR(wchar_t, unsigned long int, bool, true);
+ TEST_TTR(wchar_t, wchar_t, bool, true);
+ TEST_TTR(wchar_t, float, bool, true);
+ TEST_TTR(wchar_t, double, bool, true);
+ TEST_TTR(wchar_t, long double, bool, true);
+ TEST_TTR(float, bool, bool, true);
+ TEST_TTR(float, char, bool, true);
+ TEST_TTR(float, signed char, bool, true);
+ TEST_TTR(float, short int, bool, true);
+ TEST_TTR(float, int, bool, true);
+ TEST_TTR(float, long int, bool, true);
+ TEST_TTR(float, unsigned char, bool, true);
+ TEST_TTR(float, unsigned short int, bool, true);
+ TEST_TTR(float, unsigned int, bool, true);
+ TEST_TTR(float, unsigned long int, bool, true);
+ TEST_TTR(float, wchar_t, bool, true);
+ TEST_TTR(float, float, bool, true);
+ TEST_TTR(float, double, bool, true);
+ TEST_TTR(float, long double, bool, true);
+ TEST_TTR(double, bool, bool, true);
+ TEST_TTR(double, char, bool, true);
+ TEST_TTR(double, signed char, bool, true);
+ TEST_TTR(double, short int, bool, true);
+ TEST_TTR(double, int, bool, true);
+ TEST_TTR(double, long int, bool, true);
+ TEST_TTR(double, unsigned char, bool, true);
+ TEST_TTR(double, unsigned short int, bool, true);
+ TEST_TTR(double, unsigned int, bool, true);
+ TEST_TTR(double, unsigned long int, bool, true);
+ TEST_TTR(double, wchar_t, bool, true);
+ TEST_TTR(double, float, bool, true);
+ TEST_TTR(double, double, bool, true);
+ TEST_TTR(double, long double, bool, true);
+ TEST_TTR(long double, bool, bool, true);
+ TEST_TTR(long double, char, bool, true);
+ TEST_TTR(long double, signed char, bool, true);
+ TEST_TTR(long double, short int, bool, true);
+ TEST_TTR(long double, int, bool, true);
+ TEST_TTR(long double, long int, bool, true);
+ TEST_TTR(long double, unsigned char, bool, true);
+ TEST_TTR(long double, unsigned short int, bool, true);
+ TEST_TTR(long double, unsigned int, bool, true);
+ TEST_TTR(long double, unsigned long int, bool, true);
+ TEST_TTR(long double, wchar_t, bool, true);
+ TEST_TTR(long double, float, bool, true);
+ TEST_TTR(long double, double, bool, true);
+ TEST_TTR(long double, long double, bool, true);
+ TEST_TTR(bool, bool, tag, false);
+ TEST_TTR(bool, char, tag, false);
+ TEST_TTR(bool, signed char, tag, false);
+ TEST_TTR(bool, short int, tag, false);
+ TEST_TTR(bool, int, tag, false);
+ TEST_TTR(bool, long int, tag, false);
+ TEST_TTR(bool, unsigned char, tag, false);
+ TEST_TTR(bool, unsigned short int, tag, false);
+ TEST_TTR(bool, unsigned int, tag, false);
+ TEST_TTR(bool, unsigned long int, tag, false);
+ TEST_TTR(bool, wchar_t, tag, false);
+ TEST_TTR(bool, float, tag, false);
+ TEST_TTR(bool, double, tag, false);
+ TEST_TTR(bool, long double, tag, false);
+ TEST_TTR(char, bool, tag, false);
+ TEST_TTR(char, char, tag, false);
+ TEST_TTR(char, signed char, tag, false);
+ TEST_TTR(char, short int, tag, false);
+ TEST_TTR(char, int, tag, false);
+ TEST_TTR(char, long int, tag, false);
+ TEST_TTR(char, unsigned char, tag, false);
+ TEST_TTR(char, unsigned short int, tag, false);
+ TEST_TTR(char, unsigned int, tag, false);
+ TEST_TTR(char, unsigned long int, tag, false);
+ TEST_TTR(char, wchar_t, tag, false);
+ TEST_TTR(char, float, tag, false);
+ TEST_TTR(char, double, tag, false);
+ TEST_TTR(char, long double, tag, false);
+ TEST_TTR(signed char, bool, tag, false);
+ TEST_TTR(signed char, char, tag, false);
+ TEST_TTR(signed char, signed char, tag, false);
+ TEST_TTR(signed char, short int, tag, false);
+ TEST_TTR(signed char, int, tag, false);
+ TEST_TTR(signed char, long int, tag, false);
+ TEST_TTR(signed char, unsigned char, tag, false);
+ TEST_TTR(signed char, unsigned short int, tag, false);
+ TEST_TTR(signed char, unsigned int, tag, false);
+ TEST_TTR(signed char, unsigned long int, tag, false);
+ TEST_TTR(signed char, wchar_t, tag, false);
+ TEST_TTR(signed char, float, tag, false);
+ TEST_TTR(signed char, double, tag, false);
+ TEST_TTR(signed char, long double, tag, false);
+ TEST_TTR(short int, bool, tag, false);
+ TEST_TTR(short int, char, tag, false);
+ TEST_TTR(short int, signed char, tag, false);
+ TEST_TTR(short int, short int, tag, false);
+ TEST_TTR(short int, int, tag, false);
+ TEST_TTR(short int, long int, tag, false);
+ TEST_TTR(short int, unsigned char, tag, false);
+ TEST_TTR(short int, unsigned short int, tag, false);
+ TEST_TTR(short int, unsigned int, tag, false);
+ TEST_TTR(short int, unsigned long int, tag, false);
+ TEST_TTR(short int, wchar_t, tag, false);
+ TEST_TTR(short int, float, tag, false);
+ TEST_TTR(short int, double, tag, false);
+ TEST_TTR(short int, long double, tag, false);
+ TEST_TTR(int, bool, tag, false);
+ TEST_TTR(int, char, tag, false);
+ TEST_TTR(int, signed char, tag, false);
+ TEST_TTR(int, short int, tag, false);
+ TEST_TTR(int, int, tag, false);
+ TEST_TTR(int, long int, tag, false);
+ TEST_TTR(int, unsigned char, tag, false);
+ TEST_TTR(int, unsigned short int, tag, false);
+ TEST_TTR(int, unsigned int, tag, false);
+ TEST_TTR(int, unsigned long int, tag, false);
+ TEST_TTR(int, wchar_t, tag, false);
+ TEST_TTR(int, float, tag, false);
+ TEST_TTR(int, double, tag, false);
+ TEST_TTR(int, long double, tag, false);
+ TEST_TTR(long int, bool, tag, false);
+ TEST_TTR(long int, char, tag, false);
+ TEST_TTR(long int, signed char, tag, false);
+ TEST_TTR(long int, short int, tag, false);
+ TEST_TTR(long int, int, tag, false);
+ TEST_TTR(long int, long int, tag, false);
+ TEST_TTR(long int, unsigned char, tag, false);
+ TEST_TTR(long int, unsigned short int, tag, false);
+ TEST_TTR(long int, unsigned int, tag, false);
+ TEST_TTR(long int, unsigned long int, tag, false);
+ TEST_TTR(long int, wchar_t, tag, false);
+ TEST_TTR(long int, float, tag, false);
+ TEST_TTR(long int, double, tag, false);
+ TEST_TTR(long int, long double, tag, false);
+ TEST_TTR(unsigned char, bool, tag, false);
+ TEST_TTR(unsigned char, char, tag, false);
+ TEST_TTR(unsigned char, signed char, tag, false);
+ TEST_TTR(unsigned char, short int, tag, false);
+ TEST_TTR(unsigned char, int, tag, false);
+ TEST_TTR(unsigned char, long int, tag, false);
+ TEST_TTR(unsigned char, unsigned char, tag, false);
+ TEST_TTR(unsigned char, unsigned short int, tag, false);
+ TEST_TTR(unsigned char, unsigned int, tag, false);
+ TEST_TTR(unsigned char, unsigned long int, tag, false);
+ TEST_TTR(unsigned char, wchar_t, tag, false);
+ TEST_TTR(unsigned char, float, tag, false);
+ TEST_TTR(unsigned char, double, tag, false);
+ TEST_TTR(unsigned char, long double, tag, false);
+ TEST_TTR(unsigned short int, bool, tag, false);
+ TEST_TTR(unsigned short int, char, tag, false);
+ TEST_TTR(unsigned short int, signed char, tag, false);
+ TEST_TTR(unsigned short int, short int, tag, false);
+ TEST_TTR(unsigned short int, int, tag, false);
+ TEST_TTR(unsigned short int, long int, tag, false);
+ TEST_TTR(unsigned short int, unsigned char, tag, false);
+ TEST_TTR(unsigned short int, unsigned short int, tag, false);
+ TEST_TTR(unsigned short int, unsigned int, tag, false);
+ TEST_TTR(unsigned short int, unsigned long int, tag, false);
+ TEST_TTR(unsigned short int, wchar_t, tag, false);
+ TEST_TTR(unsigned short int, float, tag, false);
+ TEST_TTR(unsigned short int, double, tag, false);
+ TEST_TTR(unsigned short int, long double, tag, false);
+ TEST_TTR(unsigned int, bool, tag, false);
+ TEST_TTR(unsigned int, char, tag, false);
+ TEST_TTR(unsigned int, signed char, tag, false);
+ TEST_TTR(unsigned int, short int, tag, false);
+ TEST_TTR(unsigned int, int, tag, false);
+ TEST_TTR(unsigned int, long int, tag, false);
+ TEST_TTR(unsigned int, unsigned char, tag, false);
+ TEST_TTR(unsigned int, unsigned short int, tag, false);
+ TEST_TTR(unsigned int, unsigned int, tag, false);
+ TEST_TTR(unsigned int, unsigned long int, tag, false);
+ TEST_TTR(unsigned int, wchar_t, tag, false);
+ TEST_TTR(unsigned int, float, tag, false);
+ TEST_TTR(unsigned int, double, tag, false);
+ TEST_TTR(unsigned int, long double, tag, false);
+ TEST_TTR(unsigned long int, bool, tag, false);
+ TEST_TTR(unsigned long int, char, tag, false);
+ TEST_TTR(unsigned long int, signed char, tag, false);
+ TEST_TTR(unsigned long int, short int, tag, false);
+ TEST_TTR(unsigned long int, int, tag, false);
+ TEST_TTR(unsigned long int, long int, tag, false);
+ TEST_TTR(unsigned long int, unsigned char, tag, false);
+ TEST_TTR(unsigned long int, unsigned short int, tag, false);
+ TEST_TTR(unsigned long int, unsigned int, tag, false);
+ TEST_TTR(unsigned long int, unsigned long int, tag, false);
+ TEST_TTR(unsigned long int, wchar_t, tag, false);
+ TEST_TTR(unsigned long int, float, tag, false);
+ TEST_TTR(unsigned long int, double, tag, false);
+ TEST_TTR(unsigned long int, long double, tag, false);
+ TEST_TTR(wchar_t, bool, tag, false);
+ TEST_TTR(wchar_t, char, tag, false);
+ TEST_TTR(wchar_t, signed char, tag, false);
+ TEST_TTR(wchar_t, short int, tag, false);
+ TEST_TTR(wchar_t, int, tag, false);
+ TEST_TTR(wchar_t, long int, tag, false);
+ TEST_TTR(wchar_t, unsigned char, tag, false);
+ TEST_TTR(wchar_t, unsigned short int, tag, false);
+ TEST_TTR(wchar_t, unsigned int, tag, false);
+ TEST_TTR(wchar_t, unsigned long int, tag, false);
+ TEST_TTR(wchar_t, wchar_t, tag, false);
+ TEST_TTR(wchar_t, float, tag, false);
+ TEST_TTR(wchar_t, double, tag, false);
+ TEST_TTR(wchar_t, long double, tag, false);
+ TEST_TTR(float, bool, tag, false);
+ TEST_TTR(float, char, tag, false);
+ TEST_TTR(float, signed char, tag, false);
+ TEST_TTR(float, short int, tag, false);
+ TEST_TTR(float, int, tag, false);
+ TEST_TTR(float, long int, tag, false);
+ TEST_TTR(float, unsigned char, tag, false);
+ TEST_TTR(float, unsigned short int, tag, false);
+ TEST_TTR(float, unsigned int, tag, false);
+ TEST_TTR(float, unsigned long int, tag, false);
+ TEST_TTR(float, wchar_t, tag, false);
+ TEST_TTR(float, float, tag, false);
+ TEST_TTR(float, double, tag, false);
+ TEST_TTR(float, long double, tag, false);
+ TEST_TTR(double, bool, tag, false);
+ TEST_TTR(double, char, tag, false);
+ TEST_TTR(double, signed char, tag, false);
+ TEST_TTR(double, short int, tag, false);
+ TEST_TTR(double, int, tag, false);
+ TEST_TTR(double, long int, tag, false);
+ TEST_TTR(double, unsigned char, tag, false);
+ TEST_TTR(double, unsigned short int, tag, false);
+ TEST_TTR(double, unsigned int, tag, false);
+ TEST_TTR(double, unsigned long int, tag, false);
+ TEST_TTR(double, wchar_t, tag, false);
+ TEST_TTR(double, float, tag, false);
+ TEST_TTR(double, double, tag, false);
+ TEST_TTR(double, long double, tag, false);
+ TEST_TTR(long double, bool, tag, false);
+ TEST_TTR(long double, char, tag, false);
+ TEST_TTR(long double, signed char, tag, false);
+ TEST_TTR(long double, short int, tag, false);
+ TEST_TTR(long double, int, tag, false);
+ TEST_TTR(long double, long int, tag, false);
+ TEST_TTR(long double, unsigned char, tag, false);
+ TEST_TTR(long double, unsigned short int, tag, false);
+ TEST_TTR(long double, unsigned int, tag, false);
+ TEST_TTR(long double, unsigned long int, tag, false);
+ TEST_TTR(long double, wchar_t, tag, false);
+ TEST_TTR(long double, float, tag, false);
+ TEST_TTR(long double, double, tag, false);
+ TEST_TTR(long double, long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+ // pointers
+ TEST_TT(void*, bool, false);
+ TEST_TT(void*, int, false);
+ TEST_TT(void*, double, false);
+ TEST_TT(void*, A, false);
+ TEST_TT(void*, B, false);
+ TEST_TT(bool*, bool, false);
+ TEST_TT(bool*, int, false);
+ TEST_TT(bool*, double, false);
+ TEST_TT(bool*, A, false);
+ TEST_TT(bool*, B, false);
+ TEST_TT(int*, bool, false);
+ TEST_TT(int*, int, false);
+ TEST_TT(int*, double, false);
+ TEST_TT(int*, A, false);
+ TEST_TT(int*, B, false);
+ TEST_TT(double*, bool, false);
+ TEST_TT(double*, int, false);
+ TEST_TT(double*, double, false);
+ TEST_TT(double*, A, false);
+ TEST_TT(double*, B, false);
+ TEST_TT(A*, bool, false);
+ TEST_TT(A*, int, false);
+ TEST_TT(A*, double, false);
+ TEST_TT(A*, A, false);
+ TEST_TT(A*, B, false);
+ TEST_TT(B*, bool, false);
+ TEST_TT(B*, int, false);
+ TEST_TT(B*, double, false);
+ TEST_TT(B*, A, false);
+ TEST_TT(B*, B, false);
+ TEST_TT(bool, void*, false);
+ TEST_TT(bool, bool*, false);
+ TEST_TT(bool, int*, false);
+ TEST_TT(bool, double*, false);
+ TEST_TT(bool, A*, false);
+ TEST_TT(bool, B*, false);
+ TEST_TT(int, void*, false);
+ TEST_TT(int, bool*, false);
+ TEST_TT(int, int*, false);
+ TEST_TT(int, double*, false);
+ TEST_TT(int, A*, false);
+ TEST_TT(int, B*, false);
+ TEST_TT(double, void*, false);
+ TEST_TT(double, bool*, false);
+ TEST_TT(double, int*, false);
+ TEST_TT(double, double*, false);
+ TEST_TT(double, A*, false);
+ TEST_TT(double, B*, false);
+ TEST_TT(A, void*, false);
+ TEST_TT(A, bool*, false);
+ TEST_TT(A, int*, false);
+ TEST_TT(A, double*, false);
+ TEST_TT(A, A*, false);
+ TEST_TT(A, B*, false);
+ TEST_TT(B, void*, false);
+ TEST_TT(B, bool*, false);
+ TEST_TT(B, int*, false);
+ TEST_TT(B, double*, false);
+ TEST_TT(B, A*, false);
+ TEST_TT(B, B*, false);
+ TEST_TT(void*, void*, true);
+ TEST_TT(void*, bool*, true);
+ TEST_TT(void*, int*, true);
+ TEST_TT(void*, double*, true);
+ TEST_TT(void*, A*, true);
+ TEST_TT(void*, B*, true);
+ TEST_TT(bool*, void*, true);
+ TEST_TT(bool*, bool*, true);
+ TEST_TT(bool*, int*, false);
+ TEST_TT(bool*, double*, false);
+ TEST_TT(bool*, A*, false);
+ TEST_TT(bool*, B*, false);
+ TEST_TT(int*, void*, true);
+ TEST_TT(int*, bool*, false);
+ TEST_TT(int*, int*, true);
+ TEST_TT(int*, double*, false);
+ TEST_TT(int*, A*, false);
+ TEST_TT(int*, B*, false);
+ TEST_TT(double*, void*, true);
+ TEST_TT(double*, bool*, false);
+ TEST_TT(double*, int*, false);
+ TEST_TT(double*, double*, true);
+ TEST_TT(double*, A*, false);
+ TEST_TT(double*, B*, false);
+ TEST_TT(A*, void*, true);
+ TEST_TT(A*, bool*, false);
+ TEST_TT(A*, int*, false);
+ TEST_TT(A*, double*, false);
+ TEST_TT(A*, A*, true);
+ TEST_TT(A*, B*, true);
+ TEST_TT(B*, void*, true);
+ TEST_TT(B*, bool*, false);
+ TEST_TT(B*, int*, false);
+ TEST_TT(B*, double*, false);
+ TEST_TT(B*, A*, true);
+ TEST_TT(B*, B*, true);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Modified: sandbox/type_traits/libs/type_traits/test/has_integral_operator_test.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_integral_operator_test.hpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_integral_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (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)
@@ -6,7 +6,6 @@
 #include <iostream>
 #include <typeinfo>
 #include <string>
-#include <vector>
 
 // test with one template parameter
 #define TEST_T(TYPE,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE>::value), RESULT)
@@ -57,6 +56,9 @@
 
 struct tag { };
 
+struct A { };
+struct B : public A { };
+
 void run() {
         // test with only one template parameter
         TEST_T(bool, true);
@@ -729,6 +731,103 @@
         TEST_TR(Derived1, bool, true);
         TEST_TR(Base2, bool, false);
         TEST_TR(Derived2, bool, true);
+ // pointers
+ TEST_TT(void*, bool, false);
+ TEST_TT(void*, int, false);
+ TEST_TT(void*, double, false);
+ TEST_TT(void*, A, false);
+ TEST_TT(void*, B, false);
+ TEST_TT(bool*, bool, false);
+ TEST_TT(bool*, int, false);
+ TEST_TT(bool*, double, false);
+ TEST_TT(bool*, A, false);
+ TEST_TT(bool*, B, false);
+ TEST_TT(int*, bool, false);
+ TEST_TT(int*, int, false);
+ TEST_TT(int*, double, false);
+ TEST_TT(int*, A, false);
+ TEST_TT(int*, B, false);
+ TEST_TT(double*, bool, false);
+ TEST_TT(double*, int, false);
+ TEST_TT(double*, double, false);
+ TEST_TT(double*, A, false);
+ TEST_TT(double*, B, false);
+ TEST_TT(A*, bool, false);
+ TEST_TT(A*, int, false);
+ TEST_TT(A*, double, false);
+ TEST_TT(A*, A, false);
+ TEST_TT(A*, B, false);
+ TEST_TT(B*, bool, false);
+ TEST_TT(B*, int, false);
+ TEST_TT(B*, double, false);
+ TEST_TT(B*, A, false);
+ TEST_TT(B*, B, false);
+ TEST_TT(bool, void*, false);
+ TEST_TT(bool, bool*, false);
+ TEST_TT(bool, int*, false);
+ TEST_TT(bool, double*, false);
+ TEST_TT(bool, A*, false);
+ TEST_TT(bool, B*, false);
+ TEST_TT(int, void*, false);
+ TEST_TT(int, bool*, false);
+ TEST_TT(int, int*, false);
+ TEST_TT(int, double*, false);
+ TEST_TT(int, A*, false);
+ TEST_TT(int, B*, false);
+ TEST_TT(double, void*, false);
+ TEST_TT(double, bool*, false);
+ TEST_TT(double, int*, false);
+ TEST_TT(double, double*, false);
+ TEST_TT(double, A*, false);
+ TEST_TT(double, B*, false);
+ TEST_TT(A, void*, false);
+ TEST_TT(A, bool*, false);
+ TEST_TT(A, int*, false);
+ TEST_TT(A, double*, false);
+ TEST_TT(A, A*, false);
+ TEST_TT(A, B*, false);
+ TEST_TT(B, void*, false);
+ TEST_TT(B, bool*, false);
+ TEST_TT(B, int*, false);
+ TEST_TT(B, double*, false);
+ TEST_TT(B, A*, false);
+ TEST_TT(B, B*, false);
+ TEST_TT(void*, void*, false);
+ TEST_TT(void*, bool*, false);
+ TEST_TT(void*, int*, false);
+ TEST_TT(void*, double*, false);
+ TEST_TT(void*, A*, false);
+ TEST_TT(void*, B*, false);
+ TEST_TT(bool*, void*, false);
+ TEST_TT(bool*, bool*, false);
+ TEST_TT(bool*, int*, false);
+ TEST_TT(bool*, double*, false);
+ TEST_TT(bool*, A*, false);
+ TEST_TT(bool*, B*, false);
+ TEST_TT(int*, void*, false);
+ TEST_TT(int*, bool*, false);
+ TEST_TT(int*, int*, false);
+ TEST_TT(int*, double*, false);
+ TEST_TT(int*, A*, false);
+ TEST_TT(int*, B*, false);
+ TEST_TT(double*, void*, false);
+ TEST_TT(double*, bool*, false);
+ TEST_TT(double*, int*, false);
+ TEST_TT(double*, double*, false);
+ TEST_TT(double*, A*, false);
+ TEST_TT(double*, B*, false);
+ TEST_TT(A*, void*, false);
+ TEST_TT(A*, bool*, false);
+ TEST_TT(A*, int*, false);
+ TEST_TT(A*, double*, false);
+ TEST_TT(A*, A*, false);
+ TEST_TT(A*, B*, false);
+ TEST_TT(B*, void*, false);
+ TEST_TT(B*, bool*, false);
+ TEST_TT(B*, int*, false);
+ TEST_TT(B*, double*, false);
+ TEST_TT(B*, A*, false);
+ TEST_TT(B*, B*, false);
 }
 }
 

Added: sandbox/type_traits/libs/type_traits/test/has_minus_equal_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_minus_equal_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,836 @@
+// (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
+#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
+#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
+#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
+#define TEST_TTR(TYPE1,TYPE2,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (const internal&) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, const external&);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP (const internal_private&) const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (const returns_int&); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (const returns_void&); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (const returns_void_star&); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (const returns_double&); };
+
+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&); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&, const Base1&) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&, const Derived2&) { return true; }
+
+struct tag { };
+
+struct A { };
+struct B : public A { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, true);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+ // test with only two template parameters
+ TEST_TT(bool, bool, true);
+ TEST_TT(bool, char, true);
+ TEST_TT(bool, signed char, true);
+ TEST_TT(bool, short int, true);
+ TEST_TT(bool, int, true);
+ TEST_TT(bool, long int, true);
+ TEST_TT(bool, unsigned char, true);
+ TEST_TT(bool, unsigned short int, true);
+ TEST_TT(bool, unsigned int, true);
+ TEST_TT(bool, unsigned long int, true);
+ TEST_TT(bool, wchar_t, true);
+ TEST_TT(bool, float, true);
+ TEST_TT(bool, double, true);
+ TEST_TT(bool, long double, true);
+ TEST_TT(char, bool, true);
+ TEST_TT(char, char, true);
+ TEST_TT(char, signed char, true);
+ TEST_TT(char, short int, true);
+ TEST_TT(char, int, true);
+ TEST_TT(char, long int, true);
+ TEST_TT(char, unsigned char, true);
+ TEST_TT(char, unsigned short int, true);
+ TEST_TT(char, unsigned int, true);
+ TEST_TT(char, unsigned long int, true);
+ TEST_TT(char, wchar_t, true);
+ TEST_TT(char, float, true);
+ TEST_TT(char, double, true);
+ TEST_TT(char, long double, true);
+ TEST_TT(signed char, bool, true);
+ TEST_TT(signed char, char, true);
+ TEST_TT(signed char, signed char, true);
+ TEST_TT(signed char, short int, true);
+ TEST_TT(signed char, int, true);
+ TEST_TT(signed char, long int, true);
+ TEST_TT(signed char, unsigned char, true);
+ TEST_TT(signed char, unsigned short int, true);
+ TEST_TT(signed char, unsigned int, true);
+ TEST_TT(signed char, unsigned long int, true);
+ TEST_TT(signed char, wchar_t, true);
+ TEST_TT(signed char, float, true);
+ TEST_TT(signed char, double, true);
+ TEST_TT(signed char, long double, true);
+ TEST_TT(short int, bool, true);
+ TEST_TT(short int, char, true);
+ TEST_TT(short int, signed char, true);
+ TEST_TT(short int, short int, true);
+ TEST_TT(short int, int, true);
+ TEST_TT(short int, long int, true);
+ TEST_TT(short int, unsigned char, true);
+ TEST_TT(short int, unsigned short int, true);
+ TEST_TT(short int, unsigned int, true);
+ TEST_TT(short int, unsigned long int, true);
+ TEST_TT(short int, wchar_t, true);
+ TEST_TT(short int, float, true);
+ TEST_TT(short int, double, true);
+ TEST_TT(short int, long double, true);
+ TEST_TT(int, bool, true);
+ TEST_TT(int, char, true);
+ TEST_TT(int, signed char, true);
+ TEST_TT(int, short int, true);
+ TEST_TT(int, int, true);
+ TEST_TT(int, long int, true);
+ TEST_TT(int, unsigned char, true);
+ TEST_TT(int, unsigned short int, true);
+ TEST_TT(int, unsigned int, true);
+ TEST_TT(int, unsigned long int, true);
+ TEST_TT(int, wchar_t, true);
+ TEST_TT(int, float, true);
+ TEST_TT(int, double, true);
+ TEST_TT(int, long double, true);
+ TEST_TT(long int, bool, true);
+ TEST_TT(long int, char, true);
+ TEST_TT(long int, signed char, true);
+ TEST_TT(long int, short int, true);
+ TEST_TT(long int, int, true);
+ TEST_TT(long int, long int, true);
+ TEST_TT(long int, unsigned char, true);
+ TEST_TT(long int, unsigned short int, true);
+ TEST_TT(long int, unsigned int, true);
+ TEST_TT(long int, unsigned long int, true);
+ TEST_TT(long int, wchar_t, true);
+ TEST_TT(long int, float, true);
+ TEST_TT(long int, double, true);
+ TEST_TT(long int, long double, true);
+ TEST_TT(unsigned char, bool, true);
+ TEST_TT(unsigned char, char, true);
+ TEST_TT(unsigned char, signed char, true);
+ TEST_TT(unsigned char, short int, true);
+ TEST_TT(unsigned char, int, true);
+ TEST_TT(unsigned char, long int, true);
+ TEST_TT(unsigned char, unsigned char, true);
+ TEST_TT(unsigned char, unsigned short int, true);
+ TEST_TT(unsigned char, unsigned int, true);
+ TEST_TT(unsigned char, unsigned long int, true);
+ TEST_TT(unsigned char, wchar_t, true);
+ TEST_TT(unsigned char, float, true);
+ TEST_TT(unsigned char, double, true);
+ TEST_TT(unsigned char, long double, true);
+ TEST_TT(unsigned short int, bool, true);
+ TEST_TT(unsigned short int, char, true);
+ TEST_TT(unsigned short int, signed char, true);
+ TEST_TT(unsigned short int, short int, true);
+ TEST_TT(unsigned short int, int, true);
+ TEST_TT(unsigned short int, long int, true);
+ TEST_TT(unsigned short int, unsigned char, true);
+ TEST_TT(unsigned short int, unsigned short int, true);
+ TEST_TT(unsigned short int, unsigned int, true);
+ TEST_TT(unsigned short int, unsigned long int, true);
+ TEST_TT(unsigned short int, wchar_t, true);
+ TEST_TT(unsigned short int, float, true);
+ TEST_TT(unsigned short int, double, true);
+ TEST_TT(unsigned short int, long double, true);
+ TEST_TT(unsigned int, bool, true);
+ TEST_TT(unsigned int, char, true);
+ TEST_TT(unsigned int, signed char, true);
+ TEST_TT(unsigned int, short int, true);
+ TEST_TT(unsigned int, int, true);
+ TEST_TT(unsigned int, long int, true);
+ TEST_TT(unsigned int, unsigned char, true);
+ TEST_TT(unsigned int, unsigned short int, true);
+ TEST_TT(unsigned int, unsigned int, true);
+ TEST_TT(unsigned int, unsigned long int, true);
+ TEST_TT(unsigned int, wchar_t, true);
+ TEST_TT(unsigned int, float, true);
+ TEST_TT(unsigned int, double, true);
+ TEST_TT(unsigned int, long double, true);
+ TEST_TT(unsigned long int, bool, true);
+ TEST_TT(unsigned long int, char, true);
+ TEST_TT(unsigned long int, signed char, true);
+ TEST_TT(unsigned long int, short int, true);
+ TEST_TT(unsigned long int, int, true);
+ TEST_TT(unsigned long int, long int, true);
+ TEST_TT(unsigned long int, unsigned char, true);
+ TEST_TT(unsigned long int, unsigned short int, true);
+ TEST_TT(unsigned long int, unsigned int, true);
+ TEST_TT(unsigned long int, unsigned long int, true);
+ TEST_TT(unsigned long int, wchar_t, true);
+ TEST_TT(unsigned long int, float, true);
+ TEST_TT(unsigned long int, double, true);
+ TEST_TT(unsigned long int, long double, true);
+ TEST_TT(wchar_t, bool, true);
+ TEST_TT(wchar_t, char, true);
+ TEST_TT(wchar_t, signed char, true);
+ TEST_TT(wchar_t, short int, true);
+ TEST_TT(wchar_t, int, true);
+ TEST_TT(wchar_t, long int, true);
+ TEST_TT(wchar_t, unsigned char, true);
+ TEST_TT(wchar_t, unsigned short int, true);
+ TEST_TT(wchar_t, unsigned int, true);
+ TEST_TT(wchar_t, unsigned long int, true);
+ TEST_TT(wchar_t, wchar_t, true);
+ TEST_TT(wchar_t, float, true);
+ TEST_TT(wchar_t, double, true);
+ TEST_TT(wchar_t, long double, true);
+ TEST_TT(float, bool, true);
+ TEST_TT(float, char, true);
+ TEST_TT(float, signed char, true);
+ TEST_TT(float, short int, true);
+ TEST_TT(float, int, true);
+ TEST_TT(float, long int, true);
+ TEST_TT(float, unsigned char, true);
+ TEST_TT(float, unsigned short int, true);
+ TEST_TT(float, unsigned int, true);
+ TEST_TT(float, unsigned long int, true);
+ TEST_TT(float, wchar_t, true);
+ TEST_TT(float, float, true);
+ TEST_TT(float, double, true);
+ TEST_TT(float, long double, true);
+ TEST_TT(double, bool, true);
+ TEST_TT(double, char, true);
+ TEST_TT(double, signed char, true);
+ TEST_TT(double, short int, true);
+ TEST_TT(double, int, true);
+ TEST_TT(double, long int, true);
+ TEST_TT(double, unsigned char, true);
+ TEST_TT(double, unsigned short int, true);
+ TEST_TT(double, unsigned int, true);
+ TEST_TT(double, unsigned long int, true);
+ TEST_TT(double, wchar_t, true);
+ TEST_TT(double, float, true);
+ TEST_TT(double, double, true);
+ TEST_TT(double, long double, true);
+ TEST_TT(long double, bool, true);
+ TEST_TT(long double, char, true);
+ TEST_TT(long double, signed char, true);
+ TEST_TT(long double, short int, true);
+ TEST_TT(long double, int, true);
+ TEST_TT(long double, long int, true);
+ TEST_TT(long double, unsigned char, true);
+ TEST_TT(long double, unsigned short int, true);
+ TEST_TT(long double, unsigned int, true);
+ TEST_TT(long double, unsigned long int, true);
+ TEST_TT(long double, wchar_t, true);
+ TEST_TT(long double, float, true);
+ TEST_TT(long double, double, true);
+ TEST_TT(long double, long double, true);
+ TEST_TT(bool, void, false);
+ TEST_TT(void, bool, false);
+ TEST_TT(char, void, false);
+ TEST_TT(void, char, false);
+ TEST_TT(signed char, void, false);
+ TEST_TT(void, signed char, false);
+ TEST_TT(short int, void, false);
+ TEST_TT(void, short int, false);
+ TEST_TT(int, void, false);
+ TEST_TT(void, int, false);
+ TEST_TT(long int, void, false);
+ TEST_TT(void, long int, false);
+ TEST_TT(unsigned char, void, false);
+ TEST_TT(void, unsigned char, false);
+ TEST_TT(unsigned short int, void, false);
+ TEST_TT(void, unsigned short int, false);
+ TEST_TT(unsigned int, void, false);
+ TEST_TT(void, unsigned int, false);
+ TEST_TT(unsigned long int, void, false);
+ TEST_TT(void, unsigned long int, false);
+ TEST_TT(wchar_t, void, false);
+ TEST_TT(void, wchar_t, false);
+ TEST_TT(float, void, false);
+ TEST_TT(void, float, false);
+ TEST_TT(double, void, false);
+ TEST_TT(void, double, false);
+ TEST_TT(long double, void, false);
+ TEST_TT(void, long double, false);
+
+// test with three template parameters
+ TEST_TTR(bool, bool, bool, true);
+ TEST_TTR(bool, char, bool, true);
+ TEST_TTR(bool, signed char, bool, true);
+ TEST_TTR(bool, short int, bool, true);
+ TEST_TTR(bool, int, bool, true);
+ TEST_TTR(bool, long int, bool, true);
+ TEST_TTR(bool, unsigned char, bool, true);
+ TEST_TTR(bool, unsigned short int, bool, true);
+ TEST_TTR(bool, unsigned int, bool, true);
+ TEST_TTR(bool, unsigned long int, bool, true);
+ TEST_TTR(bool, wchar_t, bool, true);
+ TEST_TTR(bool, float, bool, true);
+ TEST_TTR(bool, double, bool, true);
+ TEST_TTR(bool, long double, bool, true);
+ TEST_TTR(char, bool, bool, true);
+ TEST_TTR(char, char, bool, true);
+ TEST_TTR(char, signed char, bool, true);
+ TEST_TTR(char, short int, bool, true);
+ TEST_TTR(char, int, bool, true);
+ TEST_TTR(char, long int, bool, true);
+ TEST_TTR(char, unsigned char, bool, true);
+ TEST_TTR(char, unsigned short int, bool, true);
+ TEST_TTR(char, unsigned int, bool, true);
+ TEST_TTR(char, unsigned long int, bool, true);
+ TEST_TTR(char, wchar_t, bool, true);
+ TEST_TTR(char, float, bool, true);
+ TEST_TTR(char, double, bool, true);
+ TEST_TTR(char, long double, bool, true);
+ TEST_TTR(signed char, bool, bool, true);
+ TEST_TTR(signed char, char, bool, true);
+ TEST_TTR(signed char, signed char, bool, true);
+ TEST_TTR(signed char, short int, bool, true);
+ TEST_TTR(signed char, int, bool, true);
+ TEST_TTR(signed char, long int, bool, true);
+ TEST_TTR(signed char, unsigned char, bool, true);
+ TEST_TTR(signed char, unsigned short int, bool, true);
+ TEST_TTR(signed char, unsigned int, bool, true);
+ TEST_TTR(signed char, unsigned long int, bool, true);
+ TEST_TTR(signed char, wchar_t, bool, true);
+ TEST_TTR(signed char, float, bool, true);
+ TEST_TTR(signed char, double, bool, true);
+ TEST_TTR(signed char, long double, bool, true);
+ TEST_TTR(short int, bool, bool, true);
+ TEST_TTR(short int, char, bool, true);
+ TEST_TTR(short int, signed char, bool, true);
+ TEST_TTR(short int, short int, bool, true);
+ TEST_TTR(short int, int, bool, true);
+ TEST_TTR(short int, long int, bool, true);
+ TEST_TTR(short int, unsigned char, bool, true);
+ TEST_TTR(short int, unsigned short int, bool, true);
+ TEST_TTR(short int, unsigned int, bool, true);
+ TEST_TTR(short int, unsigned long int, bool, true);
+ TEST_TTR(short int, wchar_t, bool, true);
+ TEST_TTR(short int, float, bool, true);
+ TEST_TTR(short int, double, bool, true);
+ TEST_TTR(short int, long double, bool, true);
+ TEST_TTR(int, bool, bool, true);
+ TEST_TTR(int, char, bool, true);
+ TEST_TTR(int, signed char, bool, true);
+ TEST_TTR(int, short int, bool, true);
+ TEST_TTR(int, int, bool, true);
+ TEST_TTR(int, long int, bool, true);
+ TEST_TTR(int, unsigned char, bool, true);
+ TEST_TTR(int, unsigned short int, bool, true);
+ TEST_TTR(int, unsigned int, bool, true);
+ TEST_TTR(int, unsigned long int, bool, true);
+ TEST_TTR(int, wchar_t, bool, true);
+ TEST_TTR(int, float, bool, true);
+ TEST_TTR(int, double, bool, true);
+ TEST_TTR(int, long double, bool, true);
+ TEST_TTR(long int, bool, bool, true);
+ TEST_TTR(long int, char, bool, true);
+ TEST_TTR(long int, signed char, bool, true);
+ TEST_TTR(long int, short int, bool, true);
+ TEST_TTR(long int, int, bool, true);
+ TEST_TTR(long int, long int, bool, true);
+ TEST_TTR(long int, unsigned char, bool, true);
+ TEST_TTR(long int, unsigned short int, bool, true);
+ TEST_TTR(long int, unsigned int, bool, true);
+ TEST_TTR(long int, unsigned long int, bool, true);
+ TEST_TTR(long int, wchar_t, bool, true);
+ TEST_TTR(long int, float, bool, true);
+ TEST_TTR(long int, double, bool, true);
+ TEST_TTR(long int, long double, bool, true);
+ TEST_TTR(unsigned char, bool, bool, true);
+ TEST_TTR(unsigned char, char, bool, true);
+ TEST_TTR(unsigned char, signed char, bool, true);
+ TEST_TTR(unsigned char, short int, bool, true);
+ TEST_TTR(unsigned char, int, bool, true);
+ TEST_TTR(unsigned char, long int, bool, true);
+ TEST_TTR(unsigned char, unsigned char, bool, true);
+ TEST_TTR(unsigned char, unsigned short int, bool, true);
+ TEST_TTR(unsigned char, unsigned int, bool, true);
+ TEST_TTR(unsigned char, unsigned long int, bool, true);
+ TEST_TTR(unsigned char, wchar_t, bool, true);
+ TEST_TTR(unsigned char, float, bool, true);
+ TEST_TTR(unsigned char, double, bool, true);
+ TEST_TTR(unsigned char, long double, bool, true);
+ TEST_TTR(unsigned short int, bool, bool, true);
+ TEST_TTR(unsigned short int, char, bool, true);
+ TEST_TTR(unsigned short int, signed char, bool, true);
+ TEST_TTR(unsigned short int, short int, bool, true);
+ TEST_TTR(unsigned short int, int, bool, true);
+ TEST_TTR(unsigned short int, long int, bool, true);
+ TEST_TTR(unsigned short int, unsigned char, bool, true);
+ TEST_TTR(unsigned short int, unsigned short int, bool, true);
+ TEST_TTR(unsigned short int, unsigned int, bool, true);
+ TEST_TTR(unsigned short int, unsigned long int, bool, true);
+ TEST_TTR(unsigned short int, wchar_t, bool, true);
+ TEST_TTR(unsigned short int, float, bool, true);
+ TEST_TTR(unsigned short int, double, bool, true);
+ TEST_TTR(unsigned short int, long double, bool, true);
+ TEST_TTR(unsigned int, bool, bool, true);
+ TEST_TTR(unsigned int, char, bool, true);
+ TEST_TTR(unsigned int, signed char, bool, true);
+ TEST_TTR(unsigned int, short int, bool, true);
+ TEST_TTR(unsigned int, int, bool, true);
+ TEST_TTR(unsigned int, long int, bool, true);
+ TEST_TTR(unsigned int, unsigned char, bool, true);
+ TEST_TTR(unsigned int, unsigned short int, bool, true);
+ TEST_TTR(unsigned int, unsigned int, bool, true);
+ TEST_TTR(unsigned int, unsigned long int, bool, true);
+ TEST_TTR(unsigned int, wchar_t, bool, true);
+ TEST_TTR(unsigned int, float, bool, true);
+ TEST_TTR(unsigned int, double, bool, true);
+ TEST_TTR(unsigned int, long double, bool, true);
+ TEST_TTR(unsigned long int, bool, bool, true);
+ TEST_TTR(unsigned long int, char, bool, true);
+ TEST_TTR(unsigned long int, signed char, bool, true);
+ TEST_TTR(unsigned long int, short int, bool, true);
+ TEST_TTR(unsigned long int, int, bool, true);
+ TEST_TTR(unsigned long int, long int, bool, true);
+ TEST_TTR(unsigned long int, unsigned char, bool, true);
+ TEST_TTR(unsigned long int, unsigned short int, bool, true);
+ TEST_TTR(unsigned long int, unsigned int, bool, true);
+ TEST_TTR(unsigned long int, unsigned long int, bool, true);
+ TEST_TTR(unsigned long int, wchar_t, bool, true);
+ TEST_TTR(unsigned long int, float, bool, true);
+ TEST_TTR(unsigned long int, double, bool, true);
+ TEST_TTR(unsigned long int, long double, bool, true);
+ TEST_TTR(wchar_t, bool, bool, true);
+ TEST_TTR(wchar_t, char, bool, true);
+ TEST_TTR(wchar_t, signed char, bool, true);
+ TEST_TTR(wchar_t, short int, bool, true);
+ TEST_TTR(wchar_t, int, bool, true);
+ TEST_TTR(wchar_t, long int, bool, true);
+ TEST_TTR(wchar_t, unsigned char, bool, true);
+ TEST_TTR(wchar_t, unsigned short int, bool, true);
+ TEST_TTR(wchar_t, unsigned int, bool, true);
+ TEST_TTR(wchar_t, unsigned long int, bool, true);
+ TEST_TTR(wchar_t, wchar_t, bool, true);
+ TEST_TTR(wchar_t, float, bool, true);
+ TEST_TTR(wchar_t, double, bool, true);
+ TEST_TTR(wchar_t, long double, bool, true);
+ TEST_TTR(float, bool, bool, true);
+ TEST_TTR(float, char, bool, true);
+ TEST_TTR(float, signed char, bool, true);
+ TEST_TTR(float, short int, bool, true);
+ TEST_TTR(float, int, bool, true);
+ TEST_TTR(float, long int, bool, true);
+ TEST_TTR(float, unsigned char, bool, true);
+ TEST_TTR(float, unsigned short int, bool, true);
+ TEST_TTR(float, unsigned int, bool, true);
+ TEST_TTR(float, unsigned long int, bool, true);
+ TEST_TTR(float, wchar_t, bool, true);
+ TEST_TTR(float, float, bool, true);
+ TEST_TTR(float, double, bool, true);
+ TEST_TTR(float, long double, bool, true);
+ TEST_TTR(double, bool, bool, true);
+ TEST_TTR(double, char, bool, true);
+ TEST_TTR(double, signed char, bool, true);
+ TEST_TTR(double, short int, bool, true);
+ TEST_TTR(double, int, bool, true);
+ TEST_TTR(double, long int, bool, true);
+ TEST_TTR(double, unsigned char, bool, true);
+ TEST_TTR(double, unsigned short int, bool, true);
+ TEST_TTR(double, unsigned int, bool, true);
+ TEST_TTR(double, unsigned long int, bool, true);
+ TEST_TTR(double, wchar_t, bool, true);
+ TEST_TTR(double, float, bool, true);
+ TEST_TTR(double, double, bool, true);
+ TEST_TTR(double, long double, bool, true);
+ TEST_TTR(long double, bool, bool, true);
+ TEST_TTR(long double, char, bool, true);
+ TEST_TTR(long double, signed char, bool, true);
+ TEST_TTR(long double, short int, bool, true);
+ TEST_TTR(long double, int, bool, true);
+ TEST_TTR(long double, long int, bool, true);
+ TEST_TTR(long double, unsigned char, bool, true);
+ TEST_TTR(long double, unsigned short int, bool, true);
+ TEST_TTR(long double, unsigned int, bool, true);
+ TEST_TTR(long double, unsigned long int, bool, true);
+ TEST_TTR(long double, wchar_t, bool, true);
+ TEST_TTR(long double, float, bool, true);
+ TEST_TTR(long double, double, bool, true);
+ TEST_TTR(long double, long double, bool, true);
+ TEST_TTR(bool, bool, tag, false);
+ TEST_TTR(bool, char, tag, false);
+ TEST_TTR(bool, signed char, tag, false);
+ TEST_TTR(bool, short int, tag, false);
+ TEST_TTR(bool, int, tag, false);
+ TEST_TTR(bool, long int, tag, false);
+ TEST_TTR(bool, unsigned char, tag, false);
+ TEST_TTR(bool, unsigned short int, tag, false);
+ TEST_TTR(bool, unsigned int, tag, false);
+ TEST_TTR(bool, unsigned long int, tag, false);
+ TEST_TTR(bool, wchar_t, tag, false);
+ TEST_TTR(bool, float, tag, false);
+ TEST_TTR(bool, double, tag, false);
+ TEST_TTR(bool, long double, tag, false);
+ TEST_TTR(char, bool, tag, false);
+ TEST_TTR(char, char, tag, false);
+ TEST_TTR(char, signed char, tag, false);
+ TEST_TTR(char, short int, tag, false);
+ TEST_TTR(char, int, tag, false);
+ TEST_TTR(char, long int, tag, false);
+ TEST_TTR(char, unsigned char, tag, false);
+ TEST_TTR(char, unsigned short int, tag, false);
+ TEST_TTR(char, unsigned int, tag, false);
+ TEST_TTR(char, unsigned long int, tag, false);
+ TEST_TTR(char, wchar_t, tag, false);
+ TEST_TTR(char, float, tag, false);
+ TEST_TTR(char, double, tag, false);
+ TEST_TTR(char, long double, tag, false);
+ TEST_TTR(signed char, bool, tag, false);
+ TEST_TTR(signed char, char, tag, false);
+ TEST_TTR(signed char, signed char, tag, false);
+ TEST_TTR(signed char, short int, tag, false);
+ TEST_TTR(signed char, int, tag, false);
+ TEST_TTR(signed char, long int, tag, false);
+ TEST_TTR(signed char, unsigned char, tag, false);
+ TEST_TTR(signed char, unsigned short int, tag, false);
+ TEST_TTR(signed char, unsigned int, tag, false);
+ TEST_TTR(signed char, unsigned long int, tag, false);
+ TEST_TTR(signed char, wchar_t, tag, false);
+ TEST_TTR(signed char, float, tag, false);
+ TEST_TTR(signed char, double, tag, false);
+ TEST_TTR(signed char, long double, tag, false);
+ TEST_TTR(short int, bool, tag, false);
+ TEST_TTR(short int, char, tag, false);
+ TEST_TTR(short int, signed char, tag, false);
+ TEST_TTR(short int, short int, tag, false);
+ TEST_TTR(short int, int, tag, false);
+ TEST_TTR(short int, long int, tag, false);
+ TEST_TTR(short int, unsigned char, tag, false);
+ TEST_TTR(short int, unsigned short int, tag, false);
+ TEST_TTR(short int, unsigned int, tag, false);
+ TEST_TTR(short int, unsigned long int, tag, false);
+ TEST_TTR(short int, wchar_t, tag, false);
+ TEST_TTR(short int, float, tag, false);
+ TEST_TTR(short int, double, tag, false);
+ TEST_TTR(short int, long double, tag, false);
+ TEST_TTR(int, bool, tag, false);
+ TEST_TTR(int, char, tag, false);
+ TEST_TTR(int, signed char, tag, false);
+ TEST_TTR(int, short int, tag, false);
+ TEST_TTR(int, int, tag, false);
+ TEST_TTR(int, long int, tag, false);
+ TEST_TTR(int, unsigned char, tag, false);
+ TEST_TTR(int, unsigned short int, tag, false);
+ TEST_TTR(int, unsigned int, tag, false);
+ TEST_TTR(int, unsigned long int, tag, false);
+ TEST_TTR(int, wchar_t, tag, false);
+ TEST_TTR(int, float, tag, false);
+ TEST_TTR(int, double, tag, false);
+ TEST_TTR(int, long double, tag, false);
+ TEST_TTR(long int, bool, tag, false);
+ TEST_TTR(long int, char, tag, false);
+ TEST_TTR(long int, signed char, tag, false);
+ TEST_TTR(long int, short int, tag, false);
+ TEST_TTR(long int, int, tag, false);
+ TEST_TTR(long int, long int, tag, false);
+ TEST_TTR(long int, unsigned char, tag, false);
+ TEST_TTR(long int, unsigned short int, tag, false);
+ TEST_TTR(long int, unsigned int, tag, false);
+ TEST_TTR(long int, unsigned long int, tag, false);
+ TEST_TTR(long int, wchar_t, tag, false);
+ TEST_TTR(long int, float, tag, false);
+ TEST_TTR(long int, double, tag, false);
+ TEST_TTR(long int, long double, tag, false);
+ TEST_TTR(unsigned char, bool, tag, false);
+ TEST_TTR(unsigned char, char, tag, false);
+ TEST_TTR(unsigned char, signed char, tag, false);
+ TEST_TTR(unsigned char, short int, tag, false);
+ TEST_TTR(unsigned char, int, tag, false);
+ TEST_TTR(unsigned char, long int, tag, false);
+ TEST_TTR(unsigned char, unsigned char, tag, false);
+ TEST_TTR(unsigned char, unsigned short int, tag, false);
+ TEST_TTR(unsigned char, unsigned int, tag, false);
+ TEST_TTR(unsigned char, unsigned long int, tag, false);
+ TEST_TTR(unsigned char, wchar_t, tag, false);
+ TEST_TTR(unsigned char, float, tag, false);
+ TEST_TTR(unsigned char, double, tag, false);
+ TEST_TTR(unsigned char, long double, tag, false);
+ TEST_TTR(unsigned short int, bool, tag, false);
+ TEST_TTR(unsigned short int, char, tag, false);
+ TEST_TTR(unsigned short int, signed char, tag, false);
+ TEST_TTR(unsigned short int, short int, tag, false);
+ TEST_TTR(unsigned short int, int, tag, false);
+ TEST_TTR(unsigned short int, long int, tag, false);
+ TEST_TTR(unsigned short int, unsigned char, tag, false);
+ TEST_TTR(unsigned short int, unsigned short int, tag, false);
+ TEST_TTR(unsigned short int, unsigned int, tag, false);
+ TEST_TTR(unsigned short int, unsigned long int, tag, false);
+ TEST_TTR(unsigned short int, wchar_t, tag, false);
+ TEST_TTR(unsigned short int, float, tag, false);
+ TEST_TTR(unsigned short int, double, tag, false);
+ TEST_TTR(unsigned short int, long double, tag, false);
+ TEST_TTR(unsigned int, bool, tag, false);
+ TEST_TTR(unsigned int, char, tag, false);
+ TEST_TTR(unsigned int, signed char, tag, false);
+ TEST_TTR(unsigned int, short int, tag, false);
+ TEST_TTR(unsigned int, int, tag, false);
+ TEST_TTR(unsigned int, long int, tag, false);
+ TEST_TTR(unsigned int, unsigned char, tag, false);
+ TEST_TTR(unsigned int, unsigned short int, tag, false);
+ TEST_TTR(unsigned int, unsigned int, tag, false);
+ TEST_TTR(unsigned int, unsigned long int, tag, false);
+ TEST_TTR(unsigned int, wchar_t, tag, false);
+ TEST_TTR(unsigned int, float, tag, false);
+ TEST_TTR(unsigned int, double, tag, false);
+ TEST_TTR(unsigned int, long double, tag, false);
+ TEST_TTR(unsigned long int, bool, tag, false);
+ TEST_TTR(unsigned long int, char, tag, false);
+ TEST_TTR(unsigned long int, signed char, tag, false);
+ TEST_TTR(unsigned long int, short int, tag, false);
+ TEST_TTR(unsigned long int, int, tag, false);
+ TEST_TTR(unsigned long int, long int, tag, false);
+ TEST_TTR(unsigned long int, unsigned char, tag, false);
+ TEST_TTR(unsigned long int, unsigned short int, tag, false);
+ TEST_TTR(unsigned long int, unsigned int, tag, false);
+ TEST_TTR(unsigned long int, unsigned long int, tag, false);
+ TEST_TTR(unsigned long int, wchar_t, tag, false);
+ TEST_TTR(unsigned long int, float, tag, false);
+ TEST_TTR(unsigned long int, double, tag, false);
+ TEST_TTR(unsigned long int, long double, tag, false);
+ TEST_TTR(wchar_t, bool, tag, false);
+ TEST_TTR(wchar_t, char, tag, false);
+ TEST_TTR(wchar_t, signed char, tag, false);
+ TEST_TTR(wchar_t, short int, tag, false);
+ TEST_TTR(wchar_t, int, tag, false);
+ TEST_TTR(wchar_t, long int, tag, false);
+ TEST_TTR(wchar_t, unsigned char, tag, false);
+ TEST_TTR(wchar_t, unsigned short int, tag, false);
+ TEST_TTR(wchar_t, unsigned int, tag, false);
+ TEST_TTR(wchar_t, unsigned long int, tag, false);
+ TEST_TTR(wchar_t, wchar_t, tag, false);
+ TEST_TTR(wchar_t, float, tag, false);
+ TEST_TTR(wchar_t, double, tag, false);
+ TEST_TTR(wchar_t, long double, tag, false);
+ TEST_TTR(float, bool, tag, false);
+ TEST_TTR(float, char, tag, false);
+ TEST_TTR(float, signed char, tag, false);
+ TEST_TTR(float, short int, tag, false);
+ TEST_TTR(float, int, tag, false);
+ TEST_TTR(float, long int, tag, false);
+ TEST_TTR(float, unsigned char, tag, false);
+ TEST_TTR(float, unsigned short int, tag, false);
+ TEST_TTR(float, unsigned int, tag, false);
+ TEST_TTR(float, unsigned long int, tag, false);
+ TEST_TTR(float, wchar_t, tag, false);
+ TEST_TTR(float, float, tag, false);
+ TEST_TTR(float, double, tag, false);
+ TEST_TTR(float, long double, tag, false);
+ TEST_TTR(double, bool, tag, false);
+ TEST_TTR(double, char, tag, false);
+ TEST_TTR(double, signed char, tag, false);
+ TEST_TTR(double, short int, tag, false);
+ TEST_TTR(double, int, tag, false);
+ TEST_TTR(double, long int, tag, false);
+ TEST_TTR(double, unsigned char, tag, false);
+ TEST_TTR(double, unsigned short int, tag, false);
+ TEST_TTR(double, unsigned int, tag, false);
+ TEST_TTR(double, unsigned long int, tag, false);
+ TEST_TTR(double, wchar_t, tag, false);
+ TEST_TTR(double, float, tag, false);
+ TEST_TTR(double, double, tag, false);
+ TEST_TTR(double, long double, tag, false);
+ TEST_TTR(long double, bool, tag, false);
+ TEST_TTR(long double, char, tag, false);
+ TEST_TTR(long double, signed char, tag, false);
+ TEST_TTR(long double, short int, tag, false);
+ TEST_TTR(long double, int, tag, false);
+ TEST_TTR(long double, long int, tag, false);
+ TEST_TTR(long double, unsigned char, tag, false);
+ TEST_TTR(long double, unsigned short int, tag, false);
+ TEST_TTR(long double, unsigned int, tag, false);
+ TEST_TTR(long double, unsigned long int, tag, false);
+ TEST_TTR(long double, wchar_t, tag, false);
+ TEST_TTR(long double, float, tag, false);
+ TEST_TTR(long double, double, tag, false);
+ TEST_TTR(long double, long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+ // pointers
+ TEST_TT(void*, bool, false);
+ TEST_TT(void*, int, false);
+ TEST_TT(void*, double, false);
+ TEST_TT(void*, A, false);
+ TEST_TT(void*, B, false);
+ TEST_TT(bool*, bool, true);
+ TEST_TT(bool*, int, true);
+ TEST_TT(bool*, double, false);
+ TEST_TT(bool*, A, false);
+ TEST_TT(bool*, B, false);
+ TEST_TT(int*, bool, true);
+ TEST_TT(int*, int, true);
+ TEST_TT(int*, double, false);
+ TEST_TT(int*, A, false);
+ TEST_TT(int*, B, false);
+ TEST_TT(double*, bool, true);
+ TEST_TT(double*, int, true);
+ TEST_TT(double*, double, false);
+ TEST_TT(double*, A, false);
+ TEST_TT(double*, B, false);
+ TEST_TT(A*, bool, true);
+ TEST_TT(A*, int, true);
+ TEST_TT(A*, double, false);
+ TEST_TT(A*, A, false);
+ TEST_TT(A*, B, false);
+ TEST_TT(B*, bool, true);
+ TEST_TT(B*, int, true);
+ TEST_TT(B*, double, false);
+ TEST_TT(B*, A, false);
+ TEST_TT(B*, B, false);
+ TEST_TT(bool, void*, false);
+ TEST_TT(bool, bool*, false);
+ TEST_TT(bool, int*, false);
+ TEST_TT(bool, double*, false);
+ TEST_TT(bool, A*, false);
+ TEST_TT(bool, B*, false);
+ TEST_TT(int, void*, false);
+ TEST_TT(int, bool*, false);
+ TEST_TT(int, int*, false);
+ TEST_TT(int, double*, false);
+ TEST_TT(int, A*, false);
+ TEST_TT(int, B*, false);
+ TEST_TT(double, void*, false);
+ TEST_TT(double, bool*, false);
+ TEST_TT(double, int*, false);
+ TEST_TT(double, double*, false);
+ TEST_TT(double, A*, false);
+ TEST_TT(double, B*, false);
+ TEST_TT(A, void*, false);
+ TEST_TT(A, bool*, false);
+ TEST_TT(A, int*, false);
+ TEST_TT(A, double*, false);
+ TEST_TT(A, A*, false);
+ TEST_TT(A, B*, false);
+ TEST_TT(B, void*, false);
+ TEST_TT(B, bool*, false);
+ TEST_TT(B, int*, false);
+ TEST_TT(B, double*, false);
+ TEST_TT(B, A*, false);
+ TEST_TT(B, B*, false);
+ TEST_TT(void*, void*, false);
+ TEST_TT(void*, bool*, false);
+ TEST_TT(void*, int*, false);
+ TEST_TT(void*, double*, false);
+ TEST_TT(void*, A*, false);
+ TEST_TT(void*, B*, false);
+ TEST_TT(bool*, void*, false);
+ TEST_TT(bool*, bool*, false);
+ TEST_TT(bool*, int*, false);
+ TEST_TT(bool*, double*, false);
+ TEST_TT(bool*, A*, false);
+ TEST_TT(bool*, B*, false);
+ TEST_TT(int*, void*, false);
+ TEST_TT(int*, bool*, false);
+ TEST_TT(int*, int*, false);
+ TEST_TT(int*, double*, false);
+ TEST_TT(int*, A*, false);
+ TEST_TT(int*, B*, false);
+ TEST_TT(double*, void*, false);
+ TEST_TT(double*, bool*, false);
+ TEST_TT(double*, int*, false);
+ TEST_TT(double*, double*, false);
+ TEST_TT(double*, A*, false);
+ TEST_TT(double*, B*, false);
+ TEST_TT(A*, void*, false);
+ TEST_TT(A*, bool*, false);
+ TEST_TT(A*, int*, false);
+ TEST_TT(A*, double*, false);
+ TEST_TT(A*, A*, false);
+ TEST_TT(A*, B*, false);
+ TEST_TT(B*, void*, false);
+ TEST_TT(B*, bool*, false);
+ TEST_TT(B*, int*, false);
+ TEST_TT(B*, double*, false);
+ TEST_TT(B*, A*, false);
+ TEST_TT(B*, B*, false);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_no_pointer_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_no_pointer_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,836 @@
+// (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
+#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
+#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
+#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
+#define TEST_TTR(TYPE1,TYPE2,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (const internal&) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, const external&);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP (const internal_private&) const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (const returns_int&); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (const returns_void&); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (const returns_void_star&); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (const returns_double&); };
+
+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&); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&, const Base1&) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&, const Derived2&) { return true; }
+
+struct tag { };
+
+struct A { };
+struct B : public A { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, true);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+ // test with only two template parameters
+ TEST_TT(bool, bool, true);
+ TEST_TT(bool, char, true);
+ TEST_TT(bool, signed char, true);
+ TEST_TT(bool, short int, true);
+ TEST_TT(bool, int, true);
+ TEST_TT(bool, long int, true);
+ TEST_TT(bool, unsigned char, true);
+ TEST_TT(bool, unsigned short int, true);
+ TEST_TT(bool, unsigned int, true);
+ TEST_TT(bool, unsigned long int, true);
+ TEST_TT(bool, wchar_t, true);
+ TEST_TT(bool, float, true);
+ TEST_TT(bool, double, true);
+ TEST_TT(bool, long double, true);
+ TEST_TT(char, bool, true);
+ TEST_TT(char, char, true);
+ TEST_TT(char, signed char, true);
+ TEST_TT(char, short int, true);
+ TEST_TT(char, int, true);
+ TEST_TT(char, long int, true);
+ TEST_TT(char, unsigned char, true);
+ TEST_TT(char, unsigned short int, true);
+ TEST_TT(char, unsigned int, true);
+ TEST_TT(char, unsigned long int, true);
+ TEST_TT(char, wchar_t, true);
+ TEST_TT(char, float, true);
+ TEST_TT(char, double, true);
+ TEST_TT(char, long double, true);
+ TEST_TT(signed char, bool, true);
+ TEST_TT(signed char, char, true);
+ TEST_TT(signed char, signed char, true);
+ TEST_TT(signed char, short int, true);
+ TEST_TT(signed char, int, true);
+ TEST_TT(signed char, long int, true);
+ TEST_TT(signed char, unsigned char, true);
+ TEST_TT(signed char, unsigned short int, true);
+ TEST_TT(signed char, unsigned int, true);
+ TEST_TT(signed char, unsigned long int, true);
+ TEST_TT(signed char, wchar_t, true);
+ TEST_TT(signed char, float, true);
+ TEST_TT(signed char, double, true);
+ TEST_TT(signed char, long double, true);
+ TEST_TT(short int, bool, true);
+ TEST_TT(short int, char, true);
+ TEST_TT(short int, signed char, true);
+ TEST_TT(short int, short int, true);
+ TEST_TT(short int, int, true);
+ TEST_TT(short int, long int, true);
+ TEST_TT(short int, unsigned char, true);
+ TEST_TT(short int, unsigned short int, true);
+ TEST_TT(short int, unsigned int, true);
+ TEST_TT(short int, unsigned long int, true);
+ TEST_TT(short int, wchar_t, true);
+ TEST_TT(short int, float, true);
+ TEST_TT(short int, double, true);
+ TEST_TT(short int, long double, true);
+ TEST_TT(int, bool, true);
+ TEST_TT(int, char, true);
+ TEST_TT(int, signed char, true);
+ TEST_TT(int, short int, true);
+ TEST_TT(int, int, true);
+ TEST_TT(int, long int, true);
+ TEST_TT(int, unsigned char, true);
+ TEST_TT(int, unsigned short int, true);
+ TEST_TT(int, unsigned int, true);
+ TEST_TT(int, unsigned long int, true);
+ TEST_TT(int, wchar_t, true);
+ TEST_TT(int, float, true);
+ TEST_TT(int, double, true);
+ TEST_TT(int, long double, true);
+ TEST_TT(long int, bool, true);
+ TEST_TT(long int, char, true);
+ TEST_TT(long int, signed char, true);
+ TEST_TT(long int, short int, true);
+ TEST_TT(long int, int, true);
+ TEST_TT(long int, long int, true);
+ TEST_TT(long int, unsigned char, true);
+ TEST_TT(long int, unsigned short int, true);
+ TEST_TT(long int, unsigned int, true);
+ TEST_TT(long int, unsigned long int, true);
+ TEST_TT(long int, wchar_t, true);
+ TEST_TT(long int, float, true);
+ TEST_TT(long int, double, true);
+ TEST_TT(long int, long double, true);
+ TEST_TT(unsigned char, bool, true);
+ TEST_TT(unsigned char, char, true);
+ TEST_TT(unsigned char, signed char, true);
+ TEST_TT(unsigned char, short int, true);
+ TEST_TT(unsigned char, int, true);
+ TEST_TT(unsigned char, long int, true);
+ TEST_TT(unsigned char, unsigned char, true);
+ TEST_TT(unsigned char, unsigned short int, true);
+ TEST_TT(unsigned char, unsigned int, true);
+ TEST_TT(unsigned char, unsigned long int, true);
+ TEST_TT(unsigned char, wchar_t, true);
+ TEST_TT(unsigned char, float, true);
+ TEST_TT(unsigned char, double, true);
+ TEST_TT(unsigned char, long double, true);
+ TEST_TT(unsigned short int, bool, true);
+ TEST_TT(unsigned short int, char, true);
+ TEST_TT(unsigned short int, signed char, true);
+ TEST_TT(unsigned short int, short int, true);
+ TEST_TT(unsigned short int, int, true);
+ TEST_TT(unsigned short int, long int, true);
+ TEST_TT(unsigned short int, unsigned char, true);
+ TEST_TT(unsigned short int, unsigned short int, true);
+ TEST_TT(unsigned short int, unsigned int, true);
+ TEST_TT(unsigned short int, unsigned long int, true);
+ TEST_TT(unsigned short int, wchar_t, true);
+ TEST_TT(unsigned short int, float, true);
+ TEST_TT(unsigned short int, double, true);
+ TEST_TT(unsigned short int, long double, true);
+ TEST_TT(unsigned int, bool, true);
+ TEST_TT(unsigned int, char, true);
+ TEST_TT(unsigned int, signed char, true);
+ TEST_TT(unsigned int, short int, true);
+ TEST_TT(unsigned int, int, true);
+ TEST_TT(unsigned int, long int, true);
+ TEST_TT(unsigned int, unsigned char, true);
+ TEST_TT(unsigned int, unsigned short int, true);
+ TEST_TT(unsigned int, unsigned int, true);
+ TEST_TT(unsigned int, unsigned long int, true);
+ TEST_TT(unsigned int, wchar_t, true);
+ TEST_TT(unsigned int, float, true);
+ TEST_TT(unsigned int, double, true);
+ TEST_TT(unsigned int, long double, true);
+ TEST_TT(unsigned long int, bool, true);
+ TEST_TT(unsigned long int, char, true);
+ TEST_TT(unsigned long int, signed char, true);
+ TEST_TT(unsigned long int, short int, true);
+ TEST_TT(unsigned long int, int, true);
+ TEST_TT(unsigned long int, long int, true);
+ TEST_TT(unsigned long int, unsigned char, true);
+ TEST_TT(unsigned long int, unsigned short int, true);
+ TEST_TT(unsigned long int, unsigned int, true);
+ TEST_TT(unsigned long int, unsigned long int, true);
+ TEST_TT(unsigned long int, wchar_t, true);
+ TEST_TT(unsigned long int, float, true);
+ TEST_TT(unsigned long int, double, true);
+ TEST_TT(unsigned long int, long double, true);
+ TEST_TT(wchar_t, bool, true);
+ TEST_TT(wchar_t, char, true);
+ TEST_TT(wchar_t, signed char, true);
+ TEST_TT(wchar_t, short int, true);
+ TEST_TT(wchar_t, int, true);
+ TEST_TT(wchar_t, long int, true);
+ TEST_TT(wchar_t, unsigned char, true);
+ TEST_TT(wchar_t, unsigned short int, true);
+ TEST_TT(wchar_t, unsigned int, true);
+ TEST_TT(wchar_t, unsigned long int, true);
+ TEST_TT(wchar_t, wchar_t, true);
+ TEST_TT(wchar_t, float, true);
+ TEST_TT(wchar_t, double, true);
+ TEST_TT(wchar_t, long double, true);
+ TEST_TT(float, bool, true);
+ TEST_TT(float, char, true);
+ TEST_TT(float, signed char, true);
+ TEST_TT(float, short int, true);
+ TEST_TT(float, int, true);
+ TEST_TT(float, long int, true);
+ TEST_TT(float, unsigned char, true);
+ TEST_TT(float, unsigned short int, true);
+ TEST_TT(float, unsigned int, true);
+ TEST_TT(float, unsigned long int, true);
+ TEST_TT(float, wchar_t, true);
+ TEST_TT(float, float, true);
+ TEST_TT(float, double, true);
+ TEST_TT(float, long double, true);
+ TEST_TT(double, bool, true);
+ TEST_TT(double, char, true);
+ TEST_TT(double, signed char, true);
+ TEST_TT(double, short int, true);
+ TEST_TT(double, int, true);
+ TEST_TT(double, long int, true);
+ TEST_TT(double, unsigned char, true);
+ TEST_TT(double, unsigned short int, true);
+ TEST_TT(double, unsigned int, true);
+ TEST_TT(double, unsigned long int, true);
+ TEST_TT(double, wchar_t, true);
+ TEST_TT(double, float, true);
+ TEST_TT(double, double, true);
+ TEST_TT(double, long double, true);
+ TEST_TT(long double, bool, true);
+ TEST_TT(long double, char, true);
+ TEST_TT(long double, signed char, true);
+ TEST_TT(long double, short int, true);
+ TEST_TT(long double, int, true);
+ TEST_TT(long double, long int, true);
+ TEST_TT(long double, unsigned char, true);
+ TEST_TT(long double, unsigned short int, true);
+ TEST_TT(long double, unsigned int, true);
+ TEST_TT(long double, unsigned long int, true);
+ TEST_TT(long double, wchar_t, true);
+ TEST_TT(long double, float, true);
+ TEST_TT(long double, double, true);
+ TEST_TT(long double, long double, true);
+ TEST_TT(bool, void, false);
+ TEST_TT(void, bool, false);
+ TEST_TT(char, void, false);
+ TEST_TT(void, char, false);
+ TEST_TT(signed char, void, false);
+ TEST_TT(void, signed char, false);
+ TEST_TT(short int, void, false);
+ TEST_TT(void, short int, false);
+ TEST_TT(int, void, false);
+ TEST_TT(void, int, false);
+ TEST_TT(long int, void, false);
+ TEST_TT(void, long int, false);
+ TEST_TT(unsigned char, void, false);
+ TEST_TT(void, unsigned char, false);
+ TEST_TT(unsigned short int, void, false);
+ TEST_TT(void, unsigned short int, false);
+ TEST_TT(unsigned int, void, false);
+ TEST_TT(void, unsigned int, false);
+ TEST_TT(unsigned long int, void, false);
+ TEST_TT(void, unsigned long int, false);
+ TEST_TT(wchar_t, void, false);
+ TEST_TT(void, wchar_t, false);
+ TEST_TT(float, void, false);
+ TEST_TT(void, float, false);
+ TEST_TT(double, void, false);
+ TEST_TT(void, double, false);
+ TEST_TT(long double, void, false);
+ TEST_TT(void, long double, false);
+
+// test with three template parameters
+ TEST_TTR(bool, bool, bool, true);
+ TEST_TTR(bool, char, bool, true);
+ TEST_TTR(bool, signed char, bool, true);
+ TEST_TTR(bool, short int, bool, true);
+ TEST_TTR(bool, int, bool, true);
+ TEST_TTR(bool, long int, bool, true);
+ TEST_TTR(bool, unsigned char, bool, true);
+ TEST_TTR(bool, unsigned short int, bool, true);
+ TEST_TTR(bool, unsigned int, bool, true);
+ TEST_TTR(bool, unsigned long int, bool, true);
+ TEST_TTR(bool, wchar_t, bool, true);
+ TEST_TTR(bool, float, bool, true);
+ TEST_TTR(bool, double, bool, true);
+ TEST_TTR(bool, long double, bool, true);
+ TEST_TTR(char, bool, bool, true);
+ TEST_TTR(char, char, bool, true);
+ TEST_TTR(char, signed char, bool, true);
+ TEST_TTR(char, short int, bool, true);
+ TEST_TTR(char, int, bool, true);
+ TEST_TTR(char, long int, bool, true);
+ TEST_TTR(char, unsigned char, bool, true);
+ TEST_TTR(char, unsigned short int, bool, true);
+ TEST_TTR(char, unsigned int, bool, true);
+ TEST_TTR(char, unsigned long int, bool, true);
+ TEST_TTR(char, wchar_t, bool, true);
+ TEST_TTR(char, float, bool, true);
+ TEST_TTR(char, double, bool, true);
+ TEST_TTR(char, long double, bool, true);
+ TEST_TTR(signed char, bool, bool, true);
+ TEST_TTR(signed char, char, bool, true);
+ TEST_TTR(signed char, signed char, bool, true);
+ TEST_TTR(signed char, short int, bool, true);
+ TEST_TTR(signed char, int, bool, true);
+ TEST_TTR(signed char, long int, bool, true);
+ TEST_TTR(signed char, unsigned char, bool, true);
+ TEST_TTR(signed char, unsigned short int, bool, true);
+ TEST_TTR(signed char, unsigned int, bool, true);
+ TEST_TTR(signed char, unsigned long int, bool, true);
+ TEST_TTR(signed char, wchar_t, bool, true);
+ TEST_TTR(signed char, float, bool, true);
+ TEST_TTR(signed char, double, bool, true);
+ TEST_TTR(signed char, long double, bool, true);
+ TEST_TTR(short int, bool, bool, true);
+ TEST_TTR(short int, char, bool, true);
+ TEST_TTR(short int, signed char, bool, true);
+ TEST_TTR(short int, short int, bool, true);
+ TEST_TTR(short int, int, bool, true);
+ TEST_TTR(short int, long int, bool, true);
+ TEST_TTR(short int, unsigned char, bool, true);
+ TEST_TTR(short int, unsigned short int, bool, true);
+ TEST_TTR(short int, unsigned int, bool, true);
+ TEST_TTR(short int, unsigned long int, bool, true);
+ TEST_TTR(short int, wchar_t, bool, true);
+ TEST_TTR(short int, float, bool, true);
+ TEST_TTR(short int, double, bool, true);
+ TEST_TTR(short int, long double, bool, true);
+ TEST_TTR(int, bool, bool, true);
+ TEST_TTR(int, char, bool, true);
+ TEST_TTR(int, signed char, bool, true);
+ TEST_TTR(int, short int, bool, true);
+ TEST_TTR(int, int, bool, true);
+ TEST_TTR(int, long int, bool, true);
+ TEST_TTR(int, unsigned char, bool, true);
+ TEST_TTR(int, unsigned short int, bool, true);
+ TEST_TTR(int, unsigned int, bool, true);
+ TEST_TTR(int, unsigned long int, bool, true);
+ TEST_TTR(int, wchar_t, bool, true);
+ TEST_TTR(int, float, bool, true);
+ TEST_TTR(int, double, bool, true);
+ TEST_TTR(int, long double, bool, true);
+ TEST_TTR(long int, bool, bool, true);
+ TEST_TTR(long int, char, bool, true);
+ TEST_TTR(long int, signed char, bool, true);
+ TEST_TTR(long int, short int, bool, true);
+ TEST_TTR(long int, int, bool, true);
+ TEST_TTR(long int, long int, bool, true);
+ TEST_TTR(long int, unsigned char, bool, true);
+ TEST_TTR(long int, unsigned short int, bool, true);
+ TEST_TTR(long int, unsigned int, bool, true);
+ TEST_TTR(long int, unsigned long int, bool, true);
+ TEST_TTR(long int, wchar_t, bool, true);
+ TEST_TTR(long int, float, bool, true);
+ TEST_TTR(long int, double, bool, true);
+ TEST_TTR(long int, long double, bool, true);
+ TEST_TTR(unsigned char, bool, bool, true);
+ TEST_TTR(unsigned char, char, bool, true);
+ TEST_TTR(unsigned char, signed char, bool, true);
+ TEST_TTR(unsigned char, short int, bool, true);
+ TEST_TTR(unsigned char, int, bool, true);
+ TEST_TTR(unsigned char, long int, bool, true);
+ TEST_TTR(unsigned char, unsigned char, bool, true);
+ TEST_TTR(unsigned char, unsigned short int, bool, true);
+ TEST_TTR(unsigned char, unsigned int, bool, true);
+ TEST_TTR(unsigned char, unsigned long int, bool, true);
+ TEST_TTR(unsigned char, wchar_t, bool, true);
+ TEST_TTR(unsigned char, float, bool, true);
+ TEST_TTR(unsigned char, double, bool, true);
+ TEST_TTR(unsigned char, long double, bool, true);
+ TEST_TTR(unsigned short int, bool, bool, true);
+ TEST_TTR(unsigned short int, char, bool, true);
+ TEST_TTR(unsigned short int, signed char, bool, true);
+ TEST_TTR(unsigned short int, short int, bool, true);
+ TEST_TTR(unsigned short int, int, bool, true);
+ TEST_TTR(unsigned short int, long int, bool, true);
+ TEST_TTR(unsigned short int, unsigned char, bool, true);
+ TEST_TTR(unsigned short int, unsigned short int, bool, true);
+ TEST_TTR(unsigned short int, unsigned int, bool, true);
+ TEST_TTR(unsigned short int, unsigned long int, bool, true);
+ TEST_TTR(unsigned short int, wchar_t, bool, true);
+ TEST_TTR(unsigned short int, float, bool, true);
+ TEST_TTR(unsigned short int, double, bool, true);
+ TEST_TTR(unsigned short int, long double, bool, true);
+ TEST_TTR(unsigned int, bool, bool, true);
+ TEST_TTR(unsigned int, char, bool, true);
+ TEST_TTR(unsigned int, signed char, bool, true);
+ TEST_TTR(unsigned int, short int, bool, true);
+ TEST_TTR(unsigned int, int, bool, true);
+ TEST_TTR(unsigned int, long int, bool, true);
+ TEST_TTR(unsigned int, unsigned char, bool, true);
+ TEST_TTR(unsigned int, unsigned short int, bool, true);
+ TEST_TTR(unsigned int, unsigned int, bool, true);
+ TEST_TTR(unsigned int, unsigned long int, bool, true);
+ TEST_TTR(unsigned int, wchar_t, bool, true);
+ TEST_TTR(unsigned int, float, bool, true);
+ TEST_TTR(unsigned int, double, bool, true);
+ TEST_TTR(unsigned int, long double, bool, true);
+ TEST_TTR(unsigned long int, bool, bool, true);
+ TEST_TTR(unsigned long int, char, bool, true);
+ TEST_TTR(unsigned long int, signed char, bool, true);
+ TEST_TTR(unsigned long int, short int, bool, true);
+ TEST_TTR(unsigned long int, int, bool, true);
+ TEST_TTR(unsigned long int, long int, bool, true);
+ TEST_TTR(unsigned long int, unsigned char, bool, true);
+ TEST_TTR(unsigned long int, unsigned short int, bool, true);
+ TEST_TTR(unsigned long int, unsigned int, bool, true);
+ TEST_TTR(unsigned long int, unsigned long int, bool, true);
+ TEST_TTR(unsigned long int, wchar_t, bool, true);
+ TEST_TTR(unsigned long int, float, bool, true);
+ TEST_TTR(unsigned long int, double, bool, true);
+ TEST_TTR(unsigned long int, long double, bool, true);
+ TEST_TTR(wchar_t, bool, bool, true);
+ TEST_TTR(wchar_t, char, bool, true);
+ TEST_TTR(wchar_t, signed char, bool, true);
+ TEST_TTR(wchar_t, short int, bool, true);
+ TEST_TTR(wchar_t, int, bool, true);
+ TEST_TTR(wchar_t, long int, bool, true);
+ TEST_TTR(wchar_t, unsigned char, bool, true);
+ TEST_TTR(wchar_t, unsigned short int, bool, true);
+ TEST_TTR(wchar_t, unsigned int, bool, true);
+ TEST_TTR(wchar_t, unsigned long int, bool, true);
+ TEST_TTR(wchar_t, wchar_t, bool, true);
+ TEST_TTR(wchar_t, float, bool, true);
+ TEST_TTR(wchar_t, double, bool, true);
+ TEST_TTR(wchar_t, long double, bool, true);
+ TEST_TTR(float, bool, bool, true);
+ TEST_TTR(float, char, bool, true);
+ TEST_TTR(float, signed char, bool, true);
+ TEST_TTR(float, short int, bool, true);
+ TEST_TTR(float, int, bool, true);
+ TEST_TTR(float, long int, bool, true);
+ TEST_TTR(float, unsigned char, bool, true);
+ TEST_TTR(float, unsigned short int, bool, true);
+ TEST_TTR(float, unsigned int, bool, true);
+ TEST_TTR(float, unsigned long int, bool, true);
+ TEST_TTR(float, wchar_t, bool, true);
+ TEST_TTR(float, float, bool, true);
+ TEST_TTR(float, double, bool, true);
+ TEST_TTR(float, long double, bool, true);
+ TEST_TTR(double, bool, bool, true);
+ TEST_TTR(double, char, bool, true);
+ TEST_TTR(double, signed char, bool, true);
+ TEST_TTR(double, short int, bool, true);
+ TEST_TTR(double, int, bool, true);
+ TEST_TTR(double, long int, bool, true);
+ TEST_TTR(double, unsigned char, bool, true);
+ TEST_TTR(double, unsigned short int, bool, true);
+ TEST_TTR(double, unsigned int, bool, true);
+ TEST_TTR(double, unsigned long int, bool, true);
+ TEST_TTR(double, wchar_t, bool, true);
+ TEST_TTR(double, float, bool, true);
+ TEST_TTR(double, double, bool, true);
+ TEST_TTR(double, long double, bool, true);
+ TEST_TTR(long double, bool, bool, true);
+ TEST_TTR(long double, char, bool, true);
+ TEST_TTR(long double, signed char, bool, true);
+ TEST_TTR(long double, short int, bool, true);
+ TEST_TTR(long double, int, bool, true);
+ TEST_TTR(long double, long int, bool, true);
+ TEST_TTR(long double, unsigned char, bool, true);
+ TEST_TTR(long double, unsigned short int, bool, true);
+ TEST_TTR(long double, unsigned int, bool, true);
+ TEST_TTR(long double, unsigned long int, bool, true);
+ TEST_TTR(long double, wchar_t, bool, true);
+ TEST_TTR(long double, float, bool, true);
+ TEST_TTR(long double, double, bool, true);
+ TEST_TTR(long double, long double, bool, true);
+ TEST_TTR(bool, bool, tag, false);
+ TEST_TTR(bool, char, tag, false);
+ TEST_TTR(bool, signed char, tag, false);
+ TEST_TTR(bool, short int, tag, false);
+ TEST_TTR(bool, int, tag, false);
+ TEST_TTR(bool, long int, tag, false);
+ TEST_TTR(bool, unsigned char, tag, false);
+ TEST_TTR(bool, unsigned short int, tag, false);
+ TEST_TTR(bool, unsigned int, tag, false);
+ TEST_TTR(bool, unsigned long int, tag, false);
+ TEST_TTR(bool, wchar_t, tag, false);
+ TEST_TTR(bool, float, tag, false);
+ TEST_TTR(bool, double, tag, false);
+ TEST_TTR(bool, long double, tag, false);
+ TEST_TTR(char, bool, tag, false);
+ TEST_TTR(char, char, tag, false);
+ TEST_TTR(char, signed char, tag, false);
+ TEST_TTR(char, short int, tag, false);
+ TEST_TTR(char, int, tag, false);
+ TEST_TTR(char, long int, tag, false);
+ TEST_TTR(char, unsigned char, tag, false);
+ TEST_TTR(char, unsigned short int, tag, false);
+ TEST_TTR(char, unsigned int, tag, false);
+ TEST_TTR(char, unsigned long int, tag, false);
+ TEST_TTR(char, wchar_t, tag, false);
+ TEST_TTR(char, float, tag, false);
+ TEST_TTR(char, double, tag, false);
+ TEST_TTR(char, long double, tag, false);
+ TEST_TTR(signed char, bool, tag, false);
+ TEST_TTR(signed char, char, tag, false);
+ TEST_TTR(signed char, signed char, tag, false);
+ TEST_TTR(signed char, short int, tag, false);
+ TEST_TTR(signed char, int, tag, false);
+ TEST_TTR(signed char, long int, tag, false);
+ TEST_TTR(signed char, unsigned char, tag, false);
+ TEST_TTR(signed char, unsigned short int, tag, false);
+ TEST_TTR(signed char, unsigned int, tag, false);
+ TEST_TTR(signed char, unsigned long int, tag, false);
+ TEST_TTR(signed char, wchar_t, tag, false);
+ TEST_TTR(signed char, float, tag, false);
+ TEST_TTR(signed char, double, tag, false);
+ TEST_TTR(signed char, long double, tag, false);
+ TEST_TTR(short int, bool, tag, false);
+ TEST_TTR(short int, char, tag, false);
+ TEST_TTR(short int, signed char, tag, false);
+ TEST_TTR(short int, short int, tag, false);
+ TEST_TTR(short int, int, tag, false);
+ TEST_TTR(short int, long int, tag, false);
+ TEST_TTR(short int, unsigned char, tag, false);
+ TEST_TTR(short int, unsigned short int, tag, false);
+ TEST_TTR(short int, unsigned int, tag, false);
+ TEST_TTR(short int, unsigned long int, tag, false);
+ TEST_TTR(short int, wchar_t, tag, false);
+ TEST_TTR(short int, float, tag, false);
+ TEST_TTR(short int, double, tag, false);
+ TEST_TTR(short int, long double, tag, false);
+ TEST_TTR(int, bool, tag, false);
+ TEST_TTR(int, char, tag, false);
+ TEST_TTR(int, signed char, tag, false);
+ TEST_TTR(int, short int, tag, false);
+ TEST_TTR(int, int, tag, false);
+ TEST_TTR(int, long int, tag, false);
+ TEST_TTR(int, unsigned char, tag, false);
+ TEST_TTR(int, unsigned short int, tag, false);
+ TEST_TTR(int, unsigned int, tag, false);
+ TEST_TTR(int, unsigned long int, tag, false);
+ TEST_TTR(int, wchar_t, tag, false);
+ TEST_TTR(int, float, tag, false);
+ TEST_TTR(int, double, tag, false);
+ TEST_TTR(int, long double, tag, false);
+ TEST_TTR(long int, bool, tag, false);
+ TEST_TTR(long int, char, tag, false);
+ TEST_TTR(long int, signed char, tag, false);
+ TEST_TTR(long int, short int, tag, false);
+ TEST_TTR(long int, int, tag, false);
+ TEST_TTR(long int, long int, tag, false);
+ TEST_TTR(long int, unsigned char, tag, false);
+ TEST_TTR(long int, unsigned short int, tag, false);
+ TEST_TTR(long int, unsigned int, tag, false);
+ TEST_TTR(long int, unsigned long int, tag, false);
+ TEST_TTR(long int, wchar_t, tag, false);
+ TEST_TTR(long int, float, tag, false);
+ TEST_TTR(long int, double, tag, false);
+ TEST_TTR(long int, long double, tag, false);
+ TEST_TTR(unsigned char, bool, tag, false);
+ TEST_TTR(unsigned char, char, tag, false);
+ TEST_TTR(unsigned char, signed char, tag, false);
+ TEST_TTR(unsigned char, short int, tag, false);
+ TEST_TTR(unsigned char, int, tag, false);
+ TEST_TTR(unsigned char, long int, tag, false);
+ TEST_TTR(unsigned char, unsigned char, tag, false);
+ TEST_TTR(unsigned char, unsigned short int, tag, false);
+ TEST_TTR(unsigned char, unsigned int, tag, false);
+ TEST_TTR(unsigned char, unsigned long int, tag, false);
+ TEST_TTR(unsigned char, wchar_t, tag, false);
+ TEST_TTR(unsigned char, float, tag, false);
+ TEST_TTR(unsigned char, double, tag, false);
+ TEST_TTR(unsigned char, long double, tag, false);
+ TEST_TTR(unsigned short int, bool, tag, false);
+ TEST_TTR(unsigned short int, char, tag, false);
+ TEST_TTR(unsigned short int, signed char, tag, false);
+ TEST_TTR(unsigned short int, short int, tag, false);
+ TEST_TTR(unsigned short int, int, tag, false);
+ TEST_TTR(unsigned short int, long int, tag, false);
+ TEST_TTR(unsigned short int, unsigned char, tag, false);
+ TEST_TTR(unsigned short int, unsigned short int, tag, false);
+ TEST_TTR(unsigned short int, unsigned int, tag, false);
+ TEST_TTR(unsigned short int, unsigned long int, tag, false);
+ TEST_TTR(unsigned short int, wchar_t, tag, false);
+ TEST_TTR(unsigned short int, float, tag, false);
+ TEST_TTR(unsigned short int, double, tag, false);
+ TEST_TTR(unsigned short int, long double, tag, false);
+ TEST_TTR(unsigned int, bool, tag, false);
+ TEST_TTR(unsigned int, char, tag, false);
+ TEST_TTR(unsigned int, signed char, tag, false);
+ TEST_TTR(unsigned int, short int, tag, false);
+ TEST_TTR(unsigned int, int, tag, false);
+ TEST_TTR(unsigned int, long int, tag, false);
+ TEST_TTR(unsigned int, unsigned char, tag, false);
+ TEST_TTR(unsigned int, unsigned short int, tag, false);
+ TEST_TTR(unsigned int, unsigned int, tag, false);
+ TEST_TTR(unsigned int, unsigned long int, tag, false);
+ TEST_TTR(unsigned int, wchar_t, tag, false);
+ TEST_TTR(unsigned int, float, tag, false);
+ TEST_TTR(unsigned int, double, tag, false);
+ TEST_TTR(unsigned int, long double, tag, false);
+ TEST_TTR(unsigned long int, bool, tag, false);
+ TEST_TTR(unsigned long int, char, tag, false);
+ TEST_TTR(unsigned long int, signed char, tag, false);
+ TEST_TTR(unsigned long int, short int, tag, false);
+ TEST_TTR(unsigned long int, int, tag, false);
+ TEST_TTR(unsigned long int, long int, tag, false);
+ TEST_TTR(unsigned long int, unsigned char, tag, false);
+ TEST_TTR(unsigned long int, unsigned short int, tag, false);
+ TEST_TTR(unsigned long int, unsigned int, tag, false);
+ TEST_TTR(unsigned long int, unsigned long int, tag, false);
+ TEST_TTR(unsigned long int, wchar_t, tag, false);
+ TEST_TTR(unsigned long int, float, tag, false);
+ TEST_TTR(unsigned long int, double, tag, false);
+ TEST_TTR(unsigned long int, long double, tag, false);
+ TEST_TTR(wchar_t, bool, tag, false);
+ TEST_TTR(wchar_t, char, tag, false);
+ TEST_TTR(wchar_t, signed char, tag, false);
+ TEST_TTR(wchar_t, short int, tag, false);
+ TEST_TTR(wchar_t, int, tag, false);
+ TEST_TTR(wchar_t, long int, tag, false);
+ TEST_TTR(wchar_t, unsigned char, tag, false);
+ TEST_TTR(wchar_t, unsigned short int, tag, false);
+ TEST_TTR(wchar_t, unsigned int, tag, false);
+ TEST_TTR(wchar_t, unsigned long int, tag, false);
+ TEST_TTR(wchar_t, wchar_t, tag, false);
+ TEST_TTR(wchar_t, float, tag, false);
+ TEST_TTR(wchar_t, double, tag, false);
+ TEST_TTR(wchar_t, long double, tag, false);
+ TEST_TTR(float, bool, tag, false);
+ TEST_TTR(float, char, tag, false);
+ TEST_TTR(float, signed char, tag, false);
+ TEST_TTR(float, short int, tag, false);
+ TEST_TTR(float, int, tag, false);
+ TEST_TTR(float, long int, tag, false);
+ TEST_TTR(float, unsigned char, tag, false);
+ TEST_TTR(float, unsigned short int, tag, false);
+ TEST_TTR(float, unsigned int, tag, false);
+ TEST_TTR(float, unsigned long int, tag, false);
+ TEST_TTR(float, wchar_t, tag, false);
+ TEST_TTR(float, float, tag, false);
+ TEST_TTR(float, double, tag, false);
+ TEST_TTR(float, long double, tag, false);
+ TEST_TTR(double, bool, tag, false);
+ TEST_TTR(double, char, tag, false);
+ TEST_TTR(double, signed char, tag, false);
+ TEST_TTR(double, short int, tag, false);
+ TEST_TTR(double, int, tag, false);
+ TEST_TTR(double, long int, tag, false);
+ TEST_TTR(double, unsigned char, tag, false);
+ TEST_TTR(double, unsigned short int, tag, false);
+ TEST_TTR(double, unsigned int, tag, false);
+ TEST_TTR(double, unsigned long int, tag, false);
+ TEST_TTR(double, wchar_t, tag, false);
+ TEST_TTR(double, float, tag, false);
+ TEST_TTR(double, double, tag, false);
+ TEST_TTR(double, long double, tag, false);
+ TEST_TTR(long double, bool, tag, false);
+ TEST_TTR(long double, char, tag, false);
+ TEST_TTR(long double, signed char, tag, false);
+ TEST_TTR(long double, short int, tag, false);
+ TEST_TTR(long double, int, tag, false);
+ TEST_TTR(long double, long int, tag, false);
+ TEST_TTR(long double, unsigned char, tag, false);
+ TEST_TTR(long double, unsigned short int, tag, false);
+ TEST_TTR(long double, unsigned int, tag, false);
+ TEST_TTR(long double, unsigned long int, tag, false);
+ TEST_TTR(long double, wchar_t, tag, false);
+ TEST_TTR(long double, float, tag, false);
+ TEST_TTR(long double, double, tag, false);
+ TEST_TTR(long double, long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+ // pointers
+ TEST_TT(void*, bool, false);
+ TEST_TT(void*, int, false);
+ TEST_TT(void*, double, false);
+ TEST_TT(void*, A, false);
+ TEST_TT(void*, B, false);
+ TEST_TT(bool*, bool, false);
+ TEST_TT(bool*, int, false);
+ TEST_TT(bool*, double, false);
+ TEST_TT(bool*, A, false);
+ TEST_TT(bool*, B, false);
+ TEST_TT(int*, bool, false);
+ TEST_TT(int*, int, false);
+ TEST_TT(int*, double, false);
+ TEST_TT(int*, A, false);
+ TEST_TT(int*, B, false);
+ TEST_TT(double*, bool, false);
+ TEST_TT(double*, int, false);
+ TEST_TT(double*, double, false);
+ TEST_TT(double*, A, false);
+ TEST_TT(double*, B, false);
+ TEST_TT(A*, bool, false);
+ TEST_TT(A*, int, false);
+ TEST_TT(A*, double, false);
+ TEST_TT(A*, A, false);
+ TEST_TT(A*, B, false);
+ TEST_TT(B*, bool, false);
+ TEST_TT(B*, int, false);
+ TEST_TT(B*, double, false);
+ TEST_TT(B*, A, false);
+ TEST_TT(B*, B, false);
+ TEST_TT(bool, void*, false);
+ TEST_TT(bool, bool*, false);
+ TEST_TT(bool, int*, false);
+ TEST_TT(bool, double*, false);
+ TEST_TT(bool, A*, false);
+ TEST_TT(bool, B*, false);
+ TEST_TT(int, void*, false);
+ TEST_TT(int, bool*, false);
+ TEST_TT(int, int*, false);
+ TEST_TT(int, double*, false);
+ TEST_TT(int, A*, false);
+ TEST_TT(int, B*, false);
+ TEST_TT(double, void*, false);
+ TEST_TT(double, bool*, false);
+ TEST_TT(double, int*, false);
+ TEST_TT(double, double*, false);
+ TEST_TT(double, A*, false);
+ TEST_TT(double, B*, false);
+ TEST_TT(A, void*, false);
+ TEST_TT(A, bool*, false);
+ TEST_TT(A, int*, false);
+ TEST_TT(A, double*, false);
+ TEST_TT(A, A*, false);
+ TEST_TT(A, B*, false);
+ TEST_TT(B, void*, false);
+ TEST_TT(B, bool*, false);
+ TEST_TT(B, int*, false);
+ TEST_TT(B, double*, false);
+ TEST_TT(B, A*, false);
+ TEST_TT(B, B*, false);
+ TEST_TT(void*, void*, false);
+ TEST_TT(void*, bool*, false);
+ TEST_TT(void*, int*, false);
+ TEST_TT(void*, double*, false);
+ TEST_TT(void*, A*, false);
+ TEST_TT(void*, B*, false);
+ TEST_TT(bool*, void*, false);
+ TEST_TT(bool*, bool*, false);
+ TEST_TT(bool*, int*, false);
+ TEST_TT(bool*, double*, false);
+ TEST_TT(bool*, A*, false);
+ TEST_TT(bool*, B*, false);
+ TEST_TT(int*, void*, false);
+ TEST_TT(int*, bool*, false);
+ TEST_TT(int*, int*, false);
+ TEST_TT(int*, double*, false);
+ TEST_TT(int*, A*, false);
+ TEST_TT(int*, B*, false);
+ TEST_TT(double*, void*, false);
+ TEST_TT(double*, bool*, false);
+ TEST_TT(double*, int*, false);
+ TEST_TT(double*, double*, false);
+ TEST_TT(double*, A*, false);
+ TEST_TT(double*, B*, false);
+ TEST_TT(A*, void*, false);
+ TEST_TT(A*, bool*, false);
+ TEST_TT(A*, int*, false);
+ TEST_TT(A*, double*, false);
+ TEST_TT(A*, A*, false);
+ TEST_TT(A*, B*, false);
+ TEST_TT(B*, void*, false);
+ TEST_TT(B*, bool*, false);
+ TEST_TT(B*, int*, false);
+ TEST_TT(B*, double*, false);
+ TEST_TT(B*, A*, false);
+ TEST_TT(B*, B*, false);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_bit_and_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_bit_and_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_bit_and_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_bit_and_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_bit_and_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_bit_and_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_bit_or_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_bit_or_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_bit_or_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_bit_or_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_bit_or_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_bit_or_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_bit_xor_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_bit_xor_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_bit_xor_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_bit_xor_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_bit_xor_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_bit_xor_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_divides_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_divides_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_divides_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_divides_equal
 #define BOOST_TT_TRAIT_OP /=
 
-#include "has_binary_operator_test.hpp"
+#include "has_no_pointer_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_divides_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_divides_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_divides_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_divides
 #define BOOST_TT_TRAIT_OP /
 
-#include "has_binary_operator_test.hpp"
+#include "has_no_pointer_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_equal_to_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_equal_to_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_equal_to_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_equal_to
 #define BOOST_TT_TRAIT_OP ==
 
-#include "has_binary_operator_test.hpp"
+#include "has_comparison_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_greater_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_greater_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_greater_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_greater_equal
 #define BOOST_TT_TRAIT_OP >=
 
-#include "has_binary_operator_test.hpp"
+#include "has_comparison_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_greater_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_greater_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_greater_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_greater
 #define BOOST_TT_TRAIT_OP >
 
-#include "has_binary_operator_test.hpp"
+#include "has_comparison_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_left_shift_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_left_shift_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_left_shift_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_left_shift_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_left_shift_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_left_shift_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_less_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_less_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_less_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_less_equal
 #define BOOST_TT_TRAIT_OP <=
 
-#include "has_binary_operator_test.hpp"
+#include "has_comparison_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_less_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_less_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_less_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_less
 #define BOOST_TT_TRAIT_OP <
 
-#include "has_binary_operator_test.hpp"
+#include "has_comparison_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_logical_and_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_logical_and_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_logical_and_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_logical_and
 #define BOOST_TT_TRAIT_OP &&
 
-#include "has_binary_operator_test.hpp"
+#include "has_binary_logical_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_logical_not_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_logical_not_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_logical_not_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -14,6 +14,5 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_logical_not
 #define BOOST_TT_TRAIT_OP !
-#define BOOST_TT_TRAIT_BOOL_RESULT true
 
-#include "has_prefix_unary_operator_test.hpp"
+#include "has_prefix_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_logical_or_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_logical_or_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_logical_or_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_logical_or
 #define BOOST_TT_TRAIT_OP ||
 
-#include "has_binary_operator_test.hpp"
+#include "has_binary_logical_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_minus_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_minus_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_minus_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_minus_equal
 #define BOOST_TT_TRAIT_OP -=
 
-#include "has_binary_operator_test.hpp"
+#include "has_minus_equal_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_minus_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_minus_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_minus_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_minus
 #define BOOST_TT_TRAIT_OP -
 
-#include "has_binary_operator_test.hpp"
+#include "has_binary_minus_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_modulus_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_modulus_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_modulus_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_modulus_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_modulus_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_modulus_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_multiplies_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_multiplies_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_multiplies_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_multiplies_equal
 #define BOOST_TT_TRAIT_OP *=
 
-#include "has_binary_operator_test.hpp"
+#include "has_no_pointer_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_multiplies_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_multiplies_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_multiplies_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_multiplies
 #define BOOST_TT_TRAIT_OP *
 
-#include "has_binary_operator_test.hpp"
+#include "has_no_pointer_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_not_equal_to_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_not_equal_to_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_not_equal_to_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_not_equal_to
 #define BOOST_TT_TRAIT_OP !=
 
-#include "has_binary_operator_test.hpp"
+#include "has_comparison_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_plus_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_plus_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_plus_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_plus_equal
 #define BOOST_TT_TRAIT_OP +=
 
-#include "has_binary_operator_test.hpp"
+#include "has_plus_equal_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_plus_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_plus_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_plus_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -15,4 +15,4 @@
 #define BOOST_TT_TRAIT_NAME has_operator_plus
 #define BOOST_TT_TRAIT_OP +
 
-#include "has_binary_operator_test.hpp"
+#include "has_binary_plus_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_postfix_decrement_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_postfix_decrement_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_postfix_decrement_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -14,6 +14,5 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_postfix_decrement
 #define BOOST_TT_TRAIT_OP --
-#define BOOST_TT_TRAIT_BOOL_RESULT false
 
-#include "has_postfix_unary_operator_test.hpp"
+#include "has_postfix_decrement_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_postfix_increment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_postfix_increment_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_postfix_increment_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -14,6 +14,5 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_postfix_increment
 #define BOOST_TT_TRAIT_OP ++
-#define BOOST_TT_TRAIT_BOOL_RESULT true
 
-#include "has_postfix_unary_operator_test.hpp"
+#include "has_postfix_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_prefix_decrement_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_prefix_decrement_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_prefix_decrement_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -14,6 +14,5 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_prefix_decrement
 #define BOOST_TT_TRAIT_OP --
-#define BOOST_TT_TRAIT_BOOL_RESULT false
 
-#include "has_prefix_unary_operator_test.hpp"
+#include "has_prefix_decrement_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_prefix_increment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_prefix_increment_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_prefix_increment_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -14,6 +14,5 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_prefix_increment
 #define BOOST_TT_TRAIT_OP ++
-#define BOOST_TT_TRAIT_BOOL_RESULT true
 
-#include "has_prefix_unary_operator_test.hpp"
+#include "has_prefix_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_right_shift_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_right_shift_equal_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_right_shift_equal_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_right_shift_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_right_shift_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_right_shift_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_unary_minus_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_unary_minus_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_unary_minus_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -14,6 +14,5 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_unary_minus
 #define BOOST_TT_TRAIT_OP -
-#define BOOST_TT_TRAIT_BOOL_RESULT true
 
-#include "has_prefix_unary_operator_test.hpp"
+#include "has_prefix_operator_test.hpp"

Modified: sandbox/type_traits/libs/type_traits/test/has_operator_unary_plus_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_operator_unary_plus_test.cpp (original)
+++ sandbox/type_traits/libs/type_traits/test/has_operator_unary_plus_test.cpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -1,4 +1,4 @@
-// (C) Copyright Frederic Bron 2010.
+// (C) Copyright 2009-2011 Frédéric Bron (frederic.bron_at_[hidden])
 // 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)
@@ -14,6 +14,5 @@
 
 #define BOOST_TT_TRAIT_NAME has_operator_unary_plus
 #define BOOST_TT_TRAIT_OP +
-#define BOOST_TT_TRAIT_BOOL_RESULT true
 
-#include "has_prefix_unary_operator_test.hpp"
+#include "has_prefix_operator_test.hpp"

Added: sandbox/type_traits/libs/type_traits/test/has_plus_equal_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_plus_equal_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,836 @@
+// (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
+#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
+#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
+#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
+#define TEST_TTR(TYPE1,TYPE2,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (const internal&) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, const external&);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP (const internal_private&) const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (const returns_int&); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (const returns_void&); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (const returns_void_star&); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (const returns_double&); };
+
+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&); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&, const Base1&) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&, const Derived2&) { return true; }
+
+struct tag { };
+
+struct A { };
+struct B : public A { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, true);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+ // test with only two template parameters
+ TEST_TT(bool, bool, true);
+ TEST_TT(bool, char, true);
+ TEST_TT(bool, signed char, true);
+ TEST_TT(bool, short int, true);
+ TEST_TT(bool, int, true);
+ TEST_TT(bool, long int, true);
+ TEST_TT(bool, unsigned char, true);
+ TEST_TT(bool, unsigned short int, true);
+ TEST_TT(bool, unsigned int, true);
+ TEST_TT(bool, unsigned long int, true);
+ TEST_TT(bool, wchar_t, true);
+ TEST_TT(bool, float, true);
+ TEST_TT(bool, double, true);
+ TEST_TT(bool, long double, true);
+ TEST_TT(char, bool, true);
+ TEST_TT(char, char, true);
+ TEST_TT(char, signed char, true);
+ TEST_TT(char, short int, true);
+ TEST_TT(char, int, true);
+ TEST_TT(char, long int, true);
+ TEST_TT(char, unsigned char, true);
+ TEST_TT(char, unsigned short int, true);
+ TEST_TT(char, unsigned int, true);
+ TEST_TT(char, unsigned long int, true);
+ TEST_TT(char, wchar_t, true);
+ TEST_TT(char, float, true);
+ TEST_TT(char, double, true);
+ TEST_TT(char, long double, true);
+ TEST_TT(signed char, bool, true);
+ TEST_TT(signed char, char, true);
+ TEST_TT(signed char, signed char, true);
+ TEST_TT(signed char, short int, true);
+ TEST_TT(signed char, int, true);
+ TEST_TT(signed char, long int, true);
+ TEST_TT(signed char, unsigned char, true);
+ TEST_TT(signed char, unsigned short int, true);
+ TEST_TT(signed char, unsigned int, true);
+ TEST_TT(signed char, unsigned long int, true);
+ TEST_TT(signed char, wchar_t, true);
+ TEST_TT(signed char, float, true);
+ TEST_TT(signed char, double, true);
+ TEST_TT(signed char, long double, true);
+ TEST_TT(short int, bool, true);
+ TEST_TT(short int, char, true);
+ TEST_TT(short int, signed char, true);
+ TEST_TT(short int, short int, true);
+ TEST_TT(short int, int, true);
+ TEST_TT(short int, long int, true);
+ TEST_TT(short int, unsigned char, true);
+ TEST_TT(short int, unsigned short int, true);
+ TEST_TT(short int, unsigned int, true);
+ TEST_TT(short int, unsigned long int, true);
+ TEST_TT(short int, wchar_t, true);
+ TEST_TT(short int, float, true);
+ TEST_TT(short int, double, true);
+ TEST_TT(short int, long double, true);
+ TEST_TT(int, bool, true);
+ TEST_TT(int, char, true);
+ TEST_TT(int, signed char, true);
+ TEST_TT(int, short int, true);
+ TEST_TT(int, int, true);
+ TEST_TT(int, long int, true);
+ TEST_TT(int, unsigned char, true);
+ TEST_TT(int, unsigned short int, true);
+ TEST_TT(int, unsigned int, true);
+ TEST_TT(int, unsigned long int, true);
+ TEST_TT(int, wchar_t, true);
+ TEST_TT(int, float, true);
+ TEST_TT(int, double, true);
+ TEST_TT(int, long double, true);
+ TEST_TT(long int, bool, true);
+ TEST_TT(long int, char, true);
+ TEST_TT(long int, signed char, true);
+ TEST_TT(long int, short int, true);
+ TEST_TT(long int, int, true);
+ TEST_TT(long int, long int, true);
+ TEST_TT(long int, unsigned char, true);
+ TEST_TT(long int, unsigned short int, true);
+ TEST_TT(long int, unsigned int, true);
+ TEST_TT(long int, unsigned long int, true);
+ TEST_TT(long int, wchar_t, true);
+ TEST_TT(long int, float, true);
+ TEST_TT(long int, double, true);
+ TEST_TT(long int, long double, true);
+ TEST_TT(unsigned char, bool, true);
+ TEST_TT(unsigned char, char, true);
+ TEST_TT(unsigned char, signed char, true);
+ TEST_TT(unsigned char, short int, true);
+ TEST_TT(unsigned char, int, true);
+ TEST_TT(unsigned char, long int, true);
+ TEST_TT(unsigned char, unsigned char, true);
+ TEST_TT(unsigned char, unsigned short int, true);
+ TEST_TT(unsigned char, unsigned int, true);
+ TEST_TT(unsigned char, unsigned long int, true);
+ TEST_TT(unsigned char, wchar_t, true);
+ TEST_TT(unsigned char, float, true);
+ TEST_TT(unsigned char, double, true);
+ TEST_TT(unsigned char, long double, true);
+ TEST_TT(unsigned short int, bool, true);
+ TEST_TT(unsigned short int, char, true);
+ TEST_TT(unsigned short int, signed char, true);
+ TEST_TT(unsigned short int, short int, true);
+ TEST_TT(unsigned short int, int, true);
+ TEST_TT(unsigned short int, long int, true);
+ TEST_TT(unsigned short int, unsigned char, true);
+ TEST_TT(unsigned short int, unsigned short int, true);
+ TEST_TT(unsigned short int, unsigned int, true);
+ TEST_TT(unsigned short int, unsigned long int, true);
+ TEST_TT(unsigned short int, wchar_t, true);
+ TEST_TT(unsigned short int, float, true);
+ TEST_TT(unsigned short int, double, true);
+ TEST_TT(unsigned short int, long double, true);
+ TEST_TT(unsigned int, bool, true);
+ TEST_TT(unsigned int, char, true);
+ TEST_TT(unsigned int, signed char, true);
+ TEST_TT(unsigned int, short int, true);
+ TEST_TT(unsigned int, int, true);
+ TEST_TT(unsigned int, long int, true);
+ TEST_TT(unsigned int, unsigned char, true);
+ TEST_TT(unsigned int, unsigned short int, true);
+ TEST_TT(unsigned int, unsigned int, true);
+ TEST_TT(unsigned int, unsigned long int, true);
+ TEST_TT(unsigned int, wchar_t, true);
+ TEST_TT(unsigned int, float, true);
+ TEST_TT(unsigned int, double, true);
+ TEST_TT(unsigned int, long double, true);
+ TEST_TT(unsigned long int, bool, true);
+ TEST_TT(unsigned long int, char, true);
+ TEST_TT(unsigned long int, signed char, true);
+ TEST_TT(unsigned long int, short int, true);
+ TEST_TT(unsigned long int, int, true);
+ TEST_TT(unsigned long int, long int, true);
+ TEST_TT(unsigned long int, unsigned char, true);
+ TEST_TT(unsigned long int, unsigned short int, true);
+ TEST_TT(unsigned long int, unsigned int, true);
+ TEST_TT(unsigned long int, unsigned long int, true);
+ TEST_TT(unsigned long int, wchar_t, true);
+ TEST_TT(unsigned long int, float, true);
+ TEST_TT(unsigned long int, double, true);
+ TEST_TT(unsigned long int, long double, true);
+ TEST_TT(wchar_t, bool, true);
+ TEST_TT(wchar_t, char, true);
+ TEST_TT(wchar_t, signed char, true);
+ TEST_TT(wchar_t, short int, true);
+ TEST_TT(wchar_t, int, true);
+ TEST_TT(wchar_t, long int, true);
+ TEST_TT(wchar_t, unsigned char, true);
+ TEST_TT(wchar_t, unsigned short int, true);
+ TEST_TT(wchar_t, unsigned int, true);
+ TEST_TT(wchar_t, unsigned long int, true);
+ TEST_TT(wchar_t, wchar_t, true);
+ TEST_TT(wchar_t, float, true);
+ TEST_TT(wchar_t, double, true);
+ TEST_TT(wchar_t, long double, true);
+ TEST_TT(float, bool, true);
+ TEST_TT(float, char, true);
+ TEST_TT(float, signed char, true);
+ TEST_TT(float, short int, true);
+ TEST_TT(float, int, true);
+ TEST_TT(float, long int, true);
+ TEST_TT(float, unsigned char, true);
+ TEST_TT(float, unsigned short int, true);
+ TEST_TT(float, unsigned int, true);
+ TEST_TT(float, unsigned long int, true);
+ TEST_TT(float, wchar_t, true);
+ TEST_TT(float, float, true);
+ TEST_TT(float, double, true);
+ TEST_TT(float, long double, true);
+ TEST_TT(double, bool, true);
+ TEST_TT(double, char, true);
+ TEST_TT(double, signed char, true);
+ TEST_TT(double, short int, true);
+ TEST_TT(double, int, true);
+ TEST_TT(double, long int, true);
+ TEST_TT(double, unsigned char, true);
+ TEST_TT(double, unsigned short int, true);
+ TEST_TT(double, unsigned int, true);
+ TEST_TT(double, unsigned long int, true);
+ TEST_TT(double, wchar_t, true);
+ TEST_TT(double, float, true);
+ TEST_TT(double, double, true);
+ TEST_TT(double, long double, true);
+ TEST_TT(long double, bool, true);
+ TEST_TT(long double, char, true);
+ TEST_TT(long double, signed char, true);
+ TEST_TT(long double, short int, true);
+ TEST_TT(long double, int, true);
+ TEST_TT(long double, long int, true);
+ TEST_TT(long double, unsigned char, true);
+ TEST_TT(long double, unsigned short int, true);
+ TEST_TT(long double, unsigned int, true);
+ TEST_TT(long double, unsigned long int, true);
+ TEST_TT(long double, wchar_t, true);
+ TEST_TT(long double, float, true);
+ TEST_TT(long double, double, true);
+ TEST_TT(long double, long double, true);
+ TEST_TT(bool, void, false);
+ TEST_TT(void, bool, false);
+ TEST_TT(char, void, false);
+ TEST_TT(void, char, false);
+ TEST_TT(signed char, void, false);
+ TEST_TT(void, signed char, false);
+ TEST_TT(short int, void, false);
+ TEST_TT(void, short int, false);
+ TEST_TT(int, void, false);
+ TEST_TT(void, int, false);
+ TEST_TT(long int, void, false);
+ TEST_TT(void, long int, false);
+ TEST_TT(unsigned char, void, false);
+ TEST_TT(void, unsigned char, false);
+ TEST_TT(unsigned short int, void, false);
+ TEST_TT(void, unsigned short int, false);
+ TEST_TT(unsigned int, void, false);
+ TEST_TT(void, unsigned int, false);
+ TEST_TT(unsigned long int, void, false);
+ TEST_TT(void, unsigned long int, false);
+ TEST_TT(wchar_t, void, false);
+ TEST_TT(void, wchar_t, false);
+ TEST_TT(float, void, false);
+ TEST_TT(void, float, false);
+ TEST_TT(double, void, false);
+ TEST_TT(void, double, false);
+ TEST_TT(long double, void, false);
+ TEST_TT(void, long double, false);
+
+// test with three template parameters
+ TEST_TTR(bool, bool, bool, true);
+ TEST_TTR(bool, char, bool, true);
+ TEST_TTR(bool, signed char, bool, true);
+ TEST_TTR(bool, short int, bool, true);
+ TEST_TTR(bool, int, bool, true);
+ TEST_TTR(bool, long int, bool, true);
+ TEST_TTR(bool, unsigned char, bool, true);
+ TEST_TTR(bool, unsigned short int, bool, true);
+ TEST_TTR(bool, unsigned int, bool, true);
+ TEST_TTR(bool, unsigned long int, bool, true);
+ TEST_TTR(bool, wchar_t, bool, true);
+ TEST_TTR(bool, float, bool, true);
+ TEST_TTR(bool, double, bool, true);
+ TEST_TTR(bool, long double, bool, true);
+ TEST_TTR(char, bool, bool, true);
+ TEST_TTR(char, char, bool, true);
+ TEST_TTR(char, signed char, bool, true);
+ TEST_TTR(char, short int, bool, true);
+ TEST_TTR(char, int, bool, true);
+ TEST_TTR(char, long int, bool, true);
+ TEST_TTR(char, unsigned char, bool, true);
+ TEST_TTR(char, unsigned short int, bool, true);
+ TEST_TTR(char, unsigned int, bool, true);
+ TEST_TTR(char, unsigned long int, bool, true);
+ TEST_TTR(char, wchar_t, bool, true);
+ TEST_TTR(char, float, bool, true);
+ TEST_TTR(char, double, bool, true);
+ TEST_TTR(char, long double, bool, true);
+ TEST_TTR(signed char, bool, bool, true);
+ TEST_TTR(signed char, char, bool, true);
+ TEST_TTR(signed char, signed char, bool, true);
+ TEST_TTR(signed char, short int, bool, true);
+ TEST_TTR(signed char, int, bool, true);
+ TEST_TTR(signed char, long int, bool, true);
+ TEST_TTR(signed char, unsigned char, bool, true);
+ TEST_TTR(signed char, unsigned short int, bool, true);
+ TEST_TTR(signed char, unsigned int, bool, true);
+ TEST_TTR(signed char, unsigned long int, bool, true);
+ TEST_TTR(signed char, wchar_t, bool, true);
+ TEST_TTR(signed char, float, bool, true);
+ TEST_TTR(signed char, double, bool, true);
+ TEST_TTR(signed char, long double, bool, true);
+ TEST_TTR(short int, bool, bool, true);
+ TEST_TTR(short int, char, bool, true);
+ TEST_TTR(short int, signed char, bool, true);
+ TEST_TTR(short int, short int, bool, true);
+ TEST_TTR(short int, int, bool, true);
+ TEST_TTR(short int, long int, bool, true);
+ TEST_TTR(short int, unsigned char, bool, true);
+ TEST_TTR(short int, unsigned short int, bool, true);
+ TEST_TTR(short int, unsigned int, bool, true);
+ TEST_TTR(short int, unsigned long int, bool, true);
+ TEST_TTR(short int, wchar_t, bool, true);
+ TEST_TTR(short int, float, bool, true);
+ TEST_TTR(short int, double, bool, true);
+ TEST_TTR(short int, long double, bool, true);
+ TEST_TTR(int, bool, bool, true);
+ TEST_TTR(int, char, bool, true);
+ TEST_TTR(int, signed char, bool, true);
+ TEST_TTR(int, short int, bool, true);
+ TEST_TTR(int, int, bool, true);
+ TEST_TTR(int, long int, bool, true);
+ TEST_TTR(int, unsigned char, bool, true);
+ TEST_TTR(int, unsigned short int, bool, true);
+ TEST_TTR(int, unsigned int, bool, true);
+ TEST_TTR(int, unsigned long int, bool, true);
+ TEST_TTR(int, wchar_t, bool, true);
+ TEST_TTR(int, float, bool, true);
+ TEST_TTR(int, double, bool, true);
+ TEST_TTR(int, long double, bool, true);
+ TEST_TTR(long int, bool, bool, true);
+ TEST_TTR(long int, char, bool, true);
+ TEST_TTR(long int, signed char, bool, true);
+ TEST_TTR(long int, short int, bool, true);
+ TEST_TTR(long int, int, bool, true);
+ TEST_TTR(long int, long int, bool, true);
+ TEST_TTR(long int, unsigned char, bool, true);
+ TEST_TTR(long int, unsigned short int, bool, true);
+ TEST_TTR(long int, unsigned int, bool, true);
+ TEST_TTR(long int, unsigned long int, bool, true);
+ TEST_TTR(long int, wchar_t, bool, true);
+ TEST_TTR(long int, float, bool, true);
+ TEST_TTR(long int, double, bool, true);
+ TEST_TTR(long int, long double, bool, true);
+ TEST_TTR(unsigned char, bool, bool, true);
+ TEST_TTR(unsigned char, char, bool, true);
+ TEST_TTR(unsigned char, signed char, bool, true);
+ TEST_TTR(unsigned char, short int, bool, true);
+ TEST_TTR(unsigned char, int, bool, true);
+ TEST_TTR(unsigned char, long int, bool, true);
+ TEST_TTR(unsigned char, unsigned char, bool, true);
+ TEST_TTR(unsigned char, unsigned short int, bool, true);
+ TEST_TTR(unsigned char, unsigned int, bool, true);
+ TEST_TTR(unsigned char, unsigned long int, bool, true);
+ TEST_TTR(unsigned char, wchar_t, bool, true);
+ TEST_TTR(unsigned char, float, bool, true);
+ TEST_TTR(unsigned char, double, bool, true);
+ TEST_TTR(unsigned char, long double, bool, true);
+ TEST_TTR(unsigned short int, bool, bool, true);
+ TEST_TTR(unsigned short int, char, bool, true);
+ TEST_TTR(unsigned short int, signed char, bool, true);
+ TEST_TTR(unsigned short int, short int, bool, true);
+ TEST_TTR(unsigned short int, int, bool, true);
+ TEST_TTR(unsigned short int, long int, bool, true);
+ TEST_TTR(unsigned short int, unsigned char, bool, true);
+ TEST_TTR(unsigned short int, unsigned short int, bool, true);
+ TEST_TTR(unsigned short int, unsigned int, bool, true);
+ TEST_TTR(unsigned short int, unsigned long int, bool, true);
+ TEST_TTR(unsigned short int, wchar_t, bool, true);
+ TEST_TTR(unsigned short int, float, bool, true);
+ TEST_TTR(unsigned short int, double, bool, true);
+ TEST_TTR(unsigned short int, long double, bool, true);
+ TEST_TTR(unsigned int, bool, bool, true);
+ TEST_TTR(unsigned int, char, bool, true);
+ TEST_TTR(unsigned int, signed char, bool, true);
+ TEST_TTR(unsigned int, short int, bool, true);
+ TEST_TTR(unsigned int, int, bool, true);
+ TEST_TTR(unsigned int, long int, bool, true);
+ TEST_TTR(unsigned int, unsigned char, bool, true);
+ TEST_TTR(unsigned int, unsigned short int, bool, true);
+ TEST_TTR(unsigned int, unsigned int, bool, true);
+ TEST_TTR(unsigned int, unsigned long int, bool, true);
+ TEST_TTR(unsigned int, wchar_t, bool, true);
+ TEST_TTR(unsigned int, float, bool, true);
+ TEST_TTR(unsigned int, double, bool, true);
+ TEST_TTR(unsigned int, long double, bool, true);
+ TEST_TTR(unsigned long int, bool, bool, true);
+ TEST_TTR(unsigned long int, char, bool, true);
+ TEST_TTR(unsigned long int, signed char, bool, true);
+ TEST_TTR(unsigned long int, short int, bool, true);
+ TEST_TTR(unsigned long int, int, bool, true);
+ TEST_TTR(unsigned long int, long int, bool, true);
+ TEST_TTR(unsigned long int, unsigned char, bool, true);
+ TEST_TTR(unsigned long int, unsigned short int, bool, true);
+ TEST_TTR(unsigned long int, unsigned int, bool, true);
+ TEST_TTR(unsigned long int, unsigned long int, bool, true);
+ TEST_TTR(unsigned long int, wchar_t, bool, true);
+ TEST_TTR(unsigned long int, float, bool, true);
+ TEST_TTR(unsigned long int, double, bool, true);
+ TEST_TTR(unsigned long int, long double, bool, true);
+ TEST_TTR(wchar_t, bool, bool, true);
+ TEST_TTR(wchar_t, char, bool, true);
+ TEST_TTR(wchar_t, signed char, bool, true);
+ TEST_TTR(wchar_t, short int, bool, true);
+ TEST_TTR(wchar_t, int, bool, true);
+ TEST_TTR(wchar_t, long int, bool, true);
+ TEST_TTR(wchar_t, unsigned char, bool, true);
+ TEST_TTR(wchar_t, unsigned short int, bool, true);
+ TEST_TTR(wchar_t, unsigned int, bool, true);
+ TEST_TTR(wchar_t, unsigned long int, bool, true);
+ TEST_TTR(wchar_t, wchar_t, bool, true);
+ TEST_TTR(wchar_t, float, bool, true);
+ TEST_TTR(wchar_t, double, bool, true);
+ TEST_TTR(wchar_t, long double, bool, true);
+ TEST_TTR(float, bool, bool, true);
+ TEST_TTR(float, char, bool, true);
+ TEST_TTR(float, signed char, bool, true);
+ TEST_TTR(float, short int, bool, true);
+ TEST_TTR(float, int, bool, true);
+ TEST_TTR(float, long int, bool, true);
+ TEST_TTR(float, unsigned char, bool, true);
+ TEST_TTR(float, unsigned short int, bool, true);
+ TEST_TTR(float, unsigned int, bool, true);
+ TEST_TTR(float, unsigned long int, bool, true);
+ TEST_TTR(float, wchar_t, bool, true);
+ TEST_TTR(float, float, bool, true);
+ TEST_TTR(float, double, bool, true);
+ TEST_TTR(float, long double, bool, true);
+ TEST_TTR(double, bool, bool, true);
+ TEST_TTR(double, char, bool, true);
+ TEST_TTR(double, signed char, bool, true);
+ TEST_TTR(double, short int, bool, true);
+ TEST_TTR(double, int, bool, true);
+ TEST_TTR(double, long int, bool, true);
+ TEST_TTR(double, unsigned char, bool, true);
+ TEST_TTR(double, unsigned short int, bool, true);
+ TEST_TTR(double, unsigned int, bool, true);
+ TEST_TTR(double, unsigned long int, bool, true);
+ TEST_TTR(double, wchar_t, bool, true);
+ TEST_TTR(double, float, bool, true);
+ TEST_TTR(double, double, bool, true);
+ TEST_TTR(double, long double, bool, true);
+ TEST_TTR(long double, bool, bool, true);
+ TEST_TTR(long double, char, bool, true);
+ TEST_TTR(long double, signed char, bool, true);
+ TEST_TTR(long double, short int, bool, true);
+ TEST_TTR(long double, int, bool, true);
+ TEST_TTR(long double, long int, bool, true);
+ TEST_TTR(long double, unsigned char, bool, true);
+ TEST_TTR(long double, unsigned short int, bool, true);
+ TEST_TTR(long double, unsigned int, bool, true);
+ TEST_TTR(long double, unsigned long int, bool, true);
+ TEST_TTR(long double, wchar_t, bool, true);
+ TEST_TTR(long double, float, bool, true);
+ TEST_TTR(long double, double, bool, true);
+ TEST_TTR(long double, long double, bool, true);
+ TEST_TTR(bool, bool, tag, false);
+ TEST_TTR(bool, char, tag, false);
+ TEST_TTR(bool, signed char, tag, false);
+ TEST_TTR(bool, short int, tag, false);
+ TEST_TTR(bool, int, tag, false);
+ TEST_TTR(bool, long int, tag, false);
+ TEST_TTR(bool, unsigned char, tag, false);
+ TEST_TTR(bool, unsigned short int, tag, false);
+ TEST_TTR(bool, unsigned int, tag, false);
+ TEST_TTR(bool, unsigned long int, tag, false);
+ TEST_TTR(bool, wchar_t, tag, false);
+ TEST_TTR(bool, float, tag, false);
+ TEST_TTR(bool, double, tag, false);
+ TEST_TTR(bool, long double, tag, false);
+ TEST_TTR(char, bool, tag, false);
+ TEST_TTR(char, char, tag, false);
+ TEST_TTR(char, signed char, tag, false);
+ TEST_TTR(char, short int, tag, false);
+ TEST_TTR(char, int, tag, false);
+ TEST_TTR(char, long int, tag, false);
+ TEST_TTR(char, unsigned char, tag, false);
+ TEST_TTR(char, unsigned short int, tag, false);
+ TEST_TTR(char, unsigned int, tag, false);
+ TEST_TTR(char, unsigned long int, tag, false);
+ TEST_TTR(char, wchar_t, tag, false);
+ TEST_TTR(char, float, tag, false);
+ TEST_TTR(char, double, tag, false);
+ TEST_TTR(char, long double, tag, false);
+ TEST_TTR(signed char, bool, tag, false);
+ TEST_TTR(signed char, char, tag, false);
+ TEST_TTR(signed char, signed char, tag, false);
+ TEST_TTR(signed char, short int, tag, false);
+ TEST_TTR(signed char, int, tag, false);
+ TEST_TTR(signed char, long int, tag, false);
+ TEST_TTR(signed char, unsigned char, tag, false);
+ TEST_TTR(signed char, unsigned short int, tag, false);
+ TEST_TTR(signed char, unsigned int, tag, false);
+ TEST_TTR(signed char, unsigned long int, tag, false);
+ TEST_TTR(signed char, wchar_t, tag, false);
+ TEST_TTR(signed char, float, tag, false);
+ TEST_TTR(signed char, double, tag, false);
+ TEST_TTR(signed char, long double, tag, false);
+ TEST_TTR(short int, bool, tag, false);
+ TEST_TTR(short int, char, tag, false);
+ TEST_TTR(short int, signed char, tag, false);
+ TEST_TTR(short int, short int, tag, false);
+ TEST_TTR(short int, int, tag, false);
+ TEST_TTR(short int, long int, tag, false);
+ TEST_TTR(short int, unsigned char, tag, false);
+ TEST_TTR(short int, unsigned short int, tag, false);
+ TEST_TTR(short int, unsigned int, tag, false);
+ TEST_TTR(short int, unsigned long int, tag, false);
+ TEST_TTR(short int, wchar_t, tag, false);
+ TEST_TTR(short int, float, tag, false);
+ TEST_TTR(short int, double, tag, false);
+ TEST_TTR(short int, long double, tag, false);
+ TEST_TTR(int, bool, tag, false);
+ TEST_TTR(int, char, tag, false);
+ TEST_TTR(int, signed char, tag, false);
+ TEST_TTR(int, short int, tag, false);
+ TEST_TTR(int, int, tag, false);
+ TEST_TTR(int, long int, tag, false);
+ TEST_TTR(int, unsigned char, tag, false);
+ TEST_TTR(int, unsigned short int, tag, false);
+ TEST_TTR(int, unsigned int, tag, false);
+ TEST_TTR(int, unsigned long int, tag, false);
+ TEST_TTR(int, wchar_t, tag, false);
+ TEST_TTR(int, float, tag, false);
+ TEST_TTR(int, double, tag, false);
+ TEST_TTR(int, long double, tag, false);
+ TEST_TTR(long int, bool, tag, false);
+ TEST_TTR(long int, char, tag, false);
+ TEST_TTR(long int, signed char, tag, false);
+ TEST_TTR(long int, short int, tag, false);
+ TEST_TTR(long int, int, tag, false);
+ TEST_TTR(long int, long int, tag, false);
+ TEST_TTR(long int, unsigned char, tag, false);
+ TEST_TTR(long int, unsigned short int, tag, false);
+ TEST_TTR(long int, unsigned int, tag, false);
+ TEST_TTR(long int, unsigned long int, tag, false);
+ TEST_TTR(long int, wchar_t, tag, false);
+ TEST_TTR(long int, float, tag, false);
+ TEST_TTR(long int, double, tag, false);
+ TEST_TTR(long int, long double, tag, false);
+ TEST_TTR(unsigned char, bool, tag, false);
+ TEST_TTR(unsigned char, char, tag, false);
+ TEST_TTR(unsigned char, signed char, tag, false);
+ TEST_TTR(unsigned char, short int, tag, false);
+ TEST_TTR(unsigned char, int, tag, false);
+ TEST_TTR(unsigned char, long int, tag, false);
+ TEST_TTR(unsigned char, unsigned char, tag, false);
+ TEST_TTR(unsigned char, unsigned short int, tag, false);
+ TEST_TTR(unsigned char, unsigned int, tag, false);
+ TEST_TTR(unsigned char, unsigned long int, tag, false);
+ TEST_TTR(unsigned char, wchar_t, tag, false);
+ TEST_TTR(unsigned char, float, tag, false);
+ TEST_TTR(unsigned char, double, tag, false);
+ TEST_TTR(unsigned char, long double, tag, false);
+ TEST_TTR(unsigned short int, bool, tag, false);
+ TEST_TTR(unsigned short int, char, tag, false);
+ TEST_TTR(unsigned short int, signed char, tag, false);
+ TEST_TTR(unsigned short int, short int, tag, false);
+ TEST_TTR(unsigned short int, int, tag, false);
+ TEST_TTR(unsigned short int, long int, tag, false);
+ TEST_TTR(unsigned short int, unsigned char, tag, false);
+ TEST_TTR(unsigned short int, unsigned short int, tag, false);
+ TEST_TTR(unsigned short int, unsigned int, tag, false);
+ TEST_TTR(unsigned short int, unsigned long int, tag, false);
+ TEST_TTR(unsigned short int, wchar_t, tag, false);
+ TEST_TTR(unsigned short int, float, tag, false);
+ TEST_TTR(unsigned short int, double, tag, false);
+ TEST_TTR(unsigned short int, long double, tag, false);
+ TEST_TTR(unsigned int, bool, tag, false);
+ TEST_TTR(unsigned int, char, tag, false);
+ TEST_TTR(unsigned int, signed char, tag, false);
+ TEST_TTR(unsigned int, short int, tag, false);
+ TEST_TTR(unsigned int, int, tag, false);
+ TEST_TTR(unsigned int, long int, tag, false);
+ TEST_TTR(unsigned int, unsigned char, tag, false);
+ TEST_TTR(unsigned int, unsigned short int, tag, false);
+ TEST_TTR(unsigned int, unsigned int, tag, false);
+ TEST_TTR(unsigned int, unsigned long int, tag, false);
+ TEST_TTR(unsigned int, wchar_t, tag, false);
+ TEST_TTR(unsigned int, float, tag, false);
+ TEST_TTR(unsigned int, double, tag, false);
+ TEST_TTR(unsigned int, long double, tag, false);
+ TEST_TTR(unsigned long int, bool, tag, false);
+ TEST_TTR(unsigned long int, char, tag, false);
+ TEST_TTR(unsigned long int, signed char, tag, false);
+ TEST_TTR(unsigned long int, short int, tag, false);
+ TEST_TTR(unsigned long int, int, tag, false);
+ TEST_TTR(unsigned long int, long int, tag, false);
+ TEST_TTR(unsigned long int, unsigned char, tag, false);
+ TEST_TTR(unsigned long int, unsigned short int, tag, false);
+ TEST_TTR(unsigned long int, unsigned int, tag, false);
+ TEST_TTR(unsigned long int, unsigned long int, tag, false);
+ TEST_TTR(unsigned long int, wchar_t, tag, false);
+ TEST_TTR(unsigned long int, float, tag, false);
+ TEST_TTR(unsigned long int, double, tag, false);
+ TEST_TTR(unsigned long int, long double, tag, false);
+ TEST_TTR(wchar_t, bool, tag, false);
+ TEST_TTR(wchar_t, char, tag, false);
+ TEST_TTR(wchar_t, signed char, tag, false);
+ TEST_TTR(wchar_t, short int, tag, false);
+ TEST_TTR(wchar_t, int, tag, false);
+ TEST_TTR(wchar_t, long int, tag, false);
+ TEST_TTR(wchar_t, unsigned char, tag, false);
+ TEST_TTR(wchar_t, unsigned short int, tag, false);
+ TEST_TTR(wchar_t, unsigned int, tag, false);
+ TEST_TTR(wchar_t, unsigned long int, tag, false);
+ TEST_TTR(wchar_t, wchar_t, tag, false);
+ TEST_TTR(wchar_t, float, tag, false);
+ TEST_TTR(wchar_t, double, tag, false);
+ TEST_TTR(wchar_t, long double, tag, false);
+ TEST_TTR(float, bool, tag, false);
+ TEST_TTR(float, char, tag, false);
+ TEST_TTR(float, signed char, tag, false);
+ TEST_TTR(float, short int, tag, false);
+ TEST_TTR(float, int, tag, false);
+ TEST_TTR(float, long int, tag, false);
+ TEST_TTR(float, unsigned char, tag, false);
+ TEST_TTR(float, unsigned short int, tag, false);
+ TEST_TTR(float, unsigned int, tag, false);
+ TEST_TTR(float, unsigned long int, tag, false);
+ TEST_TTR(float, wchar_t, tag, false);
+ TEST_TTR(float, float, tag, false);
+ TEST_TTR(float, double, tag, false);
+ TEST_TTR(float, long double, tag, false);
+ TEST_TTR(double, bool, tag, false);
+ TEST_TTR(double, char, tag, false);
+ TEST_TTR(double, signed char, tag, false);
+ TEST_TTR(double, short int, tag, false);
+ TEST_TTR(double, int, tag, false);
+ TEST_TTR(double, long int, tag, false);
+ TEST_TTR(double, unsigned char, tag, false);
+ TEST_TTR(double, unsigned short int, tag, false);
+ TEST_TTR(double, unsigned int, tag, false);
+ TEST_TTR(double, unsigned long int, tag, false);
+ TEST_TTR(double, wchar_t, tag, false);
+ TEST_TTR(double, float, tag, false);
+ TEST_TTR(double, double, tag, false);
+ TEST_TTR(double, long double, tag, false);
+ TEST_TTR(long double, bool, tag, false);
+ TEST_TTR(long double, char, tag, false);
+ TEST_TTR(long double, signed char, tag, false);
+ TEST_TTR(long double, short int, tag, false);
+ TEST_TTR(long double, int, tag, false);
+ TEST_TTR(long double, long int, tag, false);
+ TEST_TTR(long double, unsigned char, tag, false);
+ TEST_TTR(long double, unsigned short int, tag, false);
+ TEST_TTR(long double, unsigned int, tag, false);
+ TEST_TTR(long double, unsigned long int, tag, false);
+ TEST_TTR(long double, wchar_t, tag, false);
+ TEST_TTR(long double, float, tag, false);
+ TEST_TTR(long double, double, tag, false);
+ TEST_TTR(long double, long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+ // pointers
+ TEST_TT(void*, bool, false);
+ TEST_TT(void*, int, false);
+ TEST_TT(void*, double, false);
+ TEST_TT(void*, A, false);
+ TEST_TT(void*, B, false);
+ TEST_TT(bool*, bool, true);
+ TEST_TT(bool*, int, true);
+ TEST_TT(bool*, double, false);
+ TEST_TT(bool*, A, false);
+ TEST_TT(bool*, B, false);
+ TEST_TT(int*, bool, true);
+ TEST_TT(int*, int, true);
+ TEST_TT(int*, double, false);
+ TEST_TT(int*, A, false);
+ TEST_TT(int*, B, false);
+ TEST_TT(double*, bool, true);
+ TEST_TT(double*, int, true);
+ TEST_TT(double*, double, false);
+ TEST_TT(double*, A, false);
+ TEST_TT(double*, B, false);
+ TEST_TT(A*, bool, true);
+ TEST_TT(A*, int, true);
+ TEST_TT(A*, double, false);
+ TEST_TT(A*, A, false);
+ TEST_TT(A*, B, false);
+ TEST_TT(B*, bool, true);
+ TEST_TT(B*, int, true);
+ TEST_TT(B*, double, false);
+ TEST_TT(B*, A, false);
+ TEST_TT(B*, B, false);
+ TEST_TT(bool, void*, false);
+ TEST_TT(bool, bool*, true);
+ TEST_TT(bool, int*, true);
+ TEST_TT(bool, double*, true);
+ TEST_TT(bool, A*, true);
+ TEST_TT(bool, B*, true);
+ TEST_TT(int, void*, false);
+ TEST_TT(int, bool*, false);
+ TEST_TT(int, int*, false);
+ TEST_TT(int, double*, false);
+ TEST_TT(int, A*, false);
+ TEST_TT(int, B*, false);
+ TEST_TT(double, void*, false);
+ TEST_TT(double, bool*, false);
+ TEST_TT(double, int*, false);
+ TEST_TT(double, double*, false);
+ TEST_TT(double, A*, false);
+ TEST_TT(double, B*, false);
+ TEST_TT(A, void*, false);
+ TEST_TT(A, bool*, false);
+ TEST_TT(A, int*, false);
+ TEST_TT(A, double*, false);
+ TEST_TT(A, A*, false);
+ TEST_TT(A, B*, false);
+ TEST_TT(B, void*, false);
+ TEST_TT(B, bool*, false);
+ TEST_TT(B, int*, false);
+ TEST_TT(B, double*, false);
+ TEST_TT(B, A*, false);
+ TEST_TT(B, B*, false);
+ TEST_TT(void*, void*, false);
+ TEST_TT(void*, bool*, false);
+ TEST_TT(void*, int*, false);
+ TEST_TT(void*, double*, false);
+ TEST_TT(void*, A*, false);
+ TEST_TT(void*, B*, false);
+ TEST_TT(bool*, void*, false);
+ TEST_TT(bool*, bool*, false);
+ TEST_TT(bool*, int*, false);
+ TEST_TT(bool*, double*, false);
+ TEST_TT(bool*, A*, false);
+ TEST_TT(bool*, B*, false);
+ TEST_TT(int*, void*, false);
+ TEST_TT(int*, bool*, false);
+ TEST_TT(int*, int*, false);
+ TEST_TT(int*, double*, false);
+ TEST_TT(int*, A*, false);
+ TEST_TT(int*, B*, false);
+ TEST_TT(double*, void*, false);
+ TEST_TT(double*, bool*, false);
+ TEST_TT(double*, int*, false);
+ TEST_TT(double*, double*, false);
+ TEST_TT(double*, A*, false);
+ TEST_TT(double*, B*, false);
+ TEST_TT(A*, void*, false);
+ TEST_TT(A*, bool*, false);
+ TEST_TT(A*, int*, false);
+ TEST_TT(A*, double*, false);
+ TEST_TT(A*, A*, false);
+ TEST_TT(A*, B*, false);
+ TEST_TT(B*, void*, false);
+ TEST_TT(B*, bool*, false);
+ TEST_TT(B*, int*, false);
+ TEST_TT(B*, double*, false);
+ TEST_TT(B*, A*, false);
+ TEST_TT(B*, B*, false);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_postfix_decrement_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_decrement_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,143 @@
+// (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
+#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
+#define TEST_TR(TYPE,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (int) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, int);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP (int) const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_string { std::string operator BOOST_TT_TRAIT_OP (int); };
+
+//struct convertible_to_bool { operator bool () const; };
+//struct returns_convertible_to_bool { convertible_to_bool operator BOOST_TT_TRAIT_OP (int); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&, int) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&, int) { return true; }
+
+struct tag { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, false);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+
+// test with three template parameters
+ TEST_TR(bool, bool, false);
+ TEST_TR(char, bool, true);
+ TEST_TR(signed char, bool, true);
+ TEST_TR(short int, bool, true);
+ TEST_TR(int, bool, true);
+ TEST_TR(long int, bool, true);
+ TEST_TR(unsigned char, bool, true);
+ TEST_TR(unsigned short int, bool, true);
+ TEST_TR(unsigned int, bool, true);
+ TEST_TR(unsigned long int, bool, true);
+ TEST_TR(wchar_t, bool, true);
+ TEST_TR(float, bool, true);
+ TEST_TR(double, bool, true);
+ TEST_TR(long double, bool, true);
+ TEST_TR(bool, tag, false);
+ TEST_TR(char, tag, false);
+ TEST_TR(signed char, tag, false);
+ TEST_TR(short int, tag, false);
+ TEST_TR(int, tag, false);
+ TEST_TR(long int, tag, false);
+ TEST_TR(unsigned char, tag, false);
+ TEST_TR(unsigned short int, tag, false);
+ TEST_TR(unsigned int, tag, false);
+ TEST_TR(unsigned long int, tag, false);
+ TEST_TR(wchar_t, tag, false);
+ TEST_TR(float, tag, false);
+ TEST_TR(double, tag, false);
+ TEST_TR(long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_postfix_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,143 @@
+// (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
+#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
+#define TEST_TR(TYPE,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (int) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, int);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP (int) const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (int); };
+
+struct returns_string { std::string operator BOOST_TT_TRAIT_OP (int); };
+
+//struct convertible_to_bool { operator bool () const; };
+//struct returns_convertible_to_bool { convertible_to_bool operator BOOST_TT_TRAIT_OP (int); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&, int) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&, int) { return true; }
+
+struct tag { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, true);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+
+// test with three template parameters
+ TEST_TR(bool, bool, true);
+ TEST_TR(char, bool, true);
+ TEST_TR(signed char, bool, true);
+ TEST_TR(short int, bool, true);
+ TEST_TR(int, bool, true);
+ TEST_TR(long int, bool, true);
+ TEST_TR(unsigned char, bool, true);
+ TEST_TR(unsigned short int, bool, true);
+ TEST_TR(unsigned int, bool, true);
+ TEST_TR(unsigned long int, bool, true);
+ TEST_TR(wchar_t, bool, true);
+ TEST_TR(float, bool, true);
+ TEST_TR(double, bool, true);
+ TEST_TR(long double, bool, true);
+ TEST_TR(bool, tag, false);
+ TEST_TR(char, tag, false);
+ TEST_TR(signed char, tag, false);
+ TEST_TR(short int, tag, false);
+ TEST_TR(int, tag, false);
+ TEST_TR(long int, tag, false);
+ TEST_TR(unsigned char, tag, false);
+ TEST_TR(unsigned short int, tag, false);
+ TEST_TR(unsigned int, tag, false);
+ TEST_TR(unsigned long int, tag, false);
+ TEST_TR(wchar_t, tag, false);
+ TEST_TR(float, tag, false);
+ TEST_TR(double, tag, false);
+ TEST_TR(long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/has_postfix_unary_operator_test.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_postfix_unary_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
+++ (empty file)
@@ -1,144 +0,0 @@
-// (C) Copyright Frederic Bron 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>
-#include <vector>
-
-// 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
-#define TEST_TR(TYPE,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
-
-namespace {
-
-struct ret { };
-
-struct without { };
-
-struct internal { ret operator BOOST_TT_TRAIT_OP (int) const; };
-
-struct external { };
-ret operator BOOST_TT_TRAIT_OP (const external&, int);
-
-class internal_private { ret operator BOOST_TT_TRAIT_OP (int) const; };
-
-struct returns_int { int operator BOOST_TT_TRAIT_OP (int); };
-
-struct returns_void { void operator BOOST_TT_TRAIT_OP (int); };
-
-struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (int); };
-
-struct returns_double { double operator BOOST_TT_TRAIT_OP (int); };
-
-struct returns_string { std::string operator BOOST_TT_TRAIT_OP (int); };
-
-//struct convertible_to_bool { operator bool () const; };
-//struct returns_convertible_to_bool { convertible_to_bool operator BOOST_TT_TRAIT_OP (int); };
-
-class Base1 { };
-class Derived1 : public Base1 { };
-
-bool operator BOOST_TT_TRAIT_OP (const Base1&, int) { return true; }
-
-class Base2 { };
-struct Derived2 : public Base2 {
- Derived2(int); // to check if it works with a class that is not default constructible
-};
-
-bool operator BOOST_TT_TRAIT_OP (const Derived2&, int) { return true; }
-
-struct tag { };
-
-void run() {
- // test with only one template parameter
- TEST_T(bool, BOOST_TT_TRAIT_BOOL_RESULT);
- TEST_T(char, true);
- TEST_T(signed char, true);
- TEST_T(short int, true);
- TEST_T(int, true);
- TEST_T(long int, true);
- TEST_T(unsigned char, true);
- TEST_T(unsigned short int, true);
- TEST_T(unsigned int, true);
- TEST_T(unsigned long int, true);
- TEST_T(wchar_t, true);
- TEST_T(float, true);
- TEST_T(double, true);
- TEST_T(long double, true);
- TEST_T(void, false);
-
-// test with three template parameters
- TEST_TR(bool, bool, BOOST_TT_TRAIT_BOOL_RESULT);
- TEST_TR(char, bool, true);
- TEST_TR(signed char, bool, true);
- TEST_TR(short int, bool, true);
- TEST_TR(int, bool, true);
- TEST_TR(long int, bool, true);
- TEST_TR(unsigned char, bool, true);
- TEST_TR(unsigned short int, bool, true);
- TEST_TR(unsigned int, bool, true);
- TEST_TR(unsigned long int, bool, true);
- TEST_TR(wchar_t, bool, true);
- TEST_TR(float, bool, true);
- TEST_TR(double, bool, true);
- TEST_TR(long double, bool, true);
- TEST_TR(bool, tag, false);
- TEST_TR(char, tag, false);
- TEST_TR(signed char, tag, false);
- TEST_TR(short int, tag, false);
- TEST_TR(int, tag, false);
- TEST_TR(long int, tag, false);
- TEST_TR(unsigned char, tag, false);
- TEST_TR(unsigned short int, tag, false);
- TEST_TR(unsigned int, tag, false);
- TEST_TR(unsigned long int, tag, false);
- TEST_TR(wchar_t, tag, false);
- TEST_TR(float, tag, false);
- TEST_TR(double, tag, false);
- TEST_TR(long double, tag, false);
-
- TEST_T(without, false);
- TEST_T(internal, true);
- TEST_T(external, true);
-// 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(Base1, true);
- TEST_T(Derived1, true);
- TEST_T(Base2, false);
- TEST_T(Derived2, true);
-
- TEST_TR(without, bool, false);
- TEST_TR(internal, bool, false);
- TEST_TR(internal, ret, true);
- TEST_TR(external, bool, false);
- TEST_TR(external, ret, true);
- TEST_TR(returns_int, bool, true);
- TEST_TR(returns_int, int, true);
- TEST_TR(returns_void, void, true);
- TEST_TR(returns_void, bool, false);
- TEST_TR(returns_void_star, bool, true);
- TEST_TR(returns_double, bool, true);
- 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(Base1, bool, true);
- TEST_TR(Derived1, bool, true);
- TEST_TR(Base2, bool, false);
- TEST_TR(Derived2, bool, true);
-}
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- run();
-TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_prefix_decrement_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_decrement_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,143 @@
+// (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
+#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
+#define TEST_TR(TYPE,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP () const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP () const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (); };
+
+struct returns_string { std::string operator BOOST_TT_TRAIT_OP (); };
+
+//struct convertible_to_bool { operator bool () const; };
+//struct returns_convertible_to_bool { convertible_to_bool operator BOOST_TT_TRAIT_OP (); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&) { return true; }
+
+struct tag { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, false);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+
+// test with three template parameters
+ TEST_TR(bool, bool, false);
+ TEST_TR(char, bool, true);
+ TEST_TR(signed char, bool, true);
+ TEST_TR(short int, bool, true);
+ TEST_TR(int, bool, true);
+ TEST_TR(long int, bool, true);
+ TEST_TR(unsigned char, bool, true);
+ TEST_TR(unsigned short int, bool, true);
+ TEST_TR(unsigned int, bool, true);
+ TEST_TR(unsigned long int, bool, true);
+ TEST_TR(wchar_t, bool, true);
+ TEST_TR(float, bool, true);
+ TEST_TR(double, bool, true);
+ TEST_TR(long double, bool, true);
+ TEST_TR(bool, tag, false);
+ TEST_TR(char, tag, false);
+ TEST_TR(signed char, tag, false);
+ TEST_TR(short int, tag, false);
+ TEST_TR(int, tag, false);
+ TEST_TR(long int, tag, false);
+ TEST_TR(unsigned char, tag, false);
+ TEST_TR(unsigned short int, tag, false);
+ TEST_TR(unsigned int, tag, false);
+ TEST_TR(unsigned long int, tag, false);
+ TEST_TR(wchar_t, tag, false);
+ TEST_TR(float, tag, false);
+ TEST_TR(double, tag, false);
+ TEST_TR(long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_prefix_operator_test.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
@@ -0,0 +1,143 @@
+// (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
+#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
+#define TEST_TR(TYPE,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
+
+namespace {
+
+struct ret { };
+
+struct without { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP () const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&);
+
+class internal_private { ret operator BOOST_TT_TRAIT_OP () const; };
+
+struct returns_int { int operator BOOST_TT_TRAIT_OP (); };
+
+struct returns_void { void operator BOOST_TT_TRAIT_OP (); };
+
+struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (); };
+
+struct returns_double { double operator BOOST_TT_TRAIT_OP (); };
+
+struct returns_string { std::string operator BOOST_TT_TRAIT_OP (); };
+
+//struct convertible_to_bool { operator bool () const; };
+//struct returns_convertible_to_bool { convertible_to_bool operator BOOST_TT_TRAIT_OP (); };
+
+class Base1 { };
+class Derived1 : public Base1 { };
+
+bool operator BOOST_TT_TRAIT_OP (const Base1&) { return true; }
+
+class Base2 { };
+struct Derived2 : public Base2 {
+ Derived2(int); // to check if it works with a class that is not default constructible
+};
+
+bool operator BOOST_TT_TRAIT_OP (const Derived2&) { return true; }
+
+struct tag { };
+
+void run() {
+ // test with only one template parameter
+ TEST_T(bool, true);
+ TEST_T(char, true);
+ TEST_T(signed char, true);
+ TEST_T(short int, true);
+ TEST_T(int, true);
+ TEST_T(long int, true);
+ TEST_T(unsigned char, true);
+ TEST_T(unsigned short int, true);
+ TEST_T(unsigned int, true);
+ TEST_T(unsigned long int, true);
+ TEST_T(wchar_t, true);
+ TEST_T(float, true);
+ TEST_T(double, true);
+ TEST_T(long double, true);
+ TEST_T(void, false);
+
+// test with three template parameters
+ TEST_TR(bool, bool, true);
+ TEST_TR(char, bool, true);
+ TEST_TR(signed char, bool, true);
+ TEST_TR(short int, bool, true);
+ TEST_TR(int, bool, true);
+ TEST_TR(long int, bool, true);
+ TEST_TR(unsigned char, bool, true);
+ TEST_TR(unsigned short int, bool, true);
+ TEST_TR(unsigned int, bool, true);
+ TEST_TR(unsigned long int, bool, true);
+ TEST_TR(wchar_t, bool, true);
+ TEST_TR(float, bool, true);
+ TEST_TR(double, bool, true);
+ TEST_TR(long double, bool, true);
+ TEST_TR(bool, tag, false);
+ TEST_TR(char, tag, false);
+ TEST_TR(signed char, tag, false);
+ TEST_TR(short int, tag, false);
+ TEST_TR(int, tag, false);
+ TEST_TR(long int, tag, false);
+ TEST_TR(unsigned char, tag, false);
+ TEST_TR(unsigned short int, tag, false);
+ TEST_TR(unsigned int, tag, false);
+ TEST_TR(unsigned long int, tag, false);
+ TEST_TR(wchar_t, tag, false);
+ TEST_TR(float, tag, false);
+ TEST_TR(double, tag, false);
+ TEST_TR(long double, tag, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+// 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(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, bool, true);
+ TEST_TR(returns_int, int, true);
+ TEST_TR(returns_void, void, true);
+ TEST_TR(returns_void, bool, false);
+ TEST_TR(returns_void_star, bool, true);
+ TEST_TR(returns_double, bool, true);
+ 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(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+}
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ run();
+TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/has_prefix_unary_operator_test.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_prefix_unary_operator_test.hpp 2011-01-29 12:55:25 EST (Sat, 29 Jan 2011)
+++ (empty file)
@@ -1,144 +0,0 @@
-// (C) Copyright Frederic Bron 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>
-#include <vector>
-
-// 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
-#define TEST_TR(TYPE,RET,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::tt::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
-
-namespace {
-
-struct ret { };
-
-struct without { };
-
-struct internal { ret operator BOOST_TT_TRAIT_OP () const; };
-
-struct external { };
-ret operator BOOST_TT_TRAIT_OP (const external&);
-
-class internal_private { ret operator BOOST_TT_TRAIT_OP () const; };
-
-struct returns_int { int operator BOOST_TT_TRAIT_OP (); };
-
-struct returns_void { void operator BOOST_TT_TRAIT_OP (); };
-
-struct returns_void_star { void *operator BOOST_TT_TRAIT_OP (); };
-
-struct returns_double { double operator BOOST_TT_TRAIT_OP (); };
-
-struct returns_string { std::string operator BOOST_TT_TRAIT_OP (); };
-
-//struct convertible_to_bool { operator bool () const; };
-//struct returns_convertible_to_bool { convertible_to_bool operator BOOST_TT_TRAIT_OP (); };
-
-class Base1 { };
-class Derived1 : public Base1 { };
-
-bool operator BOOST_TT_TRAIT_OP (const Base1&) { return true; }
-
-class Base2 { };
-struct Derived2 : public Base2 {
- Derived2(int); // to check if it works with a class that is not default constructible
-};
-
-bool operator BOOST_TT_TRAIT_OP (const Derived2&) { return true; }
-
-struct tag { };
-
-void run() {
- // test with only one template parameter
- TEST_T(bool, BOOST_TT_TRAIT_BOOL_RESULT);
- TEST_T(char, true);
- TEST_T(signed char, true);
- TEST_T(short int, true);
- TEST_T(int, true);
- TEST_T(long int, true);
- TEST_T(unsigned char, true);
- TEST_T(unsigned short int, true);
- TEST_T(unsigned int, true);
- TEST_T(unsigned long int, true);
- TEST_T(wchar_t, true);
- TEST_T(float, true);
- TEST_T(double, true);
- TEST_T(long double, true);
- TEST_T(void, false);
-
-// test with three template parameters
- TEST_TR(bool, bool, BOOST_TT_TRAIT_BOOL_RESULT);
- TEST_TR(char, bool, true);
- TEST_TR(signed char, bool, true);
- TEST_TR(short int, bool, true);
- TEST_TR(int, bool, true);
- TEST_TR(long int, bool, true);
- TEST_TR(unsigned char, bool, true);
- TEST_TR(unsigned short int, bool, true);
- TEST_TR(unsigned int, bool, true);
- TEST_TR(unsigned long int, bool, true);
- TEST_TR(wchar_t, bool, true);
- TEST_TR(float, bool, true);
- TEST_TR(double, bool, true);
- TEST_TR(long double, bool, true);
- TEST_TR(bool, tag, false);
- TEST_TR(char, tag, false);
- TEST_TR(signed char, tag, false);
- TEST_TR(short int, tag, false);
- TEST_TR(int, tag, false);
- TEST_TR(long int, tag, false);
- TEST_TR(unsigned char, tag, false);
- TEST_TR(unsigned short int, tag, false);
- TEST_TR(unsigned int, tag, false);
- TEST_TR(unsigned long int, tag, false);
- TEST_TR(wchar_t, tag, false);
- TEST_TR(float, tag, false);
- TEST_TR(double, tag, false);
- TEST_TR(long double, tag, false);
-
- TEST_T(without, false);
- TEST_T(internal, true);
- TEST_T(external, true);
-// 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(Base1, true);
- TEST_T(Derived1, true);
- TEST_T(Base2, false);
- TEST_T(Derived2, true);
-
- TEST_TR(without, bool, false);
- TEST_TR(internal, bool, false);
- TEST_TR(internal, ret, true);
- TEST_TR(external, bool, false);
- TEST_TR(external, ret, true);
- TEST_TR(returns_int, bool, true);
- TEST_TR(returns_int, int, true);
- TEST_TR(returns_void, void, true);
- TEST_TR(returns_void, bool, false);
- TEST_TR(returns_void_star, bool, true);
- TEST_TR(returns_double, bool, true);
- 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(Base1, bool, true);
- TEST_TR(Derived1, bool, true);
- TEST_TR(Base2, bool, false);
- TEST_TR(Derived2, bool, true);
-}
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- run();
-TT_TEST_END


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