Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r74774 - in sandbox/type_traits: boost/type_traits boost/type_traits/detail boost/type_traits/msvc 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-10-06 22:07:21


Author: bronf
Date: 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
New Revision: 74774
URL: http://svn.boost.org/trac/boost/changeset/74774

Log:
operator traits: fixed all comments from review; renamed can_call_op -> has_op
Added:
   sandbox/type_traits/boost/type_traits/detail/has_binary_operator.hpp (contents, props changed)
   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/boost/type_traits/has_bit_and.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_bit_and_assign.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_bit_or.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_bit_or_assign.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_bit_xor.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_bit_xor_assign.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_complement.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_dereference.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_divides.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_divides_assign.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_equal_to.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_greater.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_greater_equal.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_left_shift.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_left_shift_assign.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_less.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_less_equal.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_logical_and.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_logical_not.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_logical_or.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_minus.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_minus_assign.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_modulus.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_modulus_assign.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_multiplies.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_multiplies_assign.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_negate.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_not_equal_to.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_operator.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_plus.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_plus_assign.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_post_decrement.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_post_increment.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_pre_decrement.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_pre_increment.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_right_shift.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_right_shift_assign.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_unary_minus.hpp (contents, props changed)
   sandbox/type_traits/boost/type_traits/has_unary_plus.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/add_lvalue_reference.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/add_rvalue_reference.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/common_type.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/conditional.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_bit_and.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_bit_and_assign.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_bit_or.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_bit_or_assign.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_bit_xor.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_bit_xor_assign.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_complement.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_dereference.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_divides.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_divides_assign.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_equal_to.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_greater.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_greater_equal.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_left_shift.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_left_shift_assign.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_less.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_less_equal.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_logical.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_logical_and.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_logical_not.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_logical_or.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_minus.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_minus_assign.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_modulus.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_modulus_assign.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_multiplies.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_multiplies_assign.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_negate.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_new_operator.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_not_equal_to.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_plus.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_plus_assign.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_post.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_post_decrement.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_post_increment.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_pre.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_pre_decrement.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_pre_increment.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_right_shift.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_right_shift_assign.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_unary.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_unary_minus.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/has_unary_plus.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/history.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/history.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_lvalue_reference.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_rvalue_reference.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/conditional.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_and.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_and_assign.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_or.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_or_assign.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_xor.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_xor_assign.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_complement.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_dereference.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_divides.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_divides_assign.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_equal_to.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_greater.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_greater_equal.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_left_shift.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_left_shift_assign.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_less.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_less_equal.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_logical_and.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_logical_not.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_logical_or.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_minus.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_minus_assign.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_modulus.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_modulus_assign.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_multiplies.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_multiplies_assign.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_negate.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_new_operator.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_not_equal_to.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_plus.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_plus_assign.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_post_decrement.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_post_increment.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_pre_decrement.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_pre_increment.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_right_shift.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_right_shift_assign.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_unary_minus.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_unary_plus.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_lvalue_reference.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_rvalue_reference.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_virtual_base_of.html (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/is_lvalue_reference.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/is_rvalue_reference.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/doc/is_virtual_base_of.qbk (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes0_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes1_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes2_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes3_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes4_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes5_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes6_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes7_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes8_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_classes9_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_binary_operators.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_bit_and_assign_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_bit_and_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_bit_or_assign_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_bit_or_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_bit_xor_assign_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_bit_xor_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_complement_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_dereference_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_divides_assign_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_divides_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_equal_to_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_greater_equal_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_greater_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_left_shift_assign_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_left_shift_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_less_equal_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_less_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_logical_and_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_logical_not_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_logical_or_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_minus_assign_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_minus_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_modulus_assign_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_modulus_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_multiplies_assign_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_multiplies_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_negate_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_not_equal_to_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_plus_assign_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_plus_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_post_decrement_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_post_increment_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_postfix_classes.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_postfix_classes0_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_postfix_classes1_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_postfix_classes2_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_postfix_classes3_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_postfix_operators.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_pre_decrement_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_pre_increment_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_prefix_classes.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_prefix_classes0_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_prefix_classes1_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_prefix_classes2_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_prefix_classes3_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_prefix_operators.hpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_right_shift_assign_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_right_shift_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_unary_minus_test.cpp (contents, props changed)
   sandbox/type_traits/libs/type_traits/test/has_unary_plus_test.cpp (contents, props changed)
Removed:
   sandbox/type_traits/boost/type_traits/add_const.hpp
   sandbox/type_traits/boost/type_traits/add_cv.hpp
   sandbox/type_traits/boost/type_traits/add_pointer.hpp
   sandbox/type_traits/boost/type_traits/add_reference.hpp
   sandbox/type_traits/boost/type_traits/add_volatile.hpp
   sandbox/type_traits/boost/type_traits/aligned_storage.hpp
   sandbox/type_traits/boost/type_traits/alignment_of.hpp
   sandbox/type_traits/boost/type_traits/alignment_traits.hpp
   sandbox/type_traits/boost/type_traits/arithmetic_traits.hpp
   sandbox/type_traits/boost/type_traits/array_traits.hpp
   sandbox/type_traits/boost/type_traits/broken_compiler_spec.hpp
   sandbox/type_traits/boost/type_traits/can_call.hpp
   sandbox/type_traits/boost/type_traits/can_call_addition.hpp
   sandbox/type_traits/boost/type_traits/can_call_addition_assignment.hpp
   sandbox/type_traits/boost/type_traits/can_call_and.hpp
   sandbox/type_traits/boost/type_traits/can_call_bitwise_and.hpp
   sandbox/type_traits/boost/type_traits/can_call_bitwise_and_assignment.hpp
   sandbox/type_traits/boost/type_traits/can_call_bitwise_or.hpp
   sandbox/type_traits/boost/type_traits/can_call_bitwise_or_assignment.hpp
   sandbox/type_traits/boost/type_traits/can_call_bitwise_xor.hpp
   sandbox/type_traits/boost/type_traits/can_call_bitwise_xor_assignment.hpp
   sandbox/type_traits/boost/type_traits/can_call_complement.hpp
   sandbox/type_traits/boost/type_traits/can_call_dereference.hpp
   sandbox/type_traits/boost/type_traits/can_call_division.hpp
   sandbox/type_traits/boost/type_traits/can_call_division_assignment.hpp
   sandbox/type_traits/boost/type_traits/can_call_equal.hpp
   sandbox/type_traits/boost/type_traits/can_call_greater.hpp
   sandbox/type_traits/boost/type_traits/can_call_greater_equal.hpp
   sandbox/type_traits/boost/type_traits/can_call_left_shift.hpp
   sandbox/type_traits/boost/type_traits/can_call_left_shift_assignment.hpp
   sandbox/type_traits/boost/type_traits/can_call_less.hpp
   sandbox/type_traits/boost/type_traits/can_call_less_equal.hpp
   sandbox/type_traits/boost/type_traits/can_call_modulus.hpp
   sandbox/type_traits/boost/type_traits/can_call_modulus_assignment.hpp
   sandbox/type_traits/boost/type_traits/can_call_multiplication.hpp
   sandbox/type_traits/boost/type_traits/can_call_multiplication_assignment.hpp
   sandbox/type_traits/boost/type_traits/can_call_not.hpp
   sandbox/type_traits/boost/type_traits/can_call_not_equal.hpp
   sandbox/type_traits/boost/type_traits/can_call_or.hpp
   sandbox/type_traits/boost/type_traits/can_call_post_decrement.hpp
   sandbox/type_traits/boost/type_traits/can_call_post_increment.hpp
   sandbox/type_traits/boost/type_traits/can_call_pre_decrement.hpp
   sandbox/type_traits/boost/type_traits/can_call_pre_increment.hpp
   sandbox/type_traits/boost/type_traits/can_call_right_shift.hpp
   sandbox/type_traits/boost/type_traits/can_call_right_shift_assignment.hpp
   sandbox/type_traits/boost/type_traits/can_call_subtraction.hpp
   sandbox/type_traits/boost/type_traits/can_call_subtraction_assignment.hpp
   sandbox/type_traits/boost/type_traits/can_call_unary_minus.hpp
   sandbox/type_traits/boost/type_traits/can_call_unary_plus.hpp
   sandbox/type_traits/boost/type_traits/composite_traits.hpp
   sandbox/type_traits/boost/type_traits/config.hpp
   sandbox/type_traits/boost/type_traits/conversion_traits.hpp
   sandbox/type_traits/boost/type_traits/cv_traits.hpp
   sandbox/type_traits/boost/type_traits/decay.hpp
   sandbox/type_traits/boost/type_traits/detail/can_call_binary_operator.hpp
   sandbox/type_traits/boost/type_traits/detail/can_call_postfix_operator.hpp
   sandbox/type_traits/boost/type_traits/detail/can_call_prefix_operator.hpp
   sandbox/type_traits/boost/type_traits/detail/cv_traits_impl.hpp
   sandbox/type_traits/boost/type_traits/detail/false_result.hpp
   sandbox/type_traits/boost/type_traits/detail/ice_and.hpp
   sandbox/type_traits/boost/type_traits/detail/ice_eq.hpp
   sandbox/type_traits/boost/type_traits/detail/ice_not.hpp
   sandbox/type_traits/boost/type_traits/detail/ice_or.hpp
   sandbox/type_traits/boost/type_traits/detail/is_function_ptr_helper.hpp
   sandbox/type_traits/boost/type_traits/detail/is_function_ptr_tester.hpp
   sandbox/type_traits/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
   sandbox/type_traits/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp
   sandbox/type_traits/boost/type_traits/detail/size_t_trait_def.hpp
   sandbox/type_traits/boost/type_traits/detail/size_t_trait_undef.hpp
   sandbox/type_traits/boost/type_traits/detail/template_arity_spec.hpp
   sandbox/type_traits/boost/type_traits/detail/type_trait_def.hpp
   sandbox/type_traits/boost/type_traits/detail/type_trait_undef.hpp
   sandbox/type_traits/boost/type_traits/detail/wrap.hpp
   sandbox/type_traits/boost/type_traits/detail/yes_no_type.hpp
   sandbox/type_traits/boost/type_traits/extent.hpp
   sandbox/type_traits/boost/type_traits/floating_point_promotion.hpp
   sandbox/type_traits/boost/type_traits/function_traits.hpp
   sandbox/type_traits/boost/type_traits/has_nothrow_assign.hpp
   sandbox/type_traits/boost/type_traits/has_nothrow_constructor.hpp
   sandbox/type_traits/boost/type_traits/has_nothrow_copy.hpp
   sandbox/type_traits/boost/type_traits/has_nothrow_destructor.hpp
   sandbox/type_traits/boost/type_traits/has_trivial_assign.hpp
   sandbox/type_traits/boost/type_traits/has_trivial_constructor.hpp
   sandbox/type_traits/boost/type_traits/has_trivial_copy.hpp
   sandbox/type_traits/boost/type_traits/has_trivial_destructor.hpp
   sandbox/type_traits/boost/type_traits/has_virtual_destructor.hpp
   sandbox/type_traits/boost/type_traits/ice.hpp
   sandbox/type_traits/boost/type_traits/integral_constant.hpp
   sandbox/type_traits/boost/type_traits/integral_promotion.hpp
   sandbox/type_traits/boost/type_traits/intrinsics.hpp
   sandbox/type_traits/boost/type_traits/is_abstract.hpp
   sandbox/type_traits/boost/type_traits/is_arithmetic.hpp
   sandbox/type_traits/boost/type_traits/is_array.hpp
   sandbox/type_traits/boost/type_traits/is_class.hpp
   sandbox/type_traits/boost/type_traits/is_complex.hpp
   sandbox/type_traits/boost/type_traits/is_compound.hpp
   sandbox/type_traits/boost/type_traits/is_const.hpp
   sandbox/type_traits/boost/type_traits/is_convertible.hpp
   sandbox/type_traits/boost/type_traits/is_empty.hpp
   sandbox/type_traits/boost/type_traits/is_enum.hpp
   sandbox/type_traits/boost/type_traits/is_float.hpp
   sandbox/type_traits/boost/type_traits/is_floating_point.hpp
   sandbox/type_traits/boost/type_traits/is_function.hpp
   sandbox/type_traits/boost/type_traits/is_fundamental.hpp
   sandbox/type_traits/boost/type_traits/is_integral.hpp
   sandbox/type_traits/boost/type_traits/is_member_function_pointer.hpp
   sandbox/type_traits/boost/type_traits/is_member_object_pointer.hpp
   sandbox/type_traits/boost/type_traits/is_member_pointer.hpp
   sandbox/type_traits/boost/type_traits/is_object.hpp
   sandbox/type_traits/boost/type_traits/is_pod.hpp
   sandbox/type_traits/boost/type_traits/is_pointer.hpp
   sandbox/type_traits/boost/type_traits/is_polymorphic.hpp
   sandbox/type_traits/boost/type_traits/is_reference.hpp
   sandbox/type_traits/boost/type_traits/is_same.hpp
   sandbox/type_traits/boost/type_traits/is_scalar.hpp
   sandbox/type_traits/boost/type_traits/is_signed.hpp
   sandbox/type_traits/boost/type_traits/is_stateless.hpp
   sandbox/type_traits/boost/type_traits/is_union.hpp
   sandbox/type_traits/boost/type_traits/is_unsigned.hpp
   sandbox/type_traits/boost/type_traits/is_void.hpp
   sandbox/type_traits/boost/type_traits/is_volatile.hpp
   sandbox/type_traits/boost/type_traits/make_signed.hpp
   sandbox/type_traits/boost/type_traits/make_unsigned.hpp
   sandbox/type_traits/boost/type_traits/member_object.hpp
   sandbox/type_traits/boost/type_traits/msvc/
   sandbox/type_traits/boost/type_traits/object_traits.hpp
   sandbox/type_traits/boost/type_traits/promote.hpp
   sandbox/type_traits/boost/type_traits/rank.hpp
   sandbox/type_traits/boost/type_traits/reference_traits.hpp
   sandbox/type_traits/boost/type_traits/remove_all_extents.hpp
   sandbox/type_traits/boost/type_traits/remove_bounds.hpp
   sandbox/type_traits/boost/type_traits/remove_const.hpp
   sandbox/type_traits/boost/type_traits/remove_cv.hpp
   sandbox/type_traits/boost/type_traits/remove_extent.hpp
   sandbox/type_traits/boost/type_traits/remove_member_pointer.hpp
   sandbox/type_traits/boost/type_traits/remove_pointer.hpp
   sandbox/type_traits/boost/type_traits/remove_reference.hpp
   sandbox/type_traits/boost/type_traits/remove_volatile.hpp
   sandbox/type_traits/boost/type_traits/same_traits.hpp
   sandbox/type_traits/boost/type_traits/transform_traits.hpp
   sandbox/type_traits/boost/type_traits/transform_traits_spec.hpp
   sandbox/type_traits/boost/type_traits/type_with_alignment.hpp
   sandbox/type_traits/libs/type_traits/doc/can_call_addition.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_addition_assignment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_and.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_and.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_and_assignment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_or.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_or_assignment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_xor.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_xor_assignment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_complement.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_dereference.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_division.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_division_assignment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_equal.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_greater.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_greater_equal.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_left_shift.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_left_shift_assignment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_less.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_less_equal.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_modulus.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_modulus_assignment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_multiplication.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_multiplication_assignment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_not.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_not_equal.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_or.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_post_decrement.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_post_increment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_pre_decrement.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_pre_increment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_right_shift.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_right_shift_assignment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_subtraction.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_subtraction_assignment.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_unary_minus.qbk
   sandbox/type_traits/libs/type_traits/doc/can_call_unary_plus.qbk
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_addition.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_addition_assignment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_and.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_and.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_and_assignment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_or.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_or_assignment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_xor.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_xor_assignment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_complement.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_dereference.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_division.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_division_assignment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_equal.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_greater.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_greater_equal.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_left_shift.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_left_shift_assignment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_less.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_less_equal.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_modulus.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_modulus_assignment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_multiplication.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_multiplication_assignment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_not.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_not_equal.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_or.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_post_decrement.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_post_increment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_pre_decrement.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_pre_increment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_right_shift.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_right_shift_assignment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_subtraction.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_subtraction_assignment.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_unary_minus.html
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_unary_plus.html
   sandbox/type_traits/libs/type_traits/test/add_const_test.cpp
   sandbox/type_traits/libs/type_traits/test/add_cv_test.cpp
   sandbox/type_traits/libs/type_traits/test/add_pointer_test.cpp
   sandbox/type_traits/libs/type_traits/test/add_reference_test.cpp
   sandbox/type_traits/libs/type_traits/test/add_volatile_test.cpp
   sandbox/type_traits/libs/type_traits/test/aligned_storage_test.cpp
   sandbox/type_traits/libs/type_traits/test/alignment_of_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_addition_assignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_addition_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_and_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes.hpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes0_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes1_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes2_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes3_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes4_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes5_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes6_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes7_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes8_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_classes9_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_binary_operators.hpp
   sandbox/type_traits/libs/type_traits/test/can_call_bitwise_and_assignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_bitwise_and_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_bitwise_or_assignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_bitwise_or_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_bitwise_xor_assignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_bitwise_xor_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_complement_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_dereference_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_division_assignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_division_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_equal_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_greater_equal_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_greater_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_left_shift_assignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_left_shift_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_less_equal_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_less_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_modulus_assignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_modulus_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_multiplication_assignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_multiplication_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_not_equal_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_not_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_or_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_post_decrement_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_post_increment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes.hpp
   sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes0_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes1_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes2_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes3_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_postfix_operators.hpp
   sandbox/type_traits/libs/type_traits/test/can_call_pre_decrement_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_pre_increment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes.hpp
   sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes0_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes1_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes2_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes3_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_prefix_operators.hpp
   sandbox/type_traits/libs/type_traits/test/can_call_right_shift_assignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_right_shift_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_subtraction_assignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_subtraction_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_unary_minus_test.cpp
   sandbox/type_traits/libs/type_traits/test/can_call_unary_plus_test.cpp
   sandbox/type_traits/libs/type_traits/test/check_type.hpp
   sandbox/type_traits/libs/type_traits/test/decay_test.cpp
   sandbox/type_traits/libs/type_traits/test/extent_test.cpp
   sandbox/type_traits/libs/type_traits/test/function_traits_test.cpp
   sandbox/type_traits/libs/type_traits/test/has_nothrow_assign_test.cpp
   sandbox/type_traits/libs/type_traits/test/has_nothrow_constr_test.cpp
   sandbox/type_traits/libs/type_traits/test/has_nothrow_copy_test.cpp
   sandbox/type_traits/libs/type_traits/test/has_trivial_assign_test.cpp
   sandbox/type_traits/libs/type_traits/test/has_trivial_constr_test.cpp
   sandbox/type_traits/libs/type_traits/test/has_trivial_copy_test.cpp
   sandbox/type_traits/libs/type_traits/test/has_trivial_destructor_test.cpp
   sandbox/type_traits/libs/type_traits/test/has_virtual_destructor_test.cpp
   sandbox/type_traits/libs/type_traits/test/init.cpp
   sandbox/type_traits/libs/type_traits/test/is_abstract_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_arithmetic_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_array_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_base_and_derived_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_base_of_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_class_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_complex_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_compound_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_const_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_convertible_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_empty_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_enum_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_float_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_floating_point_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_function_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_fundamental_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_integral_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_member_func_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_member_obj_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_member_pointer_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_object_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_pod_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_pointer_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_polymorphic_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_reference_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_same_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_scalar_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_signed_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_stateless_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_union_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_unsigned_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_void_test.cpp
   sandbox/type_traits/libs/type_traits/test/is_volatile_test.cpp
   sandbox/type_traits/libs/type_traits/test/make_signed_test.cpp
   sandbox/type_traits/libs/type_traits/test/make_unsigned_test.cpp
   sandbox/type_traits/libs/type_traits/test/member_object_test.cpp
   sandbox/type_traits/libs/type_traits/test/promote_basic_test.cpp
   sandbox/type_traits/libs/type_traits/test/promote_enum_test.cpp
   sandbox/type_traits/libs/type_traits/test/promote_mpl_test.cpp
   sandbox/type_traits/libs/type_traits/test/promote_util.hpp
   sandbox/type_traits/libs/type_traits/test/rank_test.cpp
   sandbox/type_traits/libs/type_traits/test/remove_all_extents_test.cpp
   sandbox/type_traits/libs/type_traits/test/remove_bounds_test.cpp
   sandbox/type_traits/libs/type_traits/test/remove_const_test.cpp
   sandbox/type_traits/libs/type_traits/test/remove_cv_test.cpp
   sandbox/type_traits/libs/type_traits/test/remove_extent_test.cpp
   sandbox/type_traits/libs/type_traits/test/remove_mem_pointer_test.cpp
   sandbox/type_traits/libs/type_traits/test/remove_pointer_test.cpp
   sandbox/type_traits/libs/type_traits/test/remove_reference_test.cpp
   sandbox/type_traits/libs/type_traits/test/remove_volatile_test.cpp
   sandbox/type_traits/libs/type_traits/test/tricky_abstract_type_test.cpp
   sandbox/type_traits/libs/type_traits/test/tricky_add_pointer_test.cpp
   sandbox/type_traits/libs/type_traits/test/tricky_function_type_test.cpp
   sandbox/type_traits/libs/type_traits/test/tricky_incomplete_type_test.cpp
   sandbox/type_traits/libs/type_traits/test/tricky_is_enum_test.cpp
   sandbox/type_traits/libs/type_traits/test/tricky_partial_spec_test.cpp
   sandbox/type_traits/libs/type_traits/test/type_with_alignment_test.cpp
   sandbox/type_traits/libs/type_traits/test/udt_specialisations.cpp
Text files modified:
   sandbox/type_traits/boost/type_traits/detail/bool_trait_def.hpp | 14
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/background.html | 42
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category.html | 24
   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 | 20
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits.html | 16
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/operators.html | 1038 +++++++++++++++++++++++++++------------
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/primary.html | 34
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/properties.html | 7
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/relate.html | 5
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/credits.html | 8
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples.html | 16
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/copy.html | 26
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/destruct.html | 20
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/fill.html | 22
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/examples/iter.html | 26
   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 | 6
   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 | 241 ++++----
   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 | 10
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_pointer.html | 10
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_reference.html | 10
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_volatile.html | 10
   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 | 15
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/decay.html | 10
   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 | 5
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/function_traits.html | 12
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_no_throw_def_cons.html | 8
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_assign.html | 8
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_nothrow_constructor.html | 3
   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_trivial_assign.html | 8
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_trivial_constructor.html | 3
   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 | 8
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_virtual_destructor.html | 8
   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 | 6
   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 | 10
   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 | 8
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_function_pointer.html | 9
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_member_object_pointer.html | 3
   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 | 10
   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 | 8
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_same.html | 8
   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 | 8
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_void.html | 8
   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 | 10
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/promote.html | 10
   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_pointer.html | 10
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/remove_reference.html | 10
   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 | 8
   sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/user_defined.html | 2
   sandbox/type_traits/libs/type_traits/doc/html/index.html | 300 +++++-----
   sandbox/type_traits/libs/type_traits/doc/operators.qbk | 342 ++++++++----
   sandbox/type_traits/libs/type_traits/doc/type_traits.qbk | 119 ++-
   sandbox/type_traits/libs/type_traits/doc/value_traits.qbk | 38
   sandbox/type_traits/libs/type_traits/test/Jamfile.v2 | 36
   96 files changed, 1656 insertions(+), 1104 deletions(-)

Deleted: sandbox/type_traits/boost/type_traits/add_const.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/add_const.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,47 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_ADD_CONST_HPP_INCLUDED
-#define BOOST_TT_ADD_CONST_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-// * convert a type T to const type - add_const<T>
-// this is not required since the result is always
-// the same as "T const", but it does suppress warnings
-// from some compilers:
-
-#if defined(BOOST_MSVC)
-// This bogus warning will appear when add_const is applied to a
-// const volatile reference because we can't detect const volatile
-// references with MSVC6.
-# pragma warning(push)
-# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_const,T,T const)
-
-#if defined(BOOST_MSVC)
-# pragma warning(pop)
-#endif
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_const,T&,T&)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_CONST_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/add_cv.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/add_cv.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,48 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-#ifndef BOOST_TT_ADD_CV_HPP_INCLUDED
-#define BOOST_TT_ADD_CV_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-// * convert a type T to a const volatile type - add_cv<T>
-// this is not required since the result is always
-// the same as "T const volatile", but it does suppress warnings
-// from some compilers:
-
-#if defined(BOOST_MSVC)
-// This bogus warning will appear when add_volatile is applied to a
-// const volatile reference because we can't detect const volatile
-// references with MSVC6.
-# pragma warning(push)
-# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_cv,T,T const volatile)
-
-#if defined(BOOST_MSVC)
-# pragma warning(pop)
-#endif
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_cv,T&,T&)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_CV_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/add_pointer.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/add_pointer.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,72 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_ADD_POINTER_HPP_INCLUDED
-#define BOOST_TT_ADD_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/remove_reference.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-//
-// For some reason this implementation stops Borlands compiler
-// from dropping cv-qualifiers, it still fails with references
-// to arrays for some reason though (shrug...) (JM 20021104)
-//
-template <typename T>
-struct add_pointer_impl
-{
- typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&>
-{
- typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&const>
-{
- typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&volatile>
-{
- typedef T* type;
-};
-template <typename T>
-struct add_pointer_impl<T&const volatile>
-{
- typedef T* type;
-};
-
-#else
-
-template <typename T>
-struct add_pointer_impl
-{
- typedef typename remove_reference<T>::type no_ref_type;
- typedef no_ref_type* type;
-};
-
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_pointer,T,typename boost::detail::add_pointer_impl<T>::type)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/add_reference.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/add_reference.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,89 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/detail/workaround.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && defined(BOOST_MSVC6_MEMBER_TEMPLATES)
-
-template <bool x>
-struct reference_adder
-{
- template <typename T> struct result_
- {
- typedef T& type;
- };
-};
-
-template <>
-struct reference_adder<true>
-{
- template <typename T> struct result_
- {
- typedef T type;
- };
-};
-
-template <typename T>
-struct add_reference_impl
-{
- typedef typename reference_adder<
- ::boost::is_reference<T>::value
- >::template result_<T> result;
-
- typedef typename result::type type;
-};
-
-#else
-
-template <typename T>
-struct add_reference_impl
-{
- typedef T& type;
-};
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
-#endif
-
-#endif
-
-// these full specialisations are always required:
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void,void)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const,void const)
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void volatile,void volatile)
-BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(add_reference,void const volatile,void const volatile)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_reference,T,typename boost::detail::add_reference_impl<T>::type)
-
-// agurt, 07/mar/03: workaround Borland's ill-formed sensitivity to an additional
-// level of indirection, here
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_reference,T&,T&)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/add_volatile.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/add_volatile.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,47 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_ADD_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_ADD_VOLATILE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-// * convert a type T to volatile type - add_volatile<T>
-// this is not required since the result is always
-// the same as "T volatile", but it does suppress warnings
-// from some compilers:
-
-#if defined(BOOST_MSVC)
-// This bogus warning will appear when add_volatile is applied to a
-// const volatile reference because we can't detect const volatile
-// references with MSVC6.
-# pragma warning(push)
-# pragma warning(disable:4181) // warning C4181: qualifier applied to reference type ignored
-#endif
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(add_volatile,T,T volatile)
-
-#if defined(BOOST_MSVC)
-# pragma warning(pop)
-#endif
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,add_volatile,T&,T&)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_VOLATILE_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/aligned_storage.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/aligned_storage.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,13 +0,0 @@
-
-// Copyright (C) John Maddock 2005.
-// 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.
-
-#ifndef BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-# define BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-# include <boost/aligned_storage.hpp>
-#endif // BOOST_TT_ALIGNED_STORAGE_HPP_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/alignment_of.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/alignment_of.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,117 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-#define BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <cstddef>
-
-#include <boost/type_traits/intrinsics.hpp>
-// should be the last #include
-#include <boost/type_traits/detail/size_t_trait_def.hpp>
-
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4121 4512) // alignment is sensitive to packing
-#endif
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-#pragma option push -Vx- -Ve-
-#endif
-
-namespace boost {
-
-template <typename T> struct alignment_of;
-
-// get the alignment of some arbitrary type:
-namespace detail {
-
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4324) // structure was padded due to __declspec(align())
-#endif
-template <typename T>
-struct alignment_of_hack
-{
- char c;
- T t;
- alignment_of_hack();
-};
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-
-template <unsigned A, unsigned S>
-struct alignment_logic
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = A < S ? A : S);
-};
-
-
-template< typename T >
-struct alignment_of_impl
-{
-#ifndef BOOST_ALIGNMENT_OF
- BOOST_STATIC_CONSTANT(std::size_t, value =
- (::boost::detail::alignment_logic<
- sizeof(::boost::detail::alignment_of_hack<T>) - sizeof(T),
- sizeof(T)
- >::value));
-#else
- //
- // We put this here, rather than in the definition of
- // alignment_of below, because MSVC's __alignof doesn't
- // always work in that context for some unexplained reason.
- // (See type_with_alignment tests for test cases).
- //
- BOOST_STATIC_CONSTANT(std::size_t, value = BOOST_ALIGNMENT_OF(T));
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(alignment_of,T,::boost::detail::alignment_of_impl<T>::value)
-
-// references have to be treated specially, assume
-// that a reference is just a special pointer:
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <typename T>
-struct alignment_of<T&>
- : alignment_of<T*>
-{
-};
-#endif
-#ifdef __BORLANDC__
-// long double gives an incorrect value of 10 (!)
-// unless we do this...
-struct long_double_wrapper{ long double ld; };
-template<> struct alignment_of<long double>
- : public alignment_of<long_double_wrapper>{};
-#endif
-
-// void has to be treated specially:
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void,0)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const,0)
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void volatile,0)
-BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(alignment_of,void const volatile,0)
-#endif
-
-} // namespace boost
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-#pragma option pop
-#endif
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#include <boost/type_traits/detail/size_t_trait_undef.hpp>
-
-#endif // BOOST_TT_ALIGNMENT_OF_HPP_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/alignment_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/alignment_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,15 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_ALIGNMENT_TRAITS_HPP_INCLUDED
-#define BOOST_TT_ALIGNMENT_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/alignment_of.hpp>
-#include <boost/type_traits/type_with_alignment.hpp>
-
-#endif // BOOST_TT_ALIGNMENT_TRAITS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/arithmetic_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/arithmetic_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,20 +0,0 @@
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-//
-// defines traits classes for arithmetic types:
-// is_void, is_integral, is_float, is_arithmetic, is_fundamental.
-
-#ifndef BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED
-#define BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_float.hpp>
-#include <boost/type_traits/is_fundamental.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_void.hpp>
-
-#endif // BOOST_TT_ARITHMETIC_TRAITS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/array_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/array_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,15 +0,0 @@
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-#ifndef BOOST_TT_ARRAY_TRAITS_HPP_INCLUDED
-#define BOOST_TT_ARRAY_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/is_array.hpp>
-
-#endif // BOOST_TT_ARRAY_TRAITS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/broken_compiler_spec.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/broken_compiler_spec.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,117 +0,0 @@
-
-// Copyright 2001-2003 Aleksey Gurtovoy.
-// 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.
-
-#ifndef BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
-#define BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED
-
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/config.hpp>
-
-// these are needed regardless of BOOST_TT_NO_BROKEN_COMPILER_SPEC
-#if defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-namespace boost { namespace detail {
-template< typename T > struct remove_const_impl { typedef T type; };
-template< typename T > struct remove_volatile_impl { typedef T type; };
-template< typename T > struct remove_pointer_impl { typedef T type; };
-template< typename T > struct remove_reference_impl { typedef T type; };
-typedef int invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces;
-}}
-#endif
-
-// agurt, 27/jun/03: disable the workaround if user defined
-// BOOST_TT_NO_BROKEN_COMPILER_SPEC
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- || defined(BOOST_TT_NO_BROKEN_COMPILER_SPEC)
-
-# define BOOST_TT_BROKEN_COMPILER_SPEC(T) /**/
-
-#else
-
-// same as BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1 macro, except that it
-// never gets #undef-ined
-# define BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(trait,spec,result) \
-template<> struct trait##_impl<spec> \
-{ \
- typedef result type; \
-}; \
-/**/
-
-# define BOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_const,T const volatile,T volatile) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T volatile,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_volatile,T const volatile,T const) \
- /**/
-
-# define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*volatile,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_pointer,T*const volatile,T) \
- BOOST_TT_AUX_BROKEN_TYPE_TRAIT_SPEC1(remove_reference,T&,T) \
- /**/
-
-# define BOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T) \
- BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T) \
- BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const) \
- BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T volatile) \
- BOOST_TT_AUX_REMOVE_PTR_REF_RANK_1_SPEC(T const volatile) \
- /**/
-
-# define BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T) \
- BOOST_TT_AUX_REMOVE_PTR_REF_RANK_2_SPEC(T) \
- BOOST_TT_AUX_REMOVE_CONST_VOLATILE_RANK1_SPEC(T) \
- /**/
-
-# define BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T volatile*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T const volatile*) \
- /**/
-
-# define BOOST_TT_BROKEN_COMPILER_SPEC(T) \
- namespace boost { namespace detail { \
- typedef invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces \
- please_invoke_BOOST_TT_BROKEN_COMPILER_SPEC_outside_all_namespaces; \
- BOOST_TT_AUX_REMOVE_ALL_RANK_1_SPEC(T) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T volatile*) \
- BOOST_TT_AUX_REMOVE_ALL_RANK_2_SPEC(T const volatile*) \
- }} \
- /**/
-
-# include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_BROKEN_COMPILER_SPEC(bool)
-BOOST_TT_BROKEN_COMPILER_SPEC(char)
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-BOOST_TT_BROKEN_COMPILER_SPEC(wchar_t)
-#endif
-BOOST_TT_BROKEN_COMPILER_SPEC(signed char)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned char)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed short)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned short)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed int)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned int)
-BOOST_TT_BROKEN_COMPILER_SPEC(signed long)
-BOOST_TT_BROKEN_COMPILER_SPEC(unsigned long)
-BOOST_TT_BROKEN_COMPILER_SPEC(float)
-BOOST_TT_BROKEN_COMPILER_SPEC(double)
-//BOOST_TT_BROKEN_COMPILER_SPEC(long double)
-
-// for backward compatibility
-#define BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION(T) \
- BOOST_TT_BROKEN_COMPILER_SPEC(T) \
-/**/
-
-#endif // BOOST_TT_BROKEN_COMPILER_SPEC_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/can_call.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,51 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_HPP_INCLUDED
-
-#include <boost/type_traits/can_call.hpp>
-#include <boost/type_traits/can_call_addition.hpp>
-#include <boost/type_traits/can_call_addition_assignment.hpp>
-#include <boost/type_traits/can_call_and.hpp>
-#include <boost/type_traits/can_call_bitwise_and.hpp>
-#include <boost/type_traits/can_call_bitwise_and_assignment.hpp>
-#include <boost/type_traits/can_call_bitwise_or.hpp>
-#include <boost/type_traits/can_call_bitwise_or_assignment.hpp>
-#include <boost/type_traits/can_call_bitwise_xor.hpp>
-#include <boost/type_traits/can_call_bitwise_xor_assignment.hpp>
-#include <boost/type_traits/can_call_complement.hpp>
-#include <boost/type_traits/can_call_dereference.hpp>
-#include <boost/type_traits/can_call_division.hpp>
-#include <boost/type_traits/can_call_division_assignment.hpp>
-#include <boost/type_traits/can_call_equal.hpp>
-#include <boost/type_traits/can_call_greater.hpp>
-#include <boost/type_traits/can_call_greater_equal.hpp>
-#include <boost/type_traits/can_call_left_shift.hpp>
-#include <boost/type_traits/can_call_left_shift_assignment.hpp>
-#include <boost/type_traits/can_call_less.hpp>
-#include <boost/type_traits/can_call_less_equal.hpp>
-#include <boost/type_traits/can_call_modulus.hpp>
-#include <boost/type_traits/can_call_modulus_assignment.hpp>
-#include <boost/type_traits/can_call_multiplication.hpp>
-#include <boost/type_traits/can_call_multiplication_assignment.hpp>
-#include <boost/type_traits/can_call_not.hpp>
-#include <boost/type_traits/can_call_not_equal.hpp>
-#include <boost/type_traits/can_call_or.hpp>
-#include <boost/type_traits/can_call_post_decrement.hpp>
-#include <boost/type_traits/can_call_post_increment.hpp>
-#include <boost/type_traits/can_call_pre_decrement.hpp>
-#include <boost/type_traits/can_call_pre_increment.hpp>
-#include <boost/type_traits/can_call_right_shift.hpp>
-#include <boost/type_traits/can_call_right_shift_assignment.hpp>
-#include <boost/type_traits/can_call_subtraction.hpp>
-#include <boost/type_traits/can_call_subtraction_assignment.hpp>
-#include <boost/type_traits/can_call_unary_minus.hpp>
-#include <boost/type_traits/can_call_unary_plus.hpp>
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_addition.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_addition.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,54 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_ADDITION_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_ADDITION_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_addition
-#define BOOST_TT_TRAIT_OP +
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Lhs==void* and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_void< Lhs_noptr >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Rhs==void* and Lhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_void< Rhs_noptr >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value\
- >::value,\
- /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value,\
- /* Rhs==pointer and Lhs==fundamental and Lhs!=integral */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_addition_assignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_addition_assignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,66 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_ADDITION_ASSIGNMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_ADDITION_ASSIGNMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_addition_assignment
-#define BOOST_TT_TRAIT_OP +=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Lhs==void* and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_void< Lhs_noptr >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Rhs==void* and Lhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_void< Rhs_noptr >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value\
- >::value,\
- /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value,\
- /* Rhs==pointer and Lhs==fundamental and Lhs!=bool */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::type_traits::ice_not< ::boost::is_same< Lhs_nocv, bool >::value >::value\
- >::value,\
- /* (Lhs==fundamental or Lhs==pointer) and (Rhs==fundamental or Rhs==pointer) and (Lhs==const) */\
- ::boost::type_traits::ice_and<\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- ::boost::is_const< Lhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_and.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_and.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_AND_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_AND_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_and
-#define BOOST_TT_TRAIT_OP &&
-#define BOOST_TT_FORBIDDEN_IF\
- /* pointer with fundamental non convertible to bool */\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_not< ::boost::is_convertible< Rhs_nocv, bool >::value >::value\
- >::value\
- >::value,\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::type_traits::ice_not< ::boost::is_convertible< Lhs_nocv, bool >::value >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_bitwise_and.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_bitwise_and.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_BITWISE_AND_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_BITWISE_AND_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_and
-#define BOOST_TT_TRAIT_OP &
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_bitwise_and_assignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_bitwise_and_assignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,55 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_BITWISE_AND_ASSIGNMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_BITWISE_AND_ASSIGNMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_and_assignment
-#define BOOST_TT_TRAIT_OP &=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_const< Lhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_bitwise_or.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_bitwise_or.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_BITWISE_OR_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_BITWISE_OR_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_or
-#define BOOST_TT_TRAIT_OP |
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_bitwise_or_assignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_bitwise_or_assignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,55 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_BITWISE_OR_ASSIGNMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_BITWISE_OR_ASSIGNMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_or_assignment
-#define BOOST_TT_TRAIT_OP |=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_const< Lhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_bitwise_xor.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_bitwise_xor.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_BITWISE_XOR_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_BITWISE_XOR_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_xor
-#define BOOST_TT_TRAIT_OP ^
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_bitwise_xor_assignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_bitwise_xor_assignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,55 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_BITWISE_XOR_ASSIGNMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_BITWISE_XOR_ASSIGNMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_xor_assignment
-#define BOOST_TT_TRAIT_OP ^=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_const< Lhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_complement.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_complement.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,32 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_COMPLEMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_COMPLEMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_complement
-#define BOOST_TT_TRAIT_OP ~
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* pointer */\
- ::boost::is_pointer< Rhs_noref >::value,\
- /* fundamental non integral */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_noref >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_dereference.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_dereference.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,31 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_DEREFERENCE_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_DEREFERENCE_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_dereference
-#define BOOST_TT_TRAIT_OP *
-#define BOOST_TT_FORBIDDEN_IF\
- /* void* or fundamental */\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_void< Rhs_noptr >::value\
- >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_division.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_division.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_DIVISION_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_DIVISION_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_division
-#define BOOST_TT_TRAIT_OP /
-#define BOOST_TT_FORBIDDEN_IF\
- /* pointer with pointer or fundamental */\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value,\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_division_assignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_division_assignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,47 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_DIVISION_ASSIGNMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_DIVISION_ASSIGNMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_division_assignment
-#define BOOST_TT_TRAIT_OP /=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Lhs==const and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_const< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Lhs==pointer and (Rhs==fundamental or Rhs==pointer) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value,\
- /* Rhs==pointer and (Lhs==fundamental or Lhs==pointer) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_equal.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_EQUAL_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_EQUAL_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_equal
-#define BOOST_TT_TRAIT_OP ==
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==pointer and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Rhs==pointer and Lhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_not<\
- ::boost::type_traits::ice_or<\
- ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
- ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_void< Lhs_noptr >::value,\
- ::boost::is_void< Rhs_noptr >::value\
- >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_greater.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_greater.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_GREATER_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_GREATER_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_greater
-#define BOOST_TT_TRAIT_OP >
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==pointer and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Rhs==pointer and Lhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_not<\
- ::boost::type_traits::ice_or<\
- ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
- ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_void< Lhs_noptr >::value,\
- ::boost::is_void< Rhs_noptr >::value\
- >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_greater_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_greater_equal.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_GREATER_EQUAL_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_GREATER_EQUAL_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_greater_equal
-#define BOOST_TT_TRAIT_OP >=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==pointer and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Rhs==pointer and Lhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_not<\
- ::boost::type_traits::ice_or<\
- ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
- ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_void< Lhs_noptr >::value,\
- ::boost::is_void< Rhs_noptr >::value\
- >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_left_shift.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_left_shift.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_LEFT_SHIFT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_LEFT_SHIFT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_left_shift
-#define BOOST_TT_TRAIT_OP <<
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_left_shift_assignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_left_shift_assignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,55 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_LEFT_SHIFT_ASSIGNMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_LEFT_SHIFT_ASSIGNMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_left_shift_assignment
-#define BOOST_TT_TRAIT_OP <<=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_const< Lhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_less.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_less.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_LESS_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_LESS_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_less
-#define BOOST_TT_TRAIT_OP <
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==pointer and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Rhs==pointer and Lhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_not<\
- ::boost::type_traits::ice_or<\
- ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
- ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_void< Lhs_noptr >::value,\
- ::boost::is_void< Rhs_noptr >::value\
- >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_less_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_less_equal.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_LESS_EQUAL_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_LESS_EQUAL_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_less_equal
-#define BOOST_TT_TRAIT_OP <=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==pointer and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Rhs==pointer and Lhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_not<\
- ::boost::type_traits::ice_or<\
- ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
- ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_void< Lhs_noptr >::value,\
- ::boost::is_void< Rhs_noptr >::value\
- >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_modulus.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_modulus.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_MODULUS_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_MODULUS_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_modulus
-#define BOOST_TT_TRAIT_OP %
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_modulus_assignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_modulus_assignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,55 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_MODULUS_ASSIGNMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_MODULUS_ASSIGNMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_modulus_assignment
-#define BOOST_TT_TRAIT_OP %=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_const< Lhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_multiplication.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_multiplication.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_MULTIPLICATION_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_MULTIPLICATION_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_multiplication
-#define BOOST_TT_TRAIT_OP *
-#define BOOST_TT_FORBIDDEN_IF\
- /* pointer with pointer or fundamental */\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value,\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_multiplication_assignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_multiplication_assignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,47 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_MULTIPLICATION_ASSIGNMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_MULTIPLICATION_ASSIGNMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_multiplication_assignment
-#define BOOST_TT_TRAIT_OP *=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Lhs==const and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_const< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Lhs==pointer and (Rhs==fundamental or Rhs==pointer) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value,\
- /* Rhs==pointer and (Lhs==fundamental or Lhs==pointer) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_not.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_not.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,23 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_NOT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_NOT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_not
-#define BOOST_TT_TRAIT_OP !
-#define BOOST_TT_FORBIDDEN_IF\
- false
-
-#include <boost/type_traits/detail/can_call_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_not_equal.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_not_equal.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_NOT_EQUAL_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_NOT_EQUAL_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_not_equal
-#define BOOST_TT_TRAIT_OP !=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==pointer and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Rhs==pointer and Lhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_not<\
- ::boost::type_traits::ice_or<\
- ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
- ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
- ::boost::is_void< Lhs_noptr >::value,\
- ::boost::is_void< Rhs_noptr >::value\
- >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_or.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_or.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_OR_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_OR_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_or
-#define BOOST_TT_TRAIT_OP ||
-#define BOOST_TT_FORBIDDEN_IF\
- /* pointer with fundamental non convertible to bool */\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_not< ::boost::is_convertible< Rhs_nocv, bool >::value >::value\
- >::value\
- >::value,\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::type_traits::ice_not< ::boost::is_convertible< Lhs_nocv, bool >::value >::value\
- >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_post_decrement.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_post_decrement.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_POST_DECREMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_POST_DECREMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_post_decrement
-#define BOOST_TT_TRAIT_OP --
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* bool */\
- ::boost::is_same< bool, Lhs_nocv >::value,\
- /* void* */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_void< Lhs_noptr >::value\
- >::value,\
- /* (fundamental or pointer) and const */\
- ::boost::type_traits::ice_and<\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- ::boost::is_const< Lhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_postfix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_post_increment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_post_increment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,38 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_POST_INCREMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_POST_INCREMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_post_increment
-#define BOOST_TT_TRAIT_OP ++
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* void* */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_void< Lhs_noptr >::value\
- >::value,\
- /* (fundamental or pointer) and const */\
- ::boost::type_traits::ice_and<\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- ::boost::is_const< Lhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_postfix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_pre_decrement.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_pre_decrement.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_PRE_DECREMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_PRE_DECREMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_pre_decrement
-#define BOOST_TT_TRAIT_OP --
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* bool */\
- ::boost::is_same< bool, Rhs_nocv >::value,\
- /* void* */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_void< Rhs_noptr >::value\
- >::value,\
- /* (fundamental or pointer) and const */\
- ::boost::type_traits::ice_and<\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- ::boost::is_const< Rhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_pre_increment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_pre_increment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,38 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_PRE_INCREMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_PRE_INCREMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_pre_increment
-#define BOOST_TT_TRAIT_OP ++
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* void* */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_void< Rhs_noptr >::value\
- >::value,\
- /* (fundamental or pointer) and const */\
- ::boost::type_traits::ice_and<\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- ::boost::is_const< Rhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_right_shift.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_right_shift.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_RIGHT_SHIFT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_RIGHT_SHIFT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_right_shift
-#define BOOST_TT_TRAIT_OP >>
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_right_shift_assignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_right_shift_assignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,55 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_RIGHT_SHIFT_ASSIGNMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_RIGHT_SHIFT_ASSIGNMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_right_shift_assignment
-#define BOOST_TT_TRAIT_OP >>=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Rhs==fundamental and Lhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_const< Lhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_subtraction.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_subtraction.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,60 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_SUBTRACTION_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_SUBTRACTION_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_subtraction
-#define BOOST_TT_TRAIT_OP -
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value,\
- /* Lhs==void* and (Rhs==fundamental or Rhs==pointer) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_void< Lhs_noptr >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value\
- >::value,\
- /* Rhs==void* and (Lhs==fundamental or Lhs==pointer) */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_void< Rhs_noptr >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value\
- >::value,\
- /* Lhs=fundamental and Rhs=pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* two different pointers */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::type_traits::ice_not< ::boost::is_same< Lhs_nocv, Rhs_nocv >::value >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_subtraction_assignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_subtraction_assignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,65 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_SUBTRACTION_ASSIGNMENT_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_SUBTRACTION_ASSIGNMENT_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_subtraction_assignment
-#define BOOST_TT_TRAIT_OP -=
-#define BOOST_TT_FORBIDDEN_IF\
- ::boost::type_traits::ice_or<\
- /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
- >::value,\
- /* Lhs==void* and Rhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_void< Lhs_noptr >::value,\
- ::boost::is_fundamental< Rhs_nocv >::value\
- >::value,\
- /* Rhs==void* and Lhs==fundamental */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Rhs_noref >::value,\
- ::boost::is_void< Rhs_noptr >::value,\
- ::boost::is_fundamental< Lhs_nocv >::value\
- >::value,\
- /* Lhs=fundamental and Rhs=pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* Lhs==pointer and Rhs==pointer */\
- ::boost::type_traits::ice_and<\
- ::boost::is_pointer< Lhs_noref >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- /* (Lhs==fundamental or Lhs==pointer) and (Rhs==fundamental or Rhs==pointer) and (Lhs==const) */\
- ::boost::type_traits::ice_and<\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Lhs_nocv >::value,\
- ::boost::is_pointer< Lhs_noref >::value\
- >::value,\
- ::boost::type_traits::ice_or<\
- ::boost::is_fundamental< Rhs_nocv >::value,\
- ::boost::is_pointer< Rhs_noref >::value\
- >::value,\
- ::boost::is_const< Lhs_noref >::value\
- >::value\
- >::value
-
-
-#include <boost/type_traits/detail/can_call_binary_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_unary_minus.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_unary_minus.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,25 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_UNARY_MINUS_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_UNARY_MINUS_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_unary_minus
-#define BOOST_TT_TRAIT_OP -
-#define BOOST_TT_FORBIDDEN_IF\
- /* pointer */\
- ::boost::is_pointer< Rhs_noref >::value
-
-
-#include <boost/type_traits/detail/can_call_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/can_call_unary_plus.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/can_call_unary_plus.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,23 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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.
-
-#ifndef BOOST_TT_CAN_CALL_UNARY_PLUS_HPP_INCLUDED
-#define BOOST_TT_CAN_CALL_UNARY_PLUS_HPP_INCLUDED
-
-#define BOOST_TT_TRAIT_NAME can_call_unary_plus
-#define BOOST_TT_TRAIT_OP +
-#define BOOST_TT_FORBIDDEN_IF\
- false
-
-#include <boost/type_traits/detail/can_call_prefix_operator.hpp>
-
-#undef BOOST_TT_TRAIT_NAME
-#undef BOOST_TT_TRAIT_OP
-#undef BOOST_TT_FORBIDDEN_IF
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/composite_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/composite_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,29 +0,0 @@
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-//
-// defines traits classes for composite types:
-// is_array, is_pointer, is_reference, is_member_pointer, is_enum, is_union.
-//
-
-#ifndef BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
-#define BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/is_array.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_member_pointer.hpp>
-#include <boost/type_traits/is_member_function_pointer.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_union.hpp>
-
-#endif // BOOST_TT_COMPOSITE_TRAITS_HPP_INCLUDED
-
-
-
-
-

Deleted: sandbox/type_traits/boost/type_traits/config.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/config.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,76 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_CONFIG_HPP_INCLUDED
-#define BOOST_TT_CONFIG_HPP_INCLUDED
-
-#ifndef BOOST_CONFIG_HPP
-#include <boost/config.hpp>
-#endif
-
-#include <boost/detail/workaround.hpp>
-
-//
-// whenever we have a conversion function with elipses
-// it needs to be declared __cdecl to suppress compiler
-// warnings from MS and Borland compilers (this *must*
-// appear before we include is_same.hpp below):
-#if defined(BOOST_MSVC) || (defined(__BORLANDC__) && !defined(BOOST_DISABLE_WIN32))
-# define BOOST_TT_DECL __cdecl
-#else
-# define BOOST_TT_DECL /**/
-#endif
-
-# if (BOOST_WORKAROUND(__MWERKS__, < 0x3000) \
- || BOOST_WORKAROUND(BOOST_MSVC, <= 1301) \
- || !defined(__EDG_VERSION__) && BOOST_WORKAROUND(__GNUC__, < 3) \
- || BOOST_WORKAROUND(__IBMCPP__, < 600 ) \
- || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564)) \
- || defined(__ghs) \
- || BOOST_WORKAROUND(__HP_aCC, < 60700) \
- || BOOST_WORKAROUND(MPW_CPLUS, BOOST_TESTED_AT(0x890)) \
- || BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x580))) \
- && defined(BOOST_NO_IS_ABSTRACT)
-
-# define BOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION 1
-
-#endif
-
-#ifndef BOOST_TT_NO_CONFORMING_IS_CLASS_IMPLEMENTATION
-# define BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION 1
-#endif
-
-//
-// Define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-// when we can't test for function types with elipsis:
-//
-#if BOOST_WORKAROUND(__GNUC__, < 3)
-# define BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-#endif
-
-//
-// define BOOST_TT_TEST_MS_FUNC_SIGS
-// when we want to test __stdcall etc function types with is_function etc
-// (Note, does not work with Borland, even though it does support __stdcall etc):
-//
-#if defined(_MSC_EXTENSIONS) && !defined(__BORLANDC__)
-# define BOOST_TT_TEST_MS_FUNC_SIGS
-#endif
-
-//
-// define BOOST_TT_NO_CV_FUNC_TEST
-// if tests for cv-qualified member functions don't
-// work in is_member_function_pointer
-//
-#if BOOST_WORKAROUND(__MWERKS__, < 0x3000) || BOOST_WORKAROUND(__IBMCPP__, <= 600)
-# define BOOST_TT_NO_CV_FUNC_TEST
-#endif
-
-#endif // BOOST_TT_CONFIG_HPP_INCLUDED
-
-

Deleted: sandbox/type_traits/boost/type_traits/conversion_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/conversion_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,17 +0,0 @@
-
-// Copyright 2000 John Maddock (john_at_[hidden])
-// Copyright 2000 Jeremy Siek (jsiek_at_[hidden])
-// Copyright 1999, 2000 Jaakko Jarvi (jaakko.jarvi_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).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
-#define BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/is_convertible.hpp>
-
-#endif // BOOST_TT_CONVERSION_TRAITS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/cv_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/cv_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,24 +0,0 @@
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-//
-// defines traits classes for cv-qualified types:
-// is_const, is_volatile, remove_const, remove_volatile, remove_cv.
-
-#ifndef BOOST_TT_CV_TRAITS_HPP_INCLUDED
-#define BOOST_TT_CV_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_volatile.hpp>
-#include <boost/type_traits/add_cv.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/remove_volatile.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-
-#endif // BOOST_TT_CV_TRAITS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/decay.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/decay.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,44 +0,0 @@
-// (C) Copyright John Maddock & Thorsten Ottosen 2005.
-// 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.
-
-
-#ifndef BOOST_TT_DECAY_HPP_INCLUDED
-#define BOOST_TT_DECAY_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/is_array.hpp>
-#include <boost/type_traits/is_function.hpp>
-#include <boost/type_traits/remove_bounds.hpp>
-#include <boost/type_traits/add_pointer.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-
-namespace boost
-{
-
- template< class T >
- struct decay
- {
- private:
- typedef BOOST_DEDUCED_TYPENAME remove_reference<T>::type Ty;
- public:
- typedef BOOST_DEDUCED_TYPENAME mpl::eval_if<
- is_array<Ty>,
- mpl::identity<BOOST_DEDUCED_TYPENAME remove_bounds<Ty>::type*>,
- BOOST_DEDUCED_TYPENAME mpl::eval_if<
- is_function<Ty>,
- add_pointer<Ty>,
- mpl::identity<Ty>
- >
- >::type type;
- };
-
-} // namespace boost
-
-
-#endif // BOOST_TT_DECAY_HPP_INCLUDED

Modified: sandbox/type_traits/boost/type_traits/detail/bool_trait_def.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/bool_trait_def.hpp (original)
+++ sandbox/type_traits/boost/type_traits/detail/bool_trait_def.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -60,7 +60,7 @@
 #endif
 
 #ifndef BOOST_TT_AUX_BOOL_C_BASE
-# define BOOST_TT_AUX_BOOL_C_BASE(C) : ::boost::integral_constant<bool,C>
+# define BOOST_TT_AUX_BOOL_C_BASE(C) : public ::boost::integral_constant<bool,C>
 #endif
 
 
@@ -68,6 +68,7 @@
 template< typename T > struct trait \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
 }; \
@@ -80,6 +81,7 @@
 template< typename T1, typename T2 > struct trait \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT(2,trait,(T1,T2)) \
 }; \
@@ -91,6 +93,7 @@
 template< typename T1, typename T2, typename T3 > struct trait \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT(3,trait,(T1,T2,T3)) \
 }; \
@@ -102,6 +105,7 @@
 template<> struct trait< sp > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(sp)) \
 }; \
@@ -111,6 +115,7 @@
 template<> struct trait< sp1,sp2 > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
 }; \
@@ -119,6 +124,7 @@
 #define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(trait,sp,C) \
 template<> struct trait##_impl< sp > \
 { \
+public:\
     BOOST_STATIC_CONSTANT(bool, value = (C)); \
 }; \
 /**/
@@ -126,6 +132,7 @@
 #define BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,sp1,sp2,C) \
 template<> struct trait##_impl< sp1,sp2 > \
 { \
+public:\
     BOOST_STATIC_CONSTANT(bool, value = (C)); \
 }; \
 /**/
@@ -134,6 +141,7 @@
 template< param > struct trait< sp > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
 }; \
 /**/
@@ -142,6 +150,7 @@
 template< param1, param2 > struct trait< sp > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
 }; \
 /**/
@@ -150,6 +159,7 @@
 template< param > struct trait< sp1,sp2 > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
     BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(2,trait,(sp1,sp2)) \
 }; \
@@ -159,6 +169,7 @@
 template< param1, param2 > struct trait< sp1,sp2 > \
     BOOST_TT_AUX_BOOL_C_BASE(C) \
 { \
+public:\
     BOOST_TT_AUX_BOOL_TRAIT_VALUE_DECL(C) \
 }; \
 /**/
@@ -166,6 +177,7 @@
 #define BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(param,trait,sp1,sp2,C) \
 template< param > struct trait##_impl< sp1,sp2 > \
 { \
+public:\
     BOOST_STATIC_CONSTANT(bool, value = (C)); \
 }; \
 /**/

Deleted: sandbox/type_traits/boost/type_traits/detail/can_call_binary_operator.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/can_call_binary_operator.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,228 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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/ice.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_base_of.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/is_fundamental.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_same.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>
-
-// cannot include this header without getting warnings of the kind:
-// gcc:
-// warning: value computed is not used
-// warning: comparison between signed and unsigned integer expressions
-// msvc:
-// warning C4018: '<' : signed/unsigned mismatch
-// warning C4244: '+=' : conversion from 'double' to 'char', possible loss of data
-// warning C4547: '*' : operator before comma has no effect; expected operator with side-effect
-// warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
-// warning C4804: '<' : unsafe use of type 'bool' in operation
-// warning C4805: '==' : unsafe mix of type 'bool' and type 'char' in operation
-// cannot find another implementation -> declared as system header to suppress these warnings.
-#if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
-# pragma GCC system_header
-#elif BOOST_MSVC
-# pragma warning ( push )
-# pragma warning ( disable : 4018 4244 4547 4800 4804 4805 )
-#endif
-
-namespace boost {
-namespace detail {
-
-// This namespace ensures that ADL does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
-
-// 1. a function to have an instance of type T without requiring T to be default
-// constructible
-template <typename T> T &make();
-
-
-// 2. checks if the operator returns void or not
-// conditions: Lhs!=void and Rhs!=void
-
-// we first redefine "operator," so that we have no compilation error if
-// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
-// (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if
-// operator BOOST_TT_TRAIT_OP returns void or not:
-// - operator BOOST_TT_TRAIT_OP returns void -> (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t
-// - operator BOOST_TT_TRAIT_OP returns !=void -> (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int
-struct returns_void_t {};
-template <typename T> int operator,(T, returns_void_t);
-
-// this intermediate trait has member value of type bool:
-// - value==true -> operator BOOST_TT_TRAIT_OP returns void
-// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
-template < typename Lhs, typename Rhs >
-struct operator_returns_void {
- // overloads of function returns_void make the difference
- // yes_type and no_type have different size by construction
- static ::boost::type_traits::yes_type returns_void(returns_void_t);
- static ::boost::type_traits::no_type returns_void(int);
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
-};
-
-
-// 3. checks if the return type is Ret or Ret==dont_care
-// conditions: Lhs!=void and Rhs!=void
-
-struct dont_care { };
-
-template < typename Lhs, typename Rhs, typename Ret, bool Returns_void >
-struct operator_returns_Ret;
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, dont_care, true > {
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, dont_care, false > {
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, void, true > {
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs, typename Rhs >
-struct operator_returns_Ret < Lhs, Rhs, void, false > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Rhs, typename Ret >
-struct operator_returns_Ret < Lhs, Rhs, Ret, true > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// otherwise checks if it is convertible to Ret using the sizeof trick
-// based on overload resolution
-// condition: Ret!=void and Ret!=dont_care and the operator does not return void
-template < typename Lhs, typename Rhs, typename Ret >
-struct operator_returns_Ret < Lhs, Rhs, Ret, false > {
- 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
-
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>()))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 4. we provide our operator definition for types that do not have one already
-
-// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
-// found in the type's own namespace (our own operator is used) so that we have
-// a means to know that our operator was used
-struct tag { };
-
-// this class allows implicit conversions and makes the following operator
-// definition less-preferred than any other such operators that might be found
-// via argument-dependent name lookup
-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&);
-
-
-// 5. checks for operator existence
-// condition: Lhs!=void and Rhs!=void
-
-// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
-// existing one;
-// this is done with redefinition of "operator," that returns tag or tag2
-struct tag2 { };
-tag operator,(tag, tag2);
-
-template < typename Lhs, typename Rhs >
-struct operator_exists {
- static ::boost::type_traits::yes_type check(tag2); // this version is preferred when operator exists
- static ::boost::type_traits::no_type check(tag); // this version is used otherwise
-
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>()),make<tag2>())))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 5. main trait: to avoid any compilation error, this class behaves
-// differently when operator BOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the
-// standard.
-// Forbidden_if is a bool that is:
-// - true when the operator BOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the standard
-// (would yield compilation error if used)
-// - false otherwise
-template < typename Lhs, typename Rhs, typename Ret, bool Forbidden_if >
-struct trait_impl1;
-
-template < typename Lhs, typename Rhs, typename Ret >
-struct trait_impl1 < Lhs, Rhs, Ret, true > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Rhs, typename Ret >
-struct trait_impl1 < Lhs, Rhs, Ret, false > {
- BOOST_STATIC_CONSTANT(bool,
- value = (
- ::boost::type_traits::ice_and<
- operator_exists < Lhs, Rhs >::value,
- operator_returns_Ret < Lhs, Rhs, Ret, operator_returns_void < Lhs, Rhs >::value >::value
- >::value
- )
- );
-};
-
-// some specializations needs to be declared for the special void case
-template < typename Rhs, typename Ret >
-struct trait_impl1 < void, Rhs, Ret, false > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Ret >
-struct trait_impl1 < Lhs, void, Ret, false > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Ret >
-struct trait_impl1 < void, void, Ret, false > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// defines some typedef for convenience
-template < typename Lhs, typename Rhs, typename Ret >
-struct trait_impl {
- typedef typename ::boost::remove_reference<Lhs>::type Lhs_noref;
- typedef typename ::boost::remove_reference<Rhs>::type Rhs_noref;
- typedef typename ::boost::remove_cv<Lhs_noref>::type Lhs_nocv;
- typedef typename ::boost::remove_cv<Rhs_noref>::type Rhs_nocv;
- typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Lhs_noref>::type >::type >::type Lhs_noptr;
- typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Rhs_noref>::type >::type >::type Rhs_noptr;
- BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
-};
-
-} // namespace impl
-} // namespace detail
-
-// this is the accessible definition of the trait to end user
-BOOST_TT_AUX_BOOL_TRAIT_DEF3(BOOST_TT_TRAIT_NAME, Lhs, Rhs=Lhs, Ret=::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl < Lhs, Rhs, Ret >::value))
-
-} // namespace boost
-
-#ifdef BOOST_MSVC
-# pragma warning ( pop )
-#endif
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>

Deleted: sandbox/type_traits/boost/type_traits/detail/can_call_postfix_operator.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/can_call_postfix_operator.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,189 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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/ice.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_fundamental.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_same.hpp>
-#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) {
-
-// 1. a function to have an instance of type T without requiring T to be default
-// constructible
-template <typename T> T &make();
-
-
-// 2. checks if the operator returns void or not
-// conditions: Lhs!=void
-
-// we first redefine "operator," so that we have no compilation error if
-// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
-// (lhs BOOST_TT_TRAIT_OP, returns_void_t()) to deduce if
-// operator BOOST_TT_TRAIT_OP returns void or not:
-// - operator BOOST_TT_TRAIT_OP returns void -> (lhs BOOST_TT_TRAIT_OP, returns_void_t()) returns returns_void_t
-// - operator BOOST_TT_TRAIT_OP returns !=void -> (lhs BOOST_TT_TRAIT_OP, returns_void_t()) returns int
-struct returns_void_t {};
-template <typename T> int operator,(T, returns_void_t);
-
-// this intermediate trait has member value of type bool:
-// - value==true -> operator BOOST_TT_TRAIT_OP returns void
-// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
-template < typename Lhs >
-struct operator_returns_void {
- // overloads of function returns_void make the difference
- // yes_type and no_type have different size by construction
- static ::boost::type_traits::yes_type returns_void(returns_void_t);
- static ::boost::type_traits::no_type returns_void(int);
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() BOOST_TT_TRAIT_OP,returns_void_t())))));
-};
-
-
-// 3. checks if the return type is Ret or Ret==dont_care
-// conditions: Lhs!=void
-
-struct dont_care { };
-
-template < typename Lhs, typename Ret, bool Returns_void >
-struct operator_returns_Ret;
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, dont_care, true > {
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, dont_care, false > {
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, void, true > {
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Lhs >
-struct operator_returns_Ret < Lhs, void, false > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Ret >
-struct operator_returns_Ret < Lhs, Ret, true > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// otherwise checks if it is convertible to Ret using the sizeof trick
-// based on overload resolution
-// condition: Ret!=void and Ret!=dont_care and the operator does not return void
-template < typename Lhs, typename Ret >
-struct operator_returns_Ret < Lhs, Ret, false > {
- 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
-
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make<Lhs>() BOOST_TT_TRAIT_OP))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 4. we provide our operator definition for types that do not have one already
-
-// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
-// found in the type's own namespace (our own operator is used) so that we have
-// a means to know that our operator was used
-struct tag { };
-
-// this class allows implicit conversions and makes the following operator
-// definition less-preferred than any other such operators that might be found
-// via argument-dependent name lookup
-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);
-
-
-// 5. checks for operator existence
-// condition: Lhs!=void
-
-// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
-// existing one;
-// this is done with redefinition of "operator," that returns tag or tag2
-struct tag2 { };
-tag operator,(tag, tag2);
-
-template < typename Lhs >
-struct operator_exists {
- static ::boost::type_traits::yes_type check(tag2); // this version is preferred when operator exists
- static ::boost::type_traits::no_type check(tag); // this version is used otherwise
-
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<Lhs>() BOOST_TT_TRAIT_OP),make<tag2>())))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 5. main trait: to avoid any compilation error, this class behaves
-// differently when operator BOOST_TT_TRAIT_OP(Lhs) is forbidden by the
-// standard.
-// Forbidden_if is a bool that is:
-// - true when the operator BOOST_TT_TRAIT_OP(Lhs) is forbidden by the standard
-// (would yield compilation error if used)
-// - false otherwise
-template < typename Lhs, typename Ret, bool Forbidden_if >
-struct trait_impl1;
-
-template < typename Lhs, typename Ret >
-struct trait_impl1 < Lhs, Ret, true > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Lhs, typename Ret >
-struct trait_impl1 < Lhs, Ret, false > {
- BOOST_STATIC_CONSTANT(bool,
- value = (
- ::boost::type_traits::ice_and<
- operator_exists < Lhs >::value,
- operator_returns_Ret < Lhs, Ret, operator_returns_void < Lhs >::value >::value
- >::value
- )
- );
-};
-
-// specialization needs to be declared for the special void case
-template < typename Ret >
-struct trait_impl1 < void, Ret, false > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// defines some typedef for convenience
-template < typename Lhs, typename Ret >
-struct trait_impl {
- typedef typename ::boost::remove_reference<Lhs>::type Lhs_noref;
- typedef typename ::boost::remove_cv<Lhs_noref>::type Lhs_nocv;
- typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Lhs_noref>::type >::type >::type Lhs_noptr;
- BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
-};
-
-} // namespace impl
-} // namespace detail
-
-// this is the accessible definition of the trait to end user
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME, Lhs, Ret=::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl< Lhs, Ret >::value))
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>

Deleted: sandbox/type_traits/boost/type_traits/detail/can_call_prefix_operator.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/can_call_prefix_operator.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,209 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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/ice.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_fundamental.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_same.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>
-
-// cannot include this header without getting warnings of the kind:
-// gcc:
-// warning: value computed is not used
-// warning: comparison between signed and unsigned integer expressions
-// msvc:
-// warning C4146: unary minus operator applied to unsigned type, result still unsigned
-// warning C4804: '-' : unsafe use of type 'bool' in operation
-// cannot find another implementation -> declared as system header to suppress these warnings.
-#if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
-# pragma GCC system_header
-#elif BOOST_MSVC
-# pragma warning ( push )
-# pragma warning ( disable : 4146 4804 )
-#endif
-
-namespace boost {
-namespace detail {
-
-// This namespace ensures that ADL does not mess things up.
-namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
-
-// 1. a function to have an instance of type T without requiring T to be default
-// constructible
-template <typename T> T &make();
-
-
-// 2. checks if the operator returns void or not
-// conditions: Rhs!=void
-
-// we first redefine "operator," so that we have no compilation error if
-// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
-// (BOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if
-// operator BOOST_TT_TRAIT_OP returns void or not:
-// - operator BOOST_TT_TRAIT_OP returns void -> (BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t
-// - operator BOOST_TT_TRAIT_OP returns !=void -> (BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int
-struct returns_void_t {};
-template <typename T> int operator,(T, returns_void_t);
-
-// this intermediate trait has member value of type bool:
-// - value==true -> operator BOOST_TT_TRAIT_OP returns void
-// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
-template < typename Rhs >
-struct operator_returns_void {
- // overloads of function returns_void make the difference
- // yes_type and no_type have different size by construction
- static ::boost::type_traits::yes_type returns_void(returns_void_t);
- static ::boost::type_traits::no_type returns_void(int);
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((BOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
-};
-
-
-// 3. checks if the return type is Ret or Ret==dont_care
-// conditions: Rhs!=void
-
-struct dont_care { };
-
-template < typename Rhs, typename Ret, bool Returns_void >
-struct operator_returns_Ret;
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, dont_care, true > {
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, dont_care, false > {
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, void, true > {
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template < typename Rhs >
-struct operator_returns_Ret < Rhs, void, false > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Rhs, typename Ret >
-struct operator_returns_Ret < Rhs, Ret, true > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// otherwise checks if it is convertible to Ret using the sizeof trick
-// based on overload resolution
-// condition: Ret!=void and Ret!=dont_care and the operator does not return void
-template < typename Rhs, typename Ret >
-struct operator_returns_Ret < Rhs, Ret, false > {
- 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
-
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(BOOST_TT_TRAIT_OP make<Rhs>()))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 4. we provide our operator definition for types that do not have one already
-
-// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
-// found in the type's own namespace (our own operator is used) so that we have
-// a means to know that our operator was used
-struct tag { };
-
-// this class allows implicit conversions and makes the following operator
-// definition less-preferred than any other such operators that might be found
-// via argument-dependent name lookup
-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&);
-
-
-// 5. checks for operator existence
-// condition: Rhs!=void
-
-// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
-// existing one;
-// this is done with redefinition of "operator," that returns tag or tag2
-struct tag2 { };
-tag operator,(tag, tag2);
-
-template < typename Rhs >
-struct operator_exists {
- static ::boost::type_traits::yes_type check(tag2); // this version is preferred when operator exists
- static ::boost::type_traits::no_type check(tag); // this version is used otherwise
-
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((BOOST_TT_TRAIT_OP make<Rhs>()),make<tag2>())))==sizeof(::boost::type_traits::yes_type)));
-};
-
-
-// 5. main trait: to avoid any compilation error, this class behaves
-// differently when operator BOOST_TT_TRAIT_OP(Rhs) is forbidden by the
-// standard.
-// Forbidden_if is a bool that is:
-// - true when the operator BOOST_TT_TRAIT_OP(Rhs) is forbidden by the standard
-// (would yield compilation error if used)
-// - false otherwise
-template < typename Rhs, typename Ret, bool Forbidden_if >
-struct trait_impl1;
-
-template < typename Rhs, typename Ret >
-struct trait_impl1 < Rhs, Ret, true > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template < typename Rhs, typename Ret >
-struct trait_impl1 < Rhs, Ret, false > {
- BOOST_STATIC_CONSTANT(bool,
- value = (
- ::boost::type_traits::ice_and<
- operator_exists < Rhs >::value,
- operator_returns_Ret < Rhs, Ret, operator_returns_void < Rhs >::value >::value
- >::value
- )
- );
-};
-
-// specialization needs to be declared for the special void case
-template < typename Ret >
-struct trait_impl1 < void, Ret, false > {
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-// defines some typedef for convenience
-template < typename Rhs, typename Ret >
-struct trait_impl {
- typedef typename ::boost::remove_reference<Rhs>::type Rhs_noref;
- typedef typename ::boost::remove_cv<Rhs_noref>::type Rhs_nocv;
- typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Rhs_noref>::type >::type >::type Rhs_noptr;
- BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
-};
-
-} // namespace impl
-} // namespace detail
-
-// this is the accessible definition of the trait to end user
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME, Rhs, Ret=::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl < Rhs, Ret >::value))
-
-} // namespace boost
-
-#ifdef BOOST_MSVC
-# pragma warning ( pop )
-#endif
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>

Deleted: sandbox/type_traits/boost/type_traits/detail/cv_traits_impl.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/cv_traits_impl.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,97 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-#ifndef BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
-#define BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// implementation helper:
-
-
-#if !(BOOST_WORKAROUND(__GNUC__,== 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 2))
-namespace boost {
-namespace detail {
-#else
-#include <boost/type_traits/detail/yes_no_type.hpp>
-namespace boost {
-namespace type_traits {
-namespace gcc8503 {
-#endif
-
-template <typename T> struct cv_traits_imp {};
-
-template <typename T>
-struct cv_traits_imp<T*>
-{
- BOOST_STATIC_CONSTANT(bool, is_const = false);
- BOOST_STATIC_CONSTANT(bool, is_volatile = false);
- typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<const T*>
-{
- BOOST_STATIC_CONSTANT(bool, is_const = true);
- BOOST_STATIC_CONSTANT(bool, is_volatile = false);
- typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<volatile T*>
-{
- BOOST_STATIC_CONSTANT(bool, is_const = false);
- BOOST_STATIC_CONSTANT(bool, is_volatile = true);
- typedef T unqualified_type;
-};
-
-template <typename T>
-struct cv_traits_imp<const volatile T*>
-{
- BOOST_STATIC_CONSTANT(bool, is_const = true);
- BOOST_STATIC_CONSTANT(bool, is_volatile = true);
- typedef T unqualified_type;
-};
-
-#if BOOST_WORKAROUND(__GNUC__,== 3) && BOOST_WORKAROUND(__GNUC_MINOR__, <= 2)
-// We have to exclude function pointers
-// (see http://gcc.gnu.org/bugzilla/show_bug.cgi?8503)
-yes_type mini_funcptr_tester(...);
-no_type mini_funcptr_tester(const volatile void*);
-
-} // namespace gcc8503
-} // namespace type_traits
-
-namespace detail {
-
-// Use the implementation above for non function pointers
-template <typename T, unsigned Select
- = (unsigned)sizeof(::boost::type_traits::gcc8503::mini_funcptr_tester((T)0)) >
-struct cv_traits_imp : ::boost::type_traits::gcc8503::cv_traits_imp<T> { };
-
-// Functions are never cv-qualified
-template <typename T> struct cv_traits_imp<T*,1>
-{
- BOOST_STATIC_CONSTANT(bool, is_const = false);
- BOOST_STATIC_CONSTANT(bool, is_volatile = false);
- typedef T unqualified_type;
-};
-
-#endif
-
-} // namespace detail
-} // namespace boost
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#endif // BOOST_TT_DETAIL_CV_TRAITS_IMPL_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/detail/false_result.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/false_result.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,28 +0,0 @@
-// Copyright David Abrahams 2002.
-// 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.
-
-
-#ifndef BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
-#define BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-namespace type_traits {
-
-// Utility class which always "returns" false
-struct false_result
-{
- template <typename T> struct result_
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-}} // namespace boost::type_traits
-
-#endif // BOOST_TT_DETAIL_FALSE_RESULT_HPP_INCLUDED

Added: sandbox/type_traits/boost/type_traits/detail/has_binary_operator.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/detail/has_binary_operator.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,229 @@
+// (C) Copyright 2009-2011 Frederic 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/ice.hpp>
+#include <boost/type_traits/integral_constant.hpp>
+#include <boost/type_traits/is_base_of.hpp>
+#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/is_convertible.hpp>
+#include <boost/type_traits/is_fundamental.hpp>
+#include <boost/type_traits/is_integral.hpp>
+#include <boost/type_traits/is_pointer.hpp>
+#include <boost/type_traits/is_same.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>
+
+// cannot include this header without getting warnings of the kind:
+// gcc:
+// warning: value computed is not used
+// warning: comparison between signed and unsigned integer expressions
+// msvc:
+// warning C4018: '<' : signed/unsigned mismatch
+// warning C4244: '+=' : conversion from 'double' to 'char', possible loss of data
+// warning C4547: '*' : operator before comma has no effect; expected operator with side-effect
+// warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
+// warning C4804: '<' : unsafe use of type 'bool' in operation
+// warning C4805: '==' : unsafe mix of type 'bool' and type 'char' in operation
+// cannot find another implementation -> declared as system header to suppress these warnings.
+#if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
+# pragma GCC system_header
+#elif BOOST_MSVC
+# pragma warning ( push )
+# pragma warning ( disable : 4018 4244 4547 4800 4804 4805 )
+#endif
+
+namespace boost {
+namespace detail {
+
+// This namespace ensures that argument-dependent name lookup does not mess things up.
+namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+
+// 1. a function to have an instance of type T without requiring T to be default
+// constructible
+template <typename T> T &make();
+
+
+// 2. checks if the operator returns void or not
+// conditions: Lhs!=void and Rhs!=void
+
+// we first redefine "operator," so that we have no compilation error if
+// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
+// (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if
+// operator BOOST_TT_TRAIT_OP returns void or not:
+// - operator BOOST_TT_TRAIT_OP returns void -> (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t
+// - operator BOOST_TT_TRAIT_OP returns !=void -> (lhs BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int
+struct returns_void_t { };
+template <typename T> int operator,(const T&, returns_void_t);
+template <typename T> int operator,(const volatile T&, returns_void_t);
+
+// this intermediate trait has member value of type bool:
+// - value==true -> operator BOOST_TT_TRAIT_OP returns void
+// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
+template < typename Lhs, typename Rhs >
+struct operator_returns_void {
+ // overloads of function returns_void make the difference
+ // yes_type and no_type have different size by construction
+ static ::boost::type_traits::yes_type returns_void(returns_void_t);
+ static ::boost::type_traits::no_type returns_void(int);
+ BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
+};
+
+
+// 3. checks if the return type is Ret or Ret==dont_care
+// conditions: Lhs!=void and Rhs!=void
+
+struct dont_care { };
+
+template < typename Lhs, typename Rhs, typename Ret, bool Returns_void >
+struct operator_returns_Ret;
+
+template < typename Lhs, typename Rhs >
+struct operator_returns_Ret < Lhs, Rhs, dont_care, true > {
+ BOOST_STATIC_CONSTANT(bool, value = true);
+};
+
+template < typename Lhs, typename Rhs >
+struct operator_returns_Ret < Lhs, Rhs, dont_care, false > {
+ BOOST_STATIC_CONSTANT(bool, value = true);
+};
+
+template < typename Lhs, typename Rhs >
+struct operator_returns_Ret < Lhs, Rhs, void, true > {
+ BOOST_STATIC_CONSTANT(bool, value = true);
+};
+
+template < typename Lhs, typename Rhs >
+struct operator_returns_Ret < Lhs, Rhs, void, false > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+template < typename Lhs, typename Rhs, typename Ret >
+struct operator_returns_Ret < Lhs, Rhs, Ret, true > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+// otherwise checks if it is convertible to Ret using the sizeof trick
+// based on overload resolution
+// condition: Ret!=void and Ret!=dont_care and the operator does not return void
+template < typename Lhs, typename Rhs, typename Ret >
+struct operator_returns_Ret < Lhs, Rhs, Ret, false > {
+ 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
+
+ BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>()))==sizeof(::boost::type_traits::yes_type)));
+};
+
+
+// 4. we provide our operator definition for types that do not have one already
+
+// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
+// found in the type's own namespace (our own operator is used) so that we have
+// a means to know that our operator was used
+struct no_operator { };
+
+// this class allows implicit conversions and makes the following operator
+// definition less-preferred than any other such operators that might be found
+// via argument-dependent name lookup
+struct any { template <class T> any(T const&); };
+
+// when operator BOOST_TT_TRAIT_OP is not available, this one is used
+no_operator operator BOOST_TT_TRAIT_OP (const any&, const any&);
+
+
+// 5. checks for operator existence
+// condition: Lhs!=void and Rhs!=void
+
+// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
+// existing one;
+// this is done with redefinition of "operator," that returns no_operator or has_operator
+struct has_operator { };
+no_operator operator,(no_operator, has_operator);
+
+template < typename Lhs, typename Rhs >
+struct operator_exists {
+ static ::boost::type_traits::yes_type check(has_operator); // this version is preferred when operator exists
+ static ::boost::type_traits::no_type check(no_operator); // this version is used otherwise
+
+ BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<Lhs>() BOOST_TT_TRAIT_OP make<Rhs>()),make<has_operator>())))==sizeof(::boost::type_traits::yes_type)));
+};
+
+
+// 5. main trait: to avoid any compilation error, this class behaves
+// differently when operator BOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the
+// standard.
+// Forbidden_if is a bool that is:
+// - true when the operator BOOST_TT_TRAIT_OP(Lhs, Rhs) is forbidden by the standard
+// (would yield compilation error if used)
+// - false otherwise
+template < typename Lhs, typename Rhs, typename Ret, bool Forbidden_if >
+struct trait_impl1;
+
+template < typename Lhs, typename Rhs, typename Ret >
+struct trait_impl1 < Lhs, Rhs, Ret, true > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+template < typename Lhs, typename Rhs, typename Ret >
+struct trait_impl1 < Lhs, Rhs, Ret, false > {
+ BOOST_STATIC_CONSTANT(bool,
+ value = (
+ ::boost::type_traits::ice_and<
+ operator_exists < Lhs, Rhs >::value,
+ operator_returns_Ret < Lhs, Rhs, Ret, operator_returns_void < Lhs, Rhs >::value >::value
+ >::value
+ )
+ );
+};
+
+// some specializations needs to be declared for the special void case
+template < typename Rhs, typename Ret >
+struct trait_impl1 < void, Rhs, Ret, false > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+template < typename Lhs, typename Ret >
+struct trait_impl1 < Lhs, void, Ret, false > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+template < typename Ret >
+struct trait_impl1 < void, void, Ret, false > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+// defines some typedef for convenience
+template < typename Lhs, typename Rhs, typename Ret >
+struct trait_impl {
+ typedef typename ::boost::remove_reference<Lhs>::type Lhs_noref;
+ typedef typename ::boost::remove_reference<Rhs>::type Rhs_noref;
+ typedef typename ::boost::remove_cv<Lhs_noref>::type Lhs_nocv;
+ typedef typename ::boost::remove_cv<Rhs_noref>::type Rhs_nocv;
+ typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Lhs_noref>::type >::type >::type Lhs_noptr;
+ typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Rhs_noref>::type >::type >::type Rhs_noptr;
+ BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
+};
+
+} // namespace impl
+} // namespace detail
+
+// this is the accessible definition of the trait to end user
+BOOST_TT_AUX_BOOL_TRAIT_DEF3(BOOST_TT_TRAIT_NAME, Lhs, Rhs=Lhs, Ret=::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl < Lhs, Rhs, Ret >::value))
+
+} // namespace boost
+
+#ifdef BOOST_MSVC
+# pragma warning ( pop )
+#endif
+
+#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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,191 @@
+// (C) Copyright 2009-2011 Frederic 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/ice.hpp>
+#include <boost/type_traits/integral_constant.hpp>
+#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/is_fundamental.hpp>
+#include <boost/type_traits/is_pointer.hpp>
+#include <boost/type_traits/is_same.hpp>
+#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 argument-dependent name lookup does not mess things up.
+namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+
+// 1. a function to have an instance of type T without requiring T to be default
+// constructible
+template <typename T> T &make();
+
+
+// 2. checks if the operator returns void or not
+// conditions: Lhs!=void
+
+// we first redefine "operator," so that we have no compilation error if
+// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
+// (lhs BOOST_TT_TRAIT_OP, returns_void_t()) to deduce if
+// operator BOOST_TT_TRAIT_OP returns void or not:
+// - operator BOOST_TT_TRAIT_OP returns void -> (lhs BOOST_TT_TRAIT_OP, returns_void_t()) returns returns_void_t
+// - operator BOOST_TT_TRAIT_OP returns !=void -> (lhs BOOST_TT_TRAIT_OP, returns_void_t()) returns int
+struct returns_void_t { };
+template <typename T> int operator,(const T&, returns_void_t);
+template <typename T> int operator,(const volatile T&, returns_void_t);
+
+// this intermediate trait has member value of type bool:
+// - value==true -> operator BOOST_TT_TRAIT_OP returns void
+// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
+template < typename Lhs >
+struct operator_returns_void {
+ // overloads of function returns_void make the difference
+ // yes_type and no_type have different size by construction
+ static ::boost::type_traits::yes_type returns_void(returns_void_t);
+ static ::boost::type_traits::no_type returns_void(int);
+ BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((make<Lhs>() BOOST_TT_TRAIT_OP,returns_void_t())))));
+ //BOOST_STATIC_CONSTANT(bool, value = (::boost::is_same< bool volatile, Lhs >::value));
+};
+
+
+// 3. checks if the return type is Ret or Ret==dont_care
+// conditions: Lhs!=void
+
+struct dont_care { };
+
+template < typename Lhs, typename Ret, bool Returns_void >
+struct operator_returns_Ret;
+
+template < typename Lhs >
+struct operator_returns_Ret < Lhs, dont_care, true > {
+ BOOST_STATIC_CONSTANT(bool, value = true);
+};
+
+template < typename Lhs >
+struct operator_returns_Ret < Lhs, dont_care, false > {
+ BOOST_STATIC_CONSTANT(bool, value = true);
+};
+
+template < typename Lhs >
+struct operator_returns_Ret < Lhs, void, true > {
+ BOOST_STATIC_CONSTANT(bool, value = true);
+};
+
+template < typename Lhs >
+struct operator_returns_Ret < Lhs, void, false > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+template < typename Lhs, typename Ret >
+struct operator_returns_Ret < Lhs, Ret, true > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+// otherwise checks if it is convertible to Ret using the sizeof trick
+// based on overload resolution
+// condition: Ret!=void and Ret!=dont_care and the operator does not return void
+template < typename Lhs, typename Ret >
+struct operator_returns_Ret < Lhs, Ret, false > {
+ 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
+
+ BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(make<Lhs>() BOOST_TT_TRAIT_OP))==sizeof(::boost::type_traits::yes_type)));
+};
+
+
+// 4. we provide our operator definition for types that do not have one already
+
+// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
+// found in the type's own namespace (our own operator is used) so that we have
+// a means to know that our operator was used
+struct no_operator { };
+
+// this class allows implicit conversions and makes the following operator
+// definition less-preferred than any other such operators that might be found
+// via argument-dependent name lookup
+struct any { template <class T> any(T const&); };
+
+// when operator BOOST_TT_TRAIT_OP is not available, this one is used
+no_operator operator BOOST_TT_TRAIT_OP (const any&, int);
+
+
+// 5. checks for operator existence
+// condition: Lhs!=void
+
+// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
+// existing one;
+// this is done with redefinition of "operator," that returns no_operator or has_operator
+struct has_operator { };
+no_operator operator,(no_operator, has_operator);
+
+template < typename Lhs >
+struct operator_exists {
+ static ::boost::type_traits::yes_type check(has_operator); // this version is preferred when operator exists
+ static ::boost::type_traits::no_type check(no_operator); // this version is used otherwise
+
+ BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((make<Lhs>() BOOST_TT_TRAIT_OP),make<has_operator>())))==sizeof(::boost::type_traits::yes_type)));
+};
+
+
+// 5. main trait: to avoid any compilation error, this class behaves
+// differently when operator BOOST_TT_TRAIT_OP(Lhs) is forbidden by the
+// standard.
+// Forbidden_if is a bool that is:
+// - true when the operator BOOST_TT_TRAIT_OP(Lhs) is forbidden by the standard
+// (would yield compilation error if used)
+// - false otherwise
+template < typename Lhs, typename Ret, bool Forbidden_if >
+struct trait_impl1;
+
+template < typename Lhs, typename Ret >
+struct trait_impl1 < Lhs, Ret, true > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+template < typename Lhs, typename Ret >
+struct trait_impl1 < Lhs, Ret, false > {
+ BOOST_STATIC_CONSTANT(bool,
+ value = (
+ ::boost::type_traits::ice_and<
+ operator_exists < Lhs >::value,
+ operator_returns_Ret < Lhs, Ret, operator_returns_void < Lhs >::value >::value
+ >::value
+ )
+ );
+};
+
+// specialization needs to be declared for the special void case
+template < typename Ret >
+struct trait_impl1 < void, Ret, false > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+// defines some typedef for convenience
+template < typename Lhs, typename Ret >
+struct trait_impl {
+ typedef typename ::boost::remove_reference<Lhs>::type Lhs_noref;
+ typedef typename ::boost::remove_cv<Lhs_noref>::type Lhs_nocv;
+ typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Lhs_noref>::type >::type >::type Lhs_noptr;
+ BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Lhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
+};
+
+} // namespace impl
+} // namespace detail
+
+// this is the accessible definition of the trait to end user
+BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME, Lhs, Ret=::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl< Lhs, 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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,210 @@
+// (C) Copyright 2009-2011 Frederic 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/ice.hpp>
+#include <boost/type_traits/integral_constant.hpp>
+#include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/is_fundamental.hpp>
+#include <boost/type_traits/is_integral.hpp>
+#include <boost/type_traits/is_pointer.hpp>
+#include <boost/type_traits/is_same.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>
+
+// cannot include this header without getting warnings of the kind:
+// gcc:
+// warning: value computed is not used
+// warning: comparison between signed and unsigned integer expressions
+// msvc:
+// warning C4146: unary minus operator applied to unsigned type, result still unsigned
+// warning C4804: '-' : unsafe use of type 'bool' in operation
+// cannot find another implementation -> declared as system header to suppress these warnings.
+#if defined(__GNUC__) && ((__GNUC__==3 && __GNUC_MINOR__>=1) || (__GNUC__>3))
+# pragma GCC system_header
+#elif BOOST_MSVC
+# pragma warning ( push )
+# pragma warning ( disable : 4146 4804 )
+#endif
+
+namespace boost {
+namespace detail {
+
+// This namespace ensures that argument-dependent name lookup does not mess things up.
+namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
+
+// 1. a function to have an instance of type T without requiring T to be default
+// constructible
+template <typename T> T &make();
+
+
+// 2. checks if the operator returns void or not
+// conditions: Rhs!=void
+
+// we first redefine "operator," so that we have no compilation error if
+// operator BOOST_TT_TRAIT_OP returns void and we can use the return type of
+// (BOOST_TT_TRAIT_OP rhs, returns_void_t()) to deduce if
+// operator BOOST_TT_TRAIT_OP returns void or not:
+// - operator BOOST_TT_TRAIT_OP returns void -> (BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns returns_void_t
+// - operator BOOST_TT_TRAIT_OP returns !=void -> (BOOST_TT_TRAIT_OP rhs, returns_void_t()) returns int
+struct returns_void_t { };
+template <typename T> int operator,(const T&, returns_void_t);
+template <typename T> int operator,(const volatile T&, returns_void_t);
+
+// this intermediate trait has member value of type bool:
+// - value==true -> operator BOOST_TT_TRAIT_OP returns void
+// - value==false -> operator BOOST_TT_TRAIT_OP does not return void
+template < typename Rhs >
+struct operator_returns_void {
+ // overloads of function returns_void make the difference
+ // yes_type and no_type have different size by construction
+ static ::boost::type_traits::yes_type returns_void(returns_void_t);
+ static ::boost::type_traits::no_type returns_void(int);
+ BOOST_STATIC_CONSTANT(bool, value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((BOOST_TT_TRAIT_OP make<Rhs>(),returns_void_t())))));
+};
+
+
+// 3. checks if the return type is Ret or Ret==dont_care
+// conditions: Rhs!=void
+
+struct dont_care { };
+
+template < typename Rhs, typename Ret, bool Returns_void >
+struct operator_returns_Ret;
+
+template < typename Rhs >
+struct operator_returns_Ret < Rhs, dont_care, true > {
+ BOOST_STATIC_CONSTANT(bool, value = true);
+};
+
+template < typename Rhs >
+struct operator_returns_Ret < Rhs, dont_care, false > {
+ BOOST_STATIC_CONSTANT(bool, value = true);
+};
+
+template < typename Rhs >
+struct operator_returns_Ret < Rhs, void, true > {
+ BOOST_STATIC_CONSTANT(bool, value = true);
+};
+
+template < typename Rhs >
+struct operator_returns_Ret < Rhs, void, false > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+template < typename Rhs, typename Ret >
+struct operator_returns_Ret < Rhs, Ret, true > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+// otherwise checks if it is convertible to Ret using the sizeof trick
+// based on overload resolution
+// condition: Ret!=void and Ret!=dont_care and the operator does not return void
+template < typename Rhs, typename Ret >
+struct operator_returns_Ret < Rhs, Ret, false > {
+ 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
+
+ BOOST_STATIC_CONSTANT(bool, value = (sizeof(is_convertible_to_Ret(BOOST_TT_TRAIT_OP make<Rhs>()))==sizeof(::boost::type_traits::yes_type)));
+};
+
+
+// 4. we provide our operator definition for types that do not have one already
+
+// a type returned from operator BOOST_TT_TRAIT_OP when no such operator is
+// found in the type's own namespace (our own operator is used) so that we have
+// a means to know that our operator was used
+struct no_operator { };
+
+// this class allows implicit conversions and makes the following operator
+// definition less-preferred than any other such operators that might be found
+// via argument-dependent name lookup
+struct any { template <class T> any(T const&); };
+
+// when operator BOOST_TT_TRAIT_OP is not available, this one is used
+no_operator operator BOOST_TT_TRAIT_OP (const any&);
+
+
+// 5. checks for operator existence
+// condition: Rhs!=void
+
+// checks if our definition of operator BOOST_TT_TRAIT_OP is used or an other
+// existing one;
+// this is done with redefinition of "operator," that returns no_operator or has_operator
+struct has_operator { };
+no_operator operator,(no_operator, has_operator);
+
+template < typename Rhs >
+struct operator_exists {
+ static ::boost::type_traits::yes_type check(has_operator); // this version is preferred when operator exists
+ static ::boost::type_traits::no_type check(no_operator); // this version is used otherwise
+
+ BOOST_STATIC_CONSTANT(bool, value = (sizeof(check(((BOOST_TT_TRAIT_OP make<Rhs>()),make<has_operator>())))==sizeof(::boost::type_traits::yes_type)));
+};
+
+
+// 5. main trait: to avoid any compilation error, this class behaves
+// differently when operator BOOST_TT_TRAIT_OP(Rhs) is forbidden by the
+// standard.
+// Forbidden_if is a bool that is:
+// - true when the operator BOOST_TT_TRAIT_OP(Rhs) is forbidden by the standard
+// (would yield compilation error if used)
+// - false otherwise
+template < typename Rhs, typename Ret, bool Forbidden_if >
+struct trait_impl1;
+
+template < typename Rhs, typename Ret >
+struct trait_impl1 < Rhs, Ret, true > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+template < typename Rhs, typename Ret >
+struct trait_impl1 < Rhs, Ret, false > {
+ BOOST_STATIC_CONSTANT(bool,
+ value = (
+ ::boost::type_traits::ice_and<
+ operator_exists < Rhs >::value,
+ operator_returns_Ret < Rhs, Ret, operator_returns_void < Rhs >::value >::value
+ >::value
+ )
+ );
+};
+
+// specialization needs to be declared for the special void case
+template < typename Ret >
+struct trait_impl1 < void, Ret, false > {
+ BOOST_STATIC_CONSTANT(bool, value = false);
+};
+
+// defines some typedef for convenience
+template < typename Rhs, typename Ret >
+struct trait_impl {
+ typedef typename ::boost::remove_reference<Rhs>::type Rhs_noref;
+ typedef typename ::boost::remove_cv<Rhs_noref>::type Rhs_nocv;
+ typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Rhs_noref>::type >::type >::type Rhs_noptr;
+ BOOST_STATIC_CONSTANT(bool, value = (trait_impl1 < Rhs_noref, Ret, BOOST_TT_FORBIDDEN_IF >::value));
+};
+
+} // namespace impl
+} // namespace detail
+
+// this is the accessible definition of the trait to end user
+BOOST_TT_AUX_BOOL_TRAIT_DEF2(BOOST_TT_TRAIT_NAME, Rhs, Ret=::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::dont_care, (::boost::detail::BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl)::trait_impl < Rhs, Ret >::value))
+
+} // namespace boost
+
+#ifdef BOOST_MSVC
+# pragma warning ( pop )
+#endif
+
+#include <boost/type_traits/detail/bool_trait_undef.hpp>

Deleted: sandbox/type_traits/boost/type_traits/detail/ice_and.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/ice_and.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,35 +0,0 @@
-// (C) Copyright John Maddock and Steve Cleary 2000.
-//
-// 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.
-
-#ifndef BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-namespace type_traits {
-
-template <bool b1, bool b2, bool b3 = true, bool b4 = true, bool b5 = true, bool b6 = true, bool b7 = true>
-struct ice_and;
-
-template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
-struct ice_and
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <>
-struct ice_and<true, true, true, true, true, true, true>
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_AND_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/detail/ice_eq.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/ice_eq.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,36 +0,0 @@
-// (C) Copyright John Maddock and Steve Cleary 2000.
-// 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.
-
-#ifndef BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-namespace type_traits {
-
-template <int b1, int b2>
-struct ice_eq
-{
- BOOST_STATIC_CONSTANT(bool, value = (b1 == b2));
-};
-
-template <int b1, int b2>
-struct ice_ne
-{
- BOOST_STATIC_CONSTANT(bool, value = (b1 != b2));
-};
-
-#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
-template <int b1, int b2> bool const ice_eq<b1,b2>::value;
-template <int b1, int b2> bool const ice_ne<b1,b2>::value;
-#endif
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_EQ_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/detail/ice_not.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/ice_not.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,31 +0,0 @@
-// (C) Copyright John Maddock and Steve Cleary 2000.
-// 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.
-
-#ifndef BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-namespace type_traits {
-
-template <bool b>
-struct ice_not
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template <>
-struct ice_not<true>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_NOT_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/detail/ice_or.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/ice_or.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,34 +0,0 @@
-// (C) Copyright John Maddock and Steve Cleary 2000.
-// 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.
-
-#ifndef BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
-#define BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-namespace boost {
-namespace type_traits {
-
-template <bool b1, bool b2, bool b3 = false, bool b4 = false, bool b5 = false, bool b6 = false, bool b7 = false>
-struct ice_or;
-
-template <bool b1, bool b2, bool b3, bool b4, bool b5, bool b6, bool b7>
-struct ice_or
-{
- BOOST_STATIC_CONSTANT(bool, value = true);
-};
-
-template <>
-struct ice_or<false, false, false, false, false, false, false>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_ICE_OR_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/detail/is_function_ptr_helper.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/is_function_ptr_helper.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,220 +0,0 @@
-
-// Copyright 2000 John Maddock (john_at_[hidden])
-// Copyright 2002 Aleksey Gurtovoy (agurtovoy_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).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/enum_params.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-#endif
-
-namespace boost {
-namespace type_traits {
-
-template <class R>
-struct is_function_ptr_helper
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// preprocessor-generated part, don't edit by hand!
-
-template <class R >
-struct is_function_ptr_helper<R (*)()> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R >
-struct is_function_ptr_helper<R (*)( ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0>
-struct is_function_ptr_helper<R (*)( T0)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0>
-struct is_function_ptr_helper<R (*)( T0 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1>
-struct is_function_ptr_helper<R (*)( T0 , T1)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1>
-struct is_function_ptr_helper<R (*)( T0 , T1 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_function_ptr_helper<R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#else
-
-#undef BOOST_STATIC_CONSTANT
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3, (0, 25, "boost/type_traits/detail/is_function_ptr_helper.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_HELPER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_function_ptr_helper<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T))> { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_function_ptr_helper<R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...)> { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#endif
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING

Deleted: sandbox/type_traits/boost/type_traits/detail/is_function_ptr_tester.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/is_function_ptr_tester.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,654 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
-
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/config.hpp>
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/enum_params.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-#endif
-
-namespace boost {
-namespace type_traits {
-
-// Note it is acceptible to use ellipsis here, since the argument will
-// always be a pointer type of some sort (JM 2005/06/04):
-no_type BOOST_TT_DECL is_function_ptr_tester(...);
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-
-template <class R >
-yes_type is_function_ptr_tester(R (*)());
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R >
-yes_type is_function_ptr_tester(R (*)( ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R >
-yes_type is_function_ptr_tester(R (__stdcall*)());
-template <class R >
-yes_type is_function_ptr_tester(R (__stdcall*)( ...));
-#ifndef _MANAGED
-template <class R >
-yes_type is_function_ptr_tester(R (__fastcall*)());
-template <class R >
-yes_type is_function_ptr_tester(R (__fastcall*)( ...));
-#endif
-template <class R >
-yes_type is_function_ptr_tester(R (__cdecl*)());
-template <class R >
-yes_type is_function_ptr_tester(R (__cdecl*)( ...));
-#endif
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (*)( T0));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (*)( T0 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0));
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 ...));
-#ifndef _MANAGED
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0));
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 ...));
-#endif
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0));
-template <class R , class T0 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 ...));
-#endif
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1));
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1));
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 ...));
-#endif
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1));
-template <class R , class T0 , class T1 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2));
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2));
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2));
-template <class R , class T0 , class T1 , class T2 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3));
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3));
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3));
-template <class R , class T0 , class T1 , class T2 , class T3 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__stdcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-#ifndef _MANAGED
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__fastcall*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-#endif
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-template <class R , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_function_ptr_tester(R (__cdecl*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-#endif
-#else
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3, (0, 25, "boost/type_traits/detail/is_function_ptr_tester.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_IS_FUNCTION_PTR_TESTER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-#undef __stdcall
-#undef __fastcall
-#undef __cdecl
-
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-@#endif
-@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__stdcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-@#ifndef _MANAGED
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__fastcall*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-@#endif
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__cdecl*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-template <class R BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_function_ptr_tester(R (__cdecl*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-@#endif
-
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING

Deleted: sandbox/type_traits/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,817 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/enum_params.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-#endif
-
-namespace boost {
-namespace type_traits {
-
-template <typename T>
-struct is_mem_fun_pointer_impl
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)() const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T >
-struct is_mem_fun_pointer_impl<R (T::*)( ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct is_mem_fun_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-#endif
-#endif
-
-#else
-
-#undef BOOST_STATIC_CONSTANT
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3, (0, 25, "boost/type_traits/detail/is_mem_fun_pointer_impl.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_IMPL_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct is_mem_fun_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { BOOST_STATIC_CONSTANT(bool, value = true); };
-@#endif
-@#endif
-
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING
-

Deleted: sandbox/type_traits/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/is_mem_fun_pointer_tester.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,2759 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-///// header body
-
-#ifndef BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
-#define BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
-
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/config.hpp>
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/enum_params.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-#endif
-
-namespace boost {
-namespace type_traits {
-
-no_type BOOST_TT_DECL is_mem_fun_pointer_tester(...);
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)() const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)() const volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)() const volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( ...) const volatile);
-#endif
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)());
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)() const volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...));
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) const);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) volatile);
-
-template <class R, class T >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( ...) const volatile);
-#endif
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0) const volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0) const volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0) const volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...));
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) const);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) volatile);
-
-template <class R, class T , class T0 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1) const volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1) const volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1) const volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...));
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) const);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) volatile);
-
-template <class R, class T , class T0 , class T1 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile);
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile);
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile);
-#endif
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile);
-
-#ifndef _MANAGED
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile);
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...));
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile);
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24 >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile);
-#endif
-
-#else
-
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3, (0, 25, "boost/type_traits/detail/is_mem_fun_pointer_tester.hpp"))
-#include BOOST_PP_ITERATE()
-
-#endif // BOOST_TT_PREPROCESSING_MODE
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_IS_MEM_FUN_POINTER_TESTER_HPP_INCLUDED
-
-///// iteration
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-#undef __stdcall
-#undef __fastcall
-#undef __cdecl
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
-@#endif
-@#ifdef BOOST_TT_TEST_MS_FUNC_SIGS // Other calling conventions used by MS compatible compilers:
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__stdcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
-
-@#ifndef _MANAGED
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__fastcall T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
-@#endif
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...));
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile);
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T) >
-yes_type is_mem_fun_pointer_tester(R (__cdecl T::*const volatile*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile);
-@#endif
-
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING

Deleted: sandbox/type_traits/boost/type_traits/detail/size_t_trait_def.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/size_t_trait_def.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,58 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-// $Source$
-// $Date$
-// $Revision$
-
-#include <boost/type_traits/detail/template_arity_spec.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-#include <boost/mpl/size_t.hpp>
-
-#include <cstddef>
-
-#if !defined(BOOST_MSVC) || BOOST_MSVC >= 1300
-# define BOOST_TT_AUX_SIZE_T_BASE(C) ::boost::integral_constant<std::size_t,C>
-# define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) /**/
-#else
-# define BOOST_TT_AUX_SIZE_T_BASE(C) ::boost::mpl::size_t<C>
-# define BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
- typedef ::boost::mpl::size_t<C> base_; \
- using base_::value; \
- /**/
-#endif
-
-
-#define BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(trait,T,C) \
-template< typename T > struct trait \
- : BOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
- BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-#define BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1(trait,spec,C) \
-template<> struct trait<spec> \
- : BOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
- BOOST_TT_AUX_SIZE_T_TRAIT_VALUE_DECL(C) \
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,C) \
-template< param > struct trait<spec> \
- : BOOST_TT_AUX_SIZE_T_BASE(C) \
-{ \
-}; \
-/**/

Deleted: sandbox/type_traits/boost/type_traits/detail/size_t_trait_undef.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/size_t_trait_undef.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,16 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-// $Source$
-// $Date$
-// $Revision$
-
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_DEF1
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_SPEC1
-#undef BOOST_TT_AUX_SIZE_T_TRAIT_PARTIAL_SPEC1_1

Deleted: sandbox/type_traits/boost/type_traits/detail/template_arity_spec.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/template_arity_spec.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,31 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/aux_/template_arity_fwd.hpp>
-#include <boost/mpl/aux_/preprocessor/params.hpp>
-#include <boost/mpl/aux_/config/lambda.hpp>
-#include <boost/mpl/aux_/config/overload_resolution.hpp>
-
-#if defined(BOOST_MPL_CFG_NO_FULL_LAMBDA_SUPPORT) \
- && defined(BOOST_MPL_CFG_BROKEN_OVERLOAD_RESOLUTION)
-# define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) \
-namespace mpl { namespace aux { \
-template< BOOST_MPL_PP_PARAMS(i, typename T) > \
-struct template_arity< \
- name< BOOST_MPL_PP_PARAMS(i, T) > \
- > \
- : int_<i> \
-{ \
-}; \
-}} \
-/**/
-#else
-# define BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(i, name) /**/
-#endif

Deleted: sandbox/type_traits/boost/type_traits/detail/type_trait_def.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/type_trait_def.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,61 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-// $Source$
-// $Date$
-// $Revision$
-
-#include <boost/type_traits/detail/template_arity_spec.hpp>
-#include <boost/mpl/aux_/lambda_support.hpp>
-
-#define BOOST_TT_AUX_TYPE_TRAIT_DEF1(trait,T,result) \
-template< typename T > struct trait \
-{ \
- typedef result type; \
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,trait,(T)) \
-}; \
-\
-BOOST_TT_AUX_TEMPLATE_ARITY_SPEC(1,trait) \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_SPEC1(trait,spec,result) \
-template<> struct trait<spec> \
-{ \
- typedef result type; \
- BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(1,trait,(spec)) \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1(trait,spec,result) \
-template<> struct trait##_impl<spec> \
-{ \
- typedef result type; \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(param,trait,spec,result) \
-template< param > struct trait<spec> \
-{ \
- typedef result type; \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(param1,param2,trait,spec,result) \
-template< param1, param2 > struct trait<spec> \
-{ \
- typedef result; \
-}; \
-/**/
-
-#define BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1(param,trait,spec,result) \
-template< param > struct trait##_impl<spec> \
-{ \
- typedef result type; \
-}; \
-/**/

Deleted: sandbox/type_traits/boost/type_traits/detail/type_trait_undef.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/type_trait_undef.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,19 +0,0 @@
-
-// NO INCLUDE GUARDS, THE HEADER IS INTENDED FOR MULTIPLE INCLUSION
-
-// Copyright Aleksey Gurtovoy 2002-2004
-//
-// 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)
-
-// $Source$
-// $Date$
-// $Revision$
-
-#undef BOOST_TT_AUX_TYPE_TRAIT_DEF1
-#undef BOOST_TT_AUX_TYPE_TRAIT_SPEC1
-#undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_SPEC1
-#undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1
-#undef BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2
-#undef BOOST_TT_AUX_TYPE_TRAIT_IMPL_PARTIAL_SPEC1_1

Deleted: sandbox/type_traits/boost/type_traits/detail/wrap.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/wrap.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,18 +0,0 @@
-// (C) Copyright David Abrahams 2002.
-// 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.
-
-#ifndef BOOST_TT_DETAIL_WRAP_HPP_INCLUDED
-#define BOOST_TT_DETAIL_WRAP_HPP_INCLUDED
-
-namespace boost {
-namespace type_traits {
-
-template <class T> struct wrap {};
-
-}} // namespace boost::type_traits
-
-#endif // BOOST_TT_DETAIL_WRAP_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/detail/yes_no_type.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/detail/yes_no_type.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,26 +0,0 @@
-
-// (C) Copyright John Maddock and Steve Cleary 2000.
-// 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.
-//
-// macros and helpers for working with integral-constant-expressions.
-
-#ifndef BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
-#define BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED
-
-namespace boost {
-namespace type_traits {
-
-typedef char yes_type;
-struct no_type
-{
- char padding[8];
-};
-
-} // namespace type_traits
-} // namespace boost
-
-#endif // BOOST_TT_DETAIL_YES_NO_TYPE_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/extent.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/extent.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,134 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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.
-
-
-#ifndef BOOST_TT_EXTENT_HPP_INCLUDED
-#define BOOST_TT_EXTENT_HPP_INCLUDED
-
-// should be the last #include
-#include <boost/type_traits/detail/size_t_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <class T, std::size_t N>
-struct extent_imp
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T const[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T volatile[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct extent_imp<T const volatile[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T[R],0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T const[R], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T volatile[R], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-template <class T, std::size_t R>
-struct extent_imp<T const volatile[R], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = R);
-};
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840)) && !defined(__MWERKS__)
-template <class T, std::size_t N>
-struct extent_imp<T[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T, std::size_t N>
-struct extent_imp<T const[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T, std::size_t N>
-struct extent_imp<T volatile[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T, std::size_t N>
-struct extent_imp<T const volatile[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::extent_imp<T, N-1>::value));
-};
-template <class T>
-struct extent_imp<T[], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T const[], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T volatile[], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-template <class T>
-struct extent_imp<T const volatile[], 0>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = 0);
-};
-#endif
-#endif
-}
-
-template <class T, std::size_t N = 0>
-struct extent
- : public ::boost::integral_constant<std::size_t, ::boost::detail::extent_imp<T,N>::value>
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
- typedef ::boost::integral_constant<std::size_t, ::boost::detail::extent_imp<T,N>::value> base_;
- using base_::value;
-#endif
- BOOST_MPL_AUX_LAMBDA_SUPPORT(1,extent,(T))
-};
-
-} // namespace boost
-
-#include <boost/type_traits/detail/size_t_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/floating_point_promotion.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/floating_point_promotion.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,91 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// 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)
-
-#ifndef FILE_boost_type_traits_floating_point_promotion_hpp_INCLUDED
-#define FILE_boost_type_traits_floating_point_promotion_hpp_INCLUDED
-
-#include <boost/config.hpp>
-
-#ifdef BOOST_NO_CV_SPECIALIZATIONS
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/int.hpp>
-#include <boost/mpl/multiplies.hpp>
-#include <boost/mpl/plus.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/type_traits/is_same.hpp>
-#endif
-
-// Should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace type_traits { namespace detail {
-
-#ifndef BOOST_NO_CV_SPECIALIZATIONS
-
-template<class T>
-struct floating_point_promotion
-{
- typedef T type;
-};
-
-template<>
-struct floating_point_promotion<float>
-{
- typedef double type;
-};
-
-template<>
-struct floating_point_promotion<float const>
-{
- typedef double const type;
-};
-
-template<>
-struct floating_point_promotion<float volatile>
-{
- typedef double volatile type;
-};
-
-template<>
-struct floating_point_promotion<float const volatile>
-{
- typedef double const volatile type;
-};
-
-#else
-
-template<class T>
-struct floating_point_promotion
- : mpl::at<
- mpl::vector< T, double, double const, double volatile,
- double const volatile >
- , mpl::plus<
- is_same<T, float>
- , mpl::multiplies< is_same<T, float const> , mpl::int_<2> >
- , mpl::multiplies< is_same<T, float volatile> , mpl::int_<3> >
- , mpl::multiplies< is_same<T, float const volatile>, mpl::int_<4> >
- >
- >
-{
-};
-
-#endif
-
-} }
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(
- floating_point_promotion
- , T
- , BOOST_DEDUCED_TYPENAME
- boost::type_traits::detail::floating_point_promotion<T>::type
- )
-}
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // #ifndef FILE_boost_type_traits_floating_point_promotion_hpp_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/function_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/function_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,236 +0,0 @@
-
-// Copyright 2000 John Maddock (john_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).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
-#define BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/type_traits/is_function.hpp>
-#include <boost/type_traits/add_pointer.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-namespace detail {
-
-template<typename Function> struct function_traits_helper;
-
-template<typename R>
-struct function_traits_helper<R (*)(void)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 0);
- typedef R result_type;
-};
-
-template<typename R, typename T1>
-struct function_traits_helper<R (*)(T1)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 1);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T1 argument_type;
-};
-
-template<typename R, typename T1, typename T2>
-struct function_traits_helper<R (*)(T1, T2)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 2);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T1 first_argument_type;
- typedef T2 second_argument_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3>
-struct function_traits_helper<R (*)(T1, T2, T3)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 3);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4>
-struct function_traits_helper<R (*)(T1, T2, T3, T4)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 4);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 5);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 6);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
- typedef T6 arg6_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 7);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
- typedef T6 arg6_type;
- typedef T7 arg7_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 8);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
- typedef T6 arg6_type;
- typedef T7 arg7_type;
- typedef T8 arg8_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8, typename T9>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 9);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
- typedef T6 arg6_type;
- typedef T7 arg7_type;
- typedef T8 arg8_type;
- typedef T9 arg9_type;
-};
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8, typename T9,
- typename T10>
-struct function_traits_helper<R (*)(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)>
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = 10);
- typedef R result_type;
- typedef T1 arg1_type;
- typedef T2 arg2_type;
- typedef T3 arg3_type;
- typedef T4 arg4_type;
- typedef T5 arg5_type;
- typedef T6 arg6_type;
- typedef T7 arg7_type;
- typedef T8 arg8_type;
- typedef T9 arg9_type;
- typedef T10 arg10_type;
-};
-
-} // end namespace detail
-
-template<typename Function>
-struct function_traits :
- public detail::function_traits_helper<typename boost::add_pointer<Function>::type>
-{
-};
-
-#else
-
-namespace detail {
-
-template<unsigned N>
-struct type_of_size
-{
- char elements[N];
-};
-
-template<typename R>
-type_of_size<1> function_arity_helper(R (*f)());
-
-template<typename R, typename T1>
-type_of_size<2> function_arity_helper(R (*f)(T1));
-
-template<typename R, typename T1, typename T2>
-type_of_size<3> function_arity_helper(R (*f)(T1, T2));
-
-template<typename R, typename T1, typename T2, typename T3>
-type_of_size<4> function_arity_helper(R (*f)(T1, T2, T3));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4>
-type_of_size<5> function_arity_helper(R (*f)(T1, T2, T3, T4));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5>
-type_of_size<6> function_arity_helper(R (*f)(T1, T2, T3, T4, T5));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6>
-type_of_size<7> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7>
-type_of_size<8> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8>
-type_of_size<9> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8, typename T9>
-type_of_size<10> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8,
- T9));
-
-template<typename R, typename T1, typename T2, typename T3, typename T4,
- typename T5, typename T6, typename T7, typename T8, typename T9,
- typename T10>
-type_of_size<11> function_arity_helper(R (*f)(T1, T2, T3, T4, T5, T6, T7, T8,
- T9, T10));
-} // end namespace detail
-
-// Won't work with references
-template<typename Function>
-struct function_traits
-{
- BOOST_STATIC_CONSTANT(unsigned, arity = (sizeof(detail::function_arity_helper((Function*)0))-1));
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-}
-
-#endif // BOOST_TT_FUNCTION_TRAITS_HPP_INCLUDED

Added: sandbox/type_traits/boost/type_traits/has_bit_and.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_bit_and.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_BIT_AND_HPP_INCLUDED
+#define BOOST_TT_HAS_BIT_AND_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_bit_and
+#define BOOST_TT_TRAIT_OP &
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_bit_and_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_bit_and_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,55 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED
+#define BOOST_TT_HAS_BIT_AND_ASSIGN_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_bit_and_assign
+#define BOOST_TT_TRAIT_OP &=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_const< Lhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_bit_or.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_bit_or.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_BIT_OR_HPP_INCLUDED
+#define BOOST_TT_HAS_BIT_OR_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_bit_or
+#define BOOST_TT_TRAIT_OP |
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_bit_or_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_bit_or_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,55 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED
+#define BOOST_TT_HAS_BIT_OR_ASSIGN_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_bit_or_assign
+#define BOOST_TT_TRAIT_OP |=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_const< Lhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_bit_xor.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_bit_xor.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_BIT_XOR_HPP_INCLUDED
+#define BOOST_TT_HAS_BIT_XOR_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_bit_xor
+#define BOOST_TT_TRAIT_OP ^
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_bit_xor_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_bit_xor_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,55 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED
+#define BOOST_TT_HAS_BIT_XOR_ASSIGN_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_bit_xor_assign
+#define BOOST_TT_TRAIT_OP ^=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_const< Lhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_complement.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_complement.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,32 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED
+#define BOOST_TT_HAS_COMPLEMENT_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_complement
+#define BOOST_TT_TRAIT_OP ~
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* pointer */\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ /* fundamental non integral */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_noref >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_dereference.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_dereference.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,31 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED
+#define BOOST_TT_HAS_DEREFERENCE_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_dereference
+#define BOOST_TT_TRAIT_OP *
+#define BOOST_TT_FORBIDDEN_IF\
+ /* void* or fundamental */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_void< Rhs_noptr >::value\
+ >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_divides.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_divides.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,40 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_DIVIDES_HPP_INCLUDED
+#define BOOST_TT_HAS_DIVIDES_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_divides
+#define BOOST_TT_TRAIT_OP /
+#define BOOST_TT_FORBIDDEN_IF\
+ /* pointer with pointer or fundamental */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_divides_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_divides_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,47 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED
+#define BOOST_TT_HAS_DIVIDES_ASSIGN_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_divides_assign
+#define BOOST_TT_TRAIT_OP /=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Lhs==const and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_const< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Lhs==pointer and (Rhs==fundamental or Rhs==pointer) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value,\
+ /* Rhs==pointer and (Lhs==fundamental or Lhs==pointer) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_equal_to.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_equal_to.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED
+#define BOOST_TT_HAS_EQUAL_TO_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_equal_to
+#define BOOST_TT_TRAIT_OP ==
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==pointer and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Rhs==pointer and Lhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
+ ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_void< Lhs_noptr >::value,\
+ ::boost::is_void< Rhs_noptr >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_greater.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_greater.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_GREATER_HPP_INCLUDED
+#define BOOST_TT_HAS_GREATER_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_greater
+#define BOOST_TT_TRAIT_OP >
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==pointer and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Rhs==pointer and Lhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
+ ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_void< Lhs_noptr >::value,\
+ ::boost::is_void< Rhs_noptr >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_greater_equal.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_greater_equal.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED
+#define BOOST_TT_HAS_GREATER_EQUAL_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_greater_equal
+#define BOOST_TT_TRAIT_OP >=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==pointer and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Rhs==pointer and Lhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
+ ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_void< Lhs_noptr >::value,\
+ ::boost::is_void< Rhs_noptr >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_left_shift.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_left_shift.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
+#define BOOST_TT_HAS_LEFT_SHIFT_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_left_shift
+#define BOOST_TT_TRAIT_OP <<
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_left_shift_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_left_shift_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,55 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
+#define BOOST_TT_HAS_LEFT_SHIFT_ASSIGN_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_left_shift_assign
+#define BOOST_TT_TRAIT_OP <<=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_const< Lhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_less.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_less.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_LESS_HPP_INCLUDED
+#define BOOST_TT_HAS_LESS_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_less
+#define BOOST_TT_TRAIT_OP <
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==pointer and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Rhs==pointer and Lhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
+ ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_void< Lhs_noptr >::value,\
+ ::boost::is_void< Rhs_noptr >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_less_equal.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_less_equal.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED
+#define BOOST_TT_HAS_LESS_EQUAL_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_less_equal
+#define BOOST_TT_TRAIT_OP <=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==pointer and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Rhs==pointer and Lhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
+ ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_void< Lhs_noptr >::value,\
+ ::boost::is_void< Rhs_noptr >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_logical_and.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_logical_and.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,40 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED
+#define BOOST_TT_HAS_LOGICAL_AND_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_logical_and
+#define BOOST_TT_TRAIT_OP &&
+#define BOOST_TT_FORBIDDEN_IF\
+ /* pointer with fundamental non convertible to bool */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_convertible< Rhs_nocv, bool >::value >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_convertible< Lhs_nocv, bool >::value >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_logical_not.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_logical_not.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,23 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED
+#define BOOST_TT_HAS_LOGICAL_NOT_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_logical_not
+#define BOOST_TT_TRAIT_OP !
+#define BOOST_TT_FORBIDDEN_IF\
+ false
+
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_logical_or.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_logical_or.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,40 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED
+#define BOOST_TT_HAS_LOGICAL_OR_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_logical_or
+#define BOOST_TT_TRAIT_OP ||
+#define BOOST_TT_FORBIDDEN_IF\
+ /* pointer with fundamental non convertible to bool */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_convertible< Rhs_nocv, bool >::value >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_convertible< Lhs_nocv, bool >::value >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_minus.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_minus.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,60 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_MINUS_HPP_INCLUDED
+#define BOOST_TT_HAS_MINUS_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_minus
+#define BOOST_TT_TRAIT_OP -
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value,\
+ /* Lhs==void* and (Rhs==fundamental or Rhs==pointer) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_void< Lhs_noptr >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value,\
+ /* Rhs==void* and (Lhs==fundamental or Lhs==pointer) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_void< Rhs_noptr >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value\
+ >::value,\
+ /* Lhs=fundamental and Rhs=pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* two different pointers */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_same< Lhs_nocv, Rhs_nocv >::value >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_minus_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_minus_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,65 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED
+#define BOOST_TT_HAS_MINUS_ASSIGN_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_minus_assign
+#define BOOST_TT_TRAIT_OP -=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value,\
+ /* Lhs==void* and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_void< Lhs_noptr >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Rhs==void* and Lhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_void< Rhs_noptr >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value\
+ >::value,\
+ /* Lhs=fundamental and Rhs=pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* (Lhs==fundamental or Lhs==pointer) and (Rhs==fundamental or Rhs==pointer) and (Lhs==const) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ ::boost::is_const< Lhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_modulus.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_modulus.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_MODULUS_HPP_INCLUDED
+#define BOOST_TT_HAS_MODULUS_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_modulus
+#define BOOST_TT_TRAIT_OP %
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_modulus_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_modulus_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,55 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED
+#define BOOST_TT_HAS_MODULUS_ASSIGN_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_modulus_assign
+#define BOOST_TT_TRAIT_OP %=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_const< Lhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_multiplies.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_multiplies.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,40 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED
+#define BOOST_TT_HAS_MULTIPLIES_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_multiplies
+#define BOOST_TT_TRAIT_OP *
+#define BOOST_TT_FORBIDDEN_IF\
+ /* pointer with pointer or fundamental */\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value,\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_multiplies_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_multiplies_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,47 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED
+#define BOOST_TT_HAS_MULTIPLIES_ASSIGN_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_multiplies_assign
+#define BOOST_TT_TRAIT_OP *=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Lhs==const and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_const< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Lhs==pointer and (Rhs==fundamental or Rhs==pointer) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value,\
+ /* Rhs==pointer and (Lhs==fundamental or Lhs==pointer) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_negate.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_negate.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,25 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_NEGATE_HPP_INCLUDED
+#define BOOST_TT_HAS_NEGATE_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_negate
+#define BOOST_TT_TRAIT_OP -
+#define BOOST_TT_FORBIDDEN_IF\
+ /* pointer */\
+ ::boost::is_pointer< Rhs_noref >::value
+
+
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_not_equal_to.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_not_equal_to.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED
+#define BOOST_TT_HAS_NOT_EQUAL_TO_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_not_equal_to
+#define BOOST_TT_TRAIT_OP !=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==pointer and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Rhs==pointer and Lhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer and Lhs!=base(Rhs) and Rhs!=base(Lhs) and Lhs!=void* and Rhs!=void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::type_traits::ice_not<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_base_of< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_base_of< Rhs_noptr, Lhs_noptr >::value,\
+ ::boost::is_same< Lhs_noptr, Rhs_noptr >::value,\
+ ::boost::is_void< Lhs_noptr >::value,\
+ ::boost::is_void< Rhs_noptr >::value\
+ >::value\
+ >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Deleted: sandbox/type_traits/boost/type_traits/has_nothrow_assign.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_nothrow_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,38 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED
-
-#include <boost/type_traits/has_trivial_assign.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_assign_imp{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::has_trivial_assign<T>::value,
- BOOST_HAS_NOTHROW_ASSIGN(T)
- >::value));
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_assign,T,::boost::detail::has_nothrow_assign_imp<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_NOTHROW_ASSIGN_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/has_nothrow_constructor.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_nothrow_constructor.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,39 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/has_trivial_constructor.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_constructor_imp{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::has_trivial_constructor<T>::value,
- BOOST_HAS_NOTHROW_CONSTRUCTOR(T)
- >::value));
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_constructor,T,::boost::detail::has_nothrow_constructor_imp<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_default_constructor,T,::boost::detail::has_nothrow_constructor_imp<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_NOTHROW_CONSTRUCTOR_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/has_nothrow_copy.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_nothrow_copy.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,39 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED
-
-#include <boost/type_traits/has_trivial_copy.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <class T>
-struct has_nothrow_copy_imp{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::has_trivial_copy<T>::value,
- BOOST_HAS_NOTHROW_COPY(T)
- >::value));
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy,T,::boost::detail::has_nothrow_copy_imp<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_copy_constructor,T,::boost::detail::has_nothrow_copy_imp<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_NOTHROW_COPY_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/has_nothrow_destructor.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_nothrow_destructor.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,25 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/has_trivial_destructor.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_nothrow_destructor,T,::boost::has_trivial_destructor<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_NOTHROW_DESTRUCTOR_HPP_INCLUDED

Added: sandbox/type_traits/boost/type_traits/has_operator.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_operator.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,51 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_OPERATOR_HPP_INCLUDED
+#define BOOST_TT_HAS_OPERATOR_HPP_INCLUDED
+
+#include <boost/type_traits/has_bit_and.hpp>
+#include <boost/type_traits/has_bit_and_assign.hpp>
+#include <boost/type_traits/has_bit_or.hpp>
+#include <boost/type_traits/has_bit_or_assign.hpp>
+#include <boost/type_traits/has_bit_xor.hpp>
+#include <boost/type_traits/has_bit_xor_assign.hpp>
+#include <boost/type_traits/has_complement.hpp>
+#include <boost/type_traits/has_dereference.hpp>
+#include <boost/type_traits/has_divides.hpp>
+#include <boost/type_traits/has_divides_assign.hpp>
+#include <boost/type_traits/has_equal_to.hpp>
+#include <boost/type_traits/has_greater.hpp>
+#include <boost/type_traits/has_greater_equal.hpp>
+#include <boost/type_traits/has_left_shift.hpp>
+#include <boost/type_traits/has_left_shift_assign.hpp>
+#include <boost/type_traits/has_less.hpp>
+#include <boost/type_traits/has_less_equal.hpp>
+#include <boost/type_traits/has_logical_and.hpp>
+#include <boost/type_traits/has_logical_not.hpp>
+#include <boost/type_traits/has_logical_or.hpp>
+#include <boost/type_traits/has_minus.hpp>
+#include <boost/type_traits/has_minus_assign.hpp>
+#include <boost/type_traits/has_modulus.hpp>
+#include <boost/type_traits/has_modulus_assign.hpp>
+#include <boost/type_traits/has_multiplies.hpp>
+#include <boost/type_traits/has_multiplies_assign.hpp>
+#include <boost/type_traits/has_negate.hpp>
+#include <boost/type_traits/has_not_equal_to.hpp>
+#include <boost/type_traits/has_plus.hpp>
+#include <boost/type_traits/has_plus_assign.hpp>
+#include <boost/type_traits/has_post_decrement.hpp>
+#include <boost/type_traits/has_post_increment.hpp>
+#include <boost/type_traits/has_pre_decrement.hpp>
+#include <boost/type_traits/has_pre_increment.hpp>
+#include <boost/type_traits/has_right_shift.hpp>
+#include <boost/type_traits/has_right_shift_assign.hpp>
+#include <boost/type_traits/has_unary_minus.hpp>
+#include <boost/type_traits/has_unary_plus.hpp>
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_plus.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_plus.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,54 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_PLUS_HPP_INCLUDED
+#define BOOST_TT_HAS_PLUS_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_plus
+#define BOOST_TT_TRAIT_OP +
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Lhs==void* and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_void< Lhs_noptr >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Rhs==void* and Lhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_void< Rhs_noptr >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value,\
+ /* Rhs==pointer and Lhs==fundamental and Lhs!=integral */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_plus_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_plus_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,66 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED
+#define BOOST_TT_HAS_PLUS_ASSIGN_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_plus_assign
+#define BOOST_TT_TRAIT_OP +=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Lhs==void* and Rhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_void< Lhs_noptr >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value\
+ >::value,\
+ /* Rhs==void* and Lhs==fundamental */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_void< Rhs_noptr >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==fundamental and Rhs!=integral */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value,\
+ /* Rhs==pointer and Lhs==fundamental and Lhs!=bool */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_same< Lhs_nocv, bool >::value >::value\
+ >::value,\
+ /* (Lhs==fundamental or Lhs==pointer) and (Rhs==fundamental or Rhs==pointer) and (Lhs==const) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ ::boost::is_const< Lhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_post_decrement.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_post_decrement.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,40 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED
+#define BOOST_TT_HAS_POST_DECREMENT_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_post_decrement
+#define BOOST_TT_TRAIT_OP --
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* bool */\
+ ::boost::is_same< bool, Lhs_nocv >::value,\
+ /* void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_void< Lhs_noptr >::value\
+ >::value,\
+ /* (fundamental or pointer) and const */\
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ ::boost::is_const< Lhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_postfix_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_post_increment.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_post_increment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,38 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED
+#define BOOST_TT_HAS_POST_INCREMENT_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_post_increment
+#define BOOST_TT_TRAIT_OP ++
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_void< Lhs_noptr >::value\
+ >::value,\
+ /* (fundamental or pointer) and const */\
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ ::boost::is_const< Lhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_postfix_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_pre_decrement.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_pre_decrement.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,40 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED
+#define BOOST_TT_HAS_PRE_DECREMENT_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_pre_decrement
+#define BOOST_TT_TRAIT_OP --
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* bool */\
+ ::boost::is_same< bool, Rhs_nocv >::value,\
+ /* void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_void< Rhs_noptr >::value\
+ >::value,\
+ /* (fundamental or pointer) and const */\
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ ::boost::is_const< Rhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_pre_increment.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_pre_increment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,38 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED
+#define BOOST_TT_HAS_PRE_INCREMENT_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_pre_increment
+#define BOOST_TT_TRAIT_OP ++
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* void* */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Rhs_noref >::value,\
+ ::boost::is_void< Rhs_noptr >::value\
+ >::value,\
+ /* (fundamental or pointer) and const */\
+ ::boost::type_traits::ice_and<\
+ ::boost::type_traits::ice_or<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ ::boost::is_const< Rhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_right_shift.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_right_shift.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
+#define BOOST_TT_HAS_RIGHT_SHIFT_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_right_shift
+#define BOOST_TT_TRAIT_OP >>
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_right_shift_assign.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_right_shift_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,55 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED
+#define BOOST_TT_HAS_RIGHT_SHIFT_ASSIGN_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_right_shift_assign
+#define BOOST_TT_TRAIT_OP >>=
+#define BOOST_TT_FORBIDDEN_IF\
+ ::boost::type_traits::ice_or<\
+ /* Lhs==fundamental and Rhs==fundamental and (Lhs!=integral or Rhs!=integral) */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::type_traits::ice_or<\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Lhs_noref >::value >::value,\
+ ::boost::type_traits::ice_not< ::boost::is_integral< Rhs_noref >::value >::value\
+ >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Rhs==fundamental and Lhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_pointer< Lhs_noref >::value\
+ >::value,\
+ /* Lhs==pointer and Rhs==pointer */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_pointer< Lhs_noref >::value,\
+ ::boost::is_pointer< Rhs_noref >::value\
+ >::value,\
+ /* Lhs==fundamental and Rhs==fundamental and Lhs==const */\
+ ::boost::type_traits::ice_and<\
+ ::boost::is_fundamental< Lhs_nocv >::value,\
+ ::boost::is_fundamental< Rhs_nocv >::value,\
+ ::boost::is_const< Lhs_noref >::value\
+ >::value\
+ >::value
+
+
+#include <boost/type_traits/detail/has_binary_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Deleted: sandbox/type_traits/boost/type_traits/has_trivial_assign.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_trivial_assign.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,50 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_assign_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_ASSIGN(T)
- >::value,
- ::boost::type_traits::ice_not< ::boost::is_const<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_assign,T,::boost::detail::has_trivial_assign_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_TRIVIAL_ASSIGN_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/has_trivial_constructor.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_trivial_constructor.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,43 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_ctor_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_CONSTRUCTOR(T)
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_constructor,T,::boost::detail::has_trivial_ctor_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_default_constructor,T,::boost::detail::has_trivial_ctor_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_TRIVIAL_CONSTRUCTOR_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/has_trivial_copy.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_trivial_copy.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_copy_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_COPY(T)
- >::value,
- ::boost::type_traits::ice_not< ::boost::is_volatile<T>::value >::value
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy,T,::boost::detail::has_trivial_copy_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_copy_constructor,T,::boost::detail::has_trivial_copy_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_TRIVIAL_COPY_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/has_trivial_destructor.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_trivial_destructor.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,42 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct has_trivial_dtor_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_pod<T>::value,
- BOOST_HAS_TRIVIAL_DESTRUCTOR(T)
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_trivial_destructor,T,::boost::detail::has_trivial_dtor_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_HAS_TRIVIAL_DESTRUCTOR_HPP_INCLUDED

Added: sandbox/type_traits/boost/type_traits/has_unary_minus.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_unary_minus.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,25 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED
+#define BOOST_TT_HAS_UNARY_MINUS_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_unary_minus
+#define BOOST_TT_TRAIT_OP -
+#define BOOST_TT_FORBIDDEN_IF\
+ /* pointer */\
+ ::boost::is_pointer< Rhs_noref >::value
+
+
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Added: sandbox/type_traits/boost/type_traits/has_unary_plus.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/boost/type_traits/has_unary_plus.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,23 @@
+// (C) Copyright 2009-2011 Frederic 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.
+
+#ifndef BOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED
+#define BOOST_TT_HAS_UNARY_PLUS_HPP_INCLUDED
+
+#define BOOST_TT_TRAIT_NAME has_unary_plus
+#define BOOST_TT_TRAIT_OP +
+#define BOOST_TT_FORBIDDEN_IF\
+ false
+
+#include <boost/type_traits/detail/has_prefix_operator.hpp>
+
+#undef BOOST_TT_TRAIT_NAME
+#undef BOOST_TT_TRAIT_OP
+#undef BOOST_TT_FORBIDDEN_IF
+
+#endif

Deleted: sandbox/type_traits/boost/type_traits/has_virtual_destructor.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/has_virtual_destructor.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,25 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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.
-
-
-#ifndef BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED
-#define BOOST_TT_HAS_VIRTUAL_DESTRUCTOR_HPP_INCLUDED
-
-#include <boost/type_traits/intrinsics.hpp>
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(has_virtual_destructor,T,BOOST_HAS_VIRTUAL_DESTRUCTOR(T))
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/ice.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/ice.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,20 +0,0 @@
-
-// (C) Copyright John Maddock and Steve Cleary 2000.
-// 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.
-//
-// macros and helpers for working with integral-constant-expressions.
-
-#ifndef BOOST_TT_ICE_HPP_INCLUDED
-#define BOOST_TT_ICE_HPP_INCLUDED
-
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/type_traits/detail/ice_eq.hpp>
-
-#endif // BOOST_TT_ICE_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/integral_constant.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/integral_constant.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,53 +0,0 @@
-// (C) Copyright John Maddock 2005.
-// 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)
-
-#ifndef BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
-#define BOOST_TYPE_TRAITS_INTEGRAL_CONSTANT_HPP
-
-#include <boost/config.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/integral_c.hpp>
-
-namespace boost{
-
-#if defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) || defined(__BORLANDC__)
-template <class T, int val>
-#else
-template <class T, T val>
-#endif
-struct integral_constant : public mpl::integral_c<T, val>
-{
- typedef integral_constant<T,val> type;
-};
-
-template<> struct integral_constant<bool,true> : public mpl::true_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-# pragma warning(push)
-# pragma warning(disable:4097)
- typedef mpl::true_ base_;
- using base_::value;
-# pragma warning(pop)
-#endif
- typedef integral_constant<bool,true> type;
-};
-template<> struct integral_constant<bool,false> : public mpl::false_
-{
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
-# pragma warning(push)
-# pragma warning(disable:4097)
- typedef mpl::false_ base_;
- using base_::value;
-# pragma warning(pop)
-#endif
- typedef integral_constant<bool,false> type;
-};
-
-typedef integral_constant<bool,true> true_type;
-typedef integral_constant<bool,false> false_type;
-
-}
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/integral_promotion.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/integral_promotion.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,195 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// 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)
-
-#ifndef FILE_boost_type_traits_integral_promotion_hpp_INCLUDED
-#define FILE_boost_type_traits_integral_promotion_hpp_INCLUDED
-
-#include <boost/config.hpp>
-
-#include <boost/mpl/eval_if.hpp>
-#include <boost/mpl/identity.hpp>
-#include <boost/type_traits/integral_constant.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-
-// Should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace type_traits { namespace detail {
-
-// 4.5/2
-template <class T> struct need_promotion : boost::is_enum<T> {};
-
-// 4.5/1
-template<> struct need_promotion<char > : true_type {};
-template<> struct need_promotion<signed char > : true_type {};
-template<> struct need_promotion<unsigned char > : true_type {};
-template<> struct need_promotion<signed short int > : true_type {};
-template<> struct need_promotion<unsigned short int> : true_type {};
-
-
-// Specializations for non-standard types.
-// Type is promoted if it's smaller then int.
-
-#define BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(T) \
- template<> struct need_promotion<T> \
- : integral_constant<bool, (sizeof(T) < sizeof(int))> {};
-
-// Same set of integral types as in boost/type_traits/is_integral.hpp.
-// Please, keep in sync.
-#if (defined(BOOST_MSVC) && (BOOST_MSVC < 1300)) \
- || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
- || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300))
-// TODO: common macro for this #if. Or better yet, PP SEQ of non-standard types.
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int8 )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int8 )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int16 )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int16)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(__int32 )
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int32)
-#ifdef __BORLANDC__
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE( __int64)
-#endif
-#endif
-
-#if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(boost::ulong_long_type)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(boost::long_long_type )
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE(unsigned __int64)
-BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE( __int64)
-#endif
-
-#undef BOOST_TT_AUX_PROMOTE_NONSTANDARD_TYPE
-
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-// 4.5/2
-template<> struct need_promotion<wchar_t> : true_type {};
-#endif
-
-// 4.5/3 (integral bit-field) is not supported.
-
-// 4.5/4
-template<> struct need_promotion<bool> : true_type {};
-
-
-// Get promoted type by index and cv qualifiers.
-
-template<int Index, int IsConst, int IsVolatile> struct promote_from_index;
-
-#define BOOST_TT_AUX_PROMOTE_FROM_INDEX(N,T) \
- template<> struct promote_from_index<N,0,0> { typedef T type; }; \
- template<> struct promote_from_index<N,0,1> { typedef T volatile type; }; \
- template<> struct promote_from_index<N,1,0> { typedef T const type; }; \
- template<> struct promote_from_index<N,1,1> { typedef T const volatile type; };
-
-
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(1, int )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(2, unsigned int )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(3, long )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(4, unsigned long)
-
-
-// WARNING: integral promotions to non-standard types
-// long long and __int64 are not defined by the standard.
-// Additional specialisations and overloads shouldn't
-// introduce ambiguity, though.
-
-#if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(5, boost::long_long_type )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(6, boost::ulong_long_type)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(7, __int64 )
-BOOST_TT_AUX_PROMOTE_FROM_INDEX(8, unsigned __int64)
-#endif
-
-#undef BOOST_TT_AUX_PROMOTE_FROM_INDEX
-
-
-// Define BOOST_TT_AUX_PROMOTED_INDEX_TESTER:
-#if !defined(BOOST_MSVC)
-
-template<int N>
-struct sized_type_for_promotion
-{
- typedef char (&type)[N];
-};
-
-#define BOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \
- sized_type_for_promotion<I>::type promoted_index_tester(T);
-
-#else
-
-#define BOOST_TT_AUX_PROMOTED_INDEX_TESTER(I,T) \
- char (&promoted_index_tester(T))[I];
-
-#endif
-
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(1, int )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(2, unsigned int )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(3, long )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(4, unsigned long)
-
-#if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(5, boost::long_long_type )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(6, boost::ulong_long_type)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(7, __int64 )
-BOOST_TT_AUX_PROMOTED_INDEX_TESTER(8, unsigned __int64)
-#endif
-
-#undef BOOST_TT_AUX_PROMOTED_INDEX_TESTER
-
-
-// Get an index of promoted type for type T.
-// Precondition: need_promotion<T>
-template<class T>
-struct promoted_index
-{
- static T testee; // undefined
- BOOST_STATIC_CONSTANT(int, value = sizeof(promoted_index_tester(+testee)) );
- // Unary plus promotes testee LOOK HERE ---> ^
-};
-
-template<class T>
-struct integral_promotion_impl
-{
- typedef BOOST_DEDUCED_TYPENAME promote_from_index<
- (boost::type_traits::detail::promoted_index<T>::value)
- , (boost::is_const<T>::value)
- , (boost::is_volatile<T>::value)
- >::type type;
-};
-
-template<class T>
-struct integral_promotion
- : boost::mpl::eval_if<
- need_promotion<BOOST_DEDUCED_TYPENAME remove_cv<T>::type>
- , integral_promotion_impl<T>
- , boost::mpl::identity<T>
- >
-{
-};
-
-} }
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(
- integral_promotion
- , T
- , BOOST_DEDUCED_TYPENAME
- boost::type_traits::detail::integral_promotion<T>::type
- )
-}
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // #ifndef FILE_boost_type_traits_integral_promotion_hpp_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/intrinsics.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/intrinsics.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,205 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_INTRINSICS_HPP_INCLUDED
-#define BOOST_TT_INTRINSICS_HPP_INCLUDED
-
-#ifndef BOOST_TT_CONFIG_HPP_INCLUDED
-#include <boost/type_traits/config.hpp>
-#endif
-
-//
-// Helper macros for builtin compiler support.
-// If your compiler has builtin support for any of the following
-// traits concepts, then redefine the appropriate macros to pick
-// up on the compiler support:
-//
-// (these should largely ignore cv-qualifiers)
-// BOOST_IS_UNION(T) should evaluate to true if T is a union type
-// BOOST_IS_POD(T) should evaluate to true if T is a POD type
-// BOOST_IS_EMPTY(T) should evaluate to true if T is an empty struct or union
-// BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) should evaluate to true if "T x;" has no effect
-// BOOST_HAS_TRIVIAL_COPY(T) should evaluate to true if T(t) <==> memcpy
-// BOOST_HAS_TRIVIAL_ASSIGN(T) should evaluate to true if t = u <==> memcpy
-// BOOST_HAS_TRIVIAL_DESTRUCTOR(T) should evaluate to true if ~T() has no effect
-// BOOST_HAS_NOTHROW_CONSTRUCTOR(T) should evaluate to true if "T x;" can not throw
-// BOOST_HAS_NOTHROW_COPY(T) should evaluate to true if T(t) can not throw
-// BOOST_HAS_NOTHROW_ASSIGN(T) should evaluate to true if t = u can not throw
-// BOOST_HAS_VIRTUAL_DESTRUCTOR(T) should evaluate to true T has a virtual destructor
-//
-// The following can also be defined: when detected our implementation is greatly simplified.
-// Note that unlike the macros above these do not have default definitions, so we can use
-// #ifdef MACRONAME to detect when these are available.
-//
-// BOOST_IS_ABSTRACT(T) true if T is an abstract type
-// BOOST_IS_BASE_OF(T,U) true if T is a base class of U
-// BOOST_IS_CLASS(T) true if T is a class type
-// BOOST_IS_CONVERTIBLE(T,U) true if T is convertible to U
-// BOOST_IS_ENUM(T) true is T is an enum
-// BOOST_IS_POLYMORPHIC(T) true if T is a polymorphic type
-// BOOST_ALIGNMENT_OF(T) should evaluate to the alignment requirements of type T.
-
-#ifdef BOOST_HAS_SGI_TYPE_TRAITS
- // Hook into SGI's __type_traits class, this will pick up user supplied
- // specializations as well as SGI - compiler supplied specializations.
-# include <boost/type_traits/is_same.hpp>
-# ifdef __NetBSD__
- // There are two different versions of type_traits.h on NetBSD on Spark
- // use an implicit include via algorithm instead, to make sure we get
- // the same version as the std lib:
-# include <algorithm>
-# else
-# include <type_traits.h>
-# endif
-# define BOOST_IS_POD(T) ::boost::is_same< typename ::__type_traits<T>::is_POD_type, ::__true_type>::value
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_default_constructor, ::__true_type>::value
-# define BOOST_HAS_TRIVIAL_COPY(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_copy_constructor, ::__true_type>::value
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_assignment_operator, ::__true_type>::value
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) ::boost::is_same< typename ::__type_traits<T>::has_trivial_destructor, ::__true_type>::value
-
-# ifdef __sgi
-# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-# endif
-#endif
-
-#if defined(__MSL_CPP__) && (__MSL_CPP__ >= 0x8000)
- // Metrowerks compiler is acquiring intrinsic type traits support
- // post version 8. We hook into the published interface to pick up
- // user defined specializations as well as compiler intrinsics as
- // and when they become available:
-# include <msl_utility>
-# define BOOST_IS_UNION(T) BOOST_STD_EXTENSION_NAMESPACE::is_union<T>::value
-# define BOOST_IS_POD(T) BOOST_STD_EXTENSION_NAMESPACE::is_POD<T>::value
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_default_ctor<T>::value
-# define BOOST_HAS_TRIVIAL_COPY(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_copy_ctor<T>::value
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_assignment<T>::value
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) BOOST_STD_EXTENSION_NAMESPACE::has_trivial_dtor<T>::value
-# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if defined(BOOST_MSVC) && defined(_MSC_FULL_VER) && (_MSC_FULL_VER >=140050215)
-# include <boost/type_traits/is_same.hpp>
-
-# define BOOST_IS_UNION(T) __is_union(T)
-# define BOOST_IS_POD(T) (__is_pod(T) && __has_trivial_constructor(T))
-# define BOOST_IS_EMPTY(T) __is_empty(T)
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-# define BOOST_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T)
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
-# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
-# define BOOST_HAS_NOTHROW_COPY(T) __has_nothrow_copy(T)
-# define BOOST_HAS_NOTHROW_ASSIGN(T) __has_nothrow_assign(T)
-# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
-
-# define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
-# define BOOST_IS_CLASS(T) __is_class(T)
-// This one doesn't quite always do the right thing:
-// # define BOOST_IS_CONVERTIBLE(T,U) __is_convertible_to(T,U)
-# define BOOST_IS_ENUM(T) __is_enum(T)
-// This one doesn't quite always do the right thing:
-// # define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-# define BOOST_ALIGNMENT_OF(T) __alignof(T)
-
-# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if defined(__DMC__) && (__DMC__ >= 0x848)
-// For Digital Mars C++, www.digitalmars.com
-# define BOOST_IS_UNION(T) (__typeinfo(T) & 0x400)
-# define BOOST_IS_POD(T) (__typeinfo(T) & 0x800)
-# define BOOST_IS_EMPTY(T) (__typeinfo(T) & 0x1000)
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) (__typeinfo(T) & 0x10)
-# define BOOST_HAS_TRIVIAL_COPY(T) (__typeinfo(T) & 0x20)
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) (__typeinfo(T) & 0x40)
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) (__typeinfo(T) & 0x8)
-# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) (__typeinfo(T) & 0x80)
-# define BOOST_HAS_NOTHROW_COPY(T) (__typeinfo(T) & 0x100)
-# define BOOST_HAS_NOTHROW_ASSIGN(T) (__typeinfo(T) & 0x200)
-# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) (__typeinfo(T) & 0x4)
-# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)))
-# include <boost/type_traits/is_same.hpp>
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_volatile.hpp>
-
-# define BOOST_IS_UNION(T) __is_union(T)
-# define BOOST_IS_POD(T) __is_pod(T)
-# define BOOST_IS_EMPTY(T) __is_empty(T)
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T)
-# define BOOST_HAS_TRIVIAL_COPY(T) (__has_trivial_copy(T) && !is_reference<T>::value)
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T)
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T)
-# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) __has_nothrow_constructor(T)
-# define BOOST_HAS_NOTHROW_COPY(T) (__has_nothrow_copy(T) && !is_volatile<T>::value && !is_reference<T>::value)
-# define BOOST_HAS_NOTHROW_ASSIGN(T) (__has_nothrow_assign(T) && !is_volatile<T>::value)
-# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) __has_virtual_destructor(T)
-
-# define BOOST_IS_ABSTRACT(T) __is_abstract(T)
-# define BOOST_IS_BASE_OF(T,U) (__is_base_of(T,U) && !is_same<T,U>::value)
-# define BOOST_IS_CLASS(T) __is_class(T)
-# define BOOST_IS_ENUM(T) __is_enum(T)
-# define BOOST_IS_POLYMORPHIC(T) __is_polymorphic(T)
-# define BOOST_ALIGNMENT_OF(T) __alignof__(T)
-
-# define BOOST_HAS_TYPE_TRAITS_INTRINSICS
-#endif
-
-#ifndef BOOST_IS_UNION
-# define BOOST_IS_UNION(T) false
-#endif
-
-#ifndef BOOST_IS_POD
-# define BOOST_IS_POD(T) false
-#endif
-
-#ifndef BOOST_IS_EMPTY
-# define BOOST_IS_EMPTY(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_CONSTRUCTOR
-# define BOOST_HAS_TRIVIAL_CONSTRUCTOR(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_COPY
-# define BOOST_HAS_TRIVIAL_COPY(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_ASSIGN
-# define BOOST_HAS_TRIVIAL_ASSIGN(T) false
-#endif
-
-#ifndef BOOST_HAS_TRIVIAL_DESTRUCTOR
-# define BOOST_HAS_TRIVIAL_DESTRUCTOR(T) false
-#endif
-
-#ifndef BOOST_HAS_NOTHROW_CONSTRUCTOR
-# define BOOST_HAS_NOTHROW_CONSTRUCTOR(T) false
-#endif
-
-#ifndef BOOST_HAS_NOTHROW_COPY
-# define BOOST_HAS_NOTHROW_COPY(T) false
-#endif
-
-#ifndef BOOST_HAS_NOTHROW_ASSIGN
-# define BOOST_HAS_NOTHROW_ASSIGN(T) false
-#endif
-
-#ifndef BOOST_HAS_VIRTUAL_DESTRUCTOR
-# define BOOST_HAS_VIRTUAL_DESTRUCTOR(T) false
-#endif
-
-#endif // BOOST_TT_INTRINSICS_HPP_INCLUDED
-
-
-
-
-

Deleted: sandbox/type_traits/boost/type_traits/is_abstract.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_abstract.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,153 +0,0 @@
-#ifndef BOOST_TT_IS_ABSTRACT_CLASS_HPP
-#define BOOST_TT_IS_ABSTRACT_CLASS_HPP
-
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
-/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
-// is_abstract_class.hpp:
-//
-// (C) Copyright 2002 Rani Sharoni (rani_sharoni_at_[hidden]) and Robert Ramey
-// Use, modification and distribution is 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 for updates, documentation, and revision history.
-//
-
-// Compile type discovery whether given type is abstract class or not.
-//
-// Requires DR 337 to be supported by compiler
-// (http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_active.html#337).
-//
-//
-// Believed (Jan 2004) to work on:
-// - GCC 3.4
-// - VC++ 7.1
-// - compilers with new EDG frontend (Intel C++ 7, Comeau 4.3.2)
-//
-// Doesn't work on:
-// - VC++6, VC++7.0 and less
-// - GCC 3.3.X and less
-// - Borland C++ 6 and less
-//
-//
-// History:
-// - Originally written by Rani Sharoni, see
-// http://groups.google.com/groups?selm=df893da6.0207110613.75b2fe90%40posting.google.com
-// At this time supported by EDG (Intel C++ 7, Comeau 4.3.2) and VC7.1.
-// - Adapted and added into Boost.Serialization library by Robert Ramey
-// (starting with submission #10).
-// - Jan 2004: GCC 3.4 fixed to suport DR337 (Giovanni Bajo).
-// - Jan 2004: modified to be part of Boost.TypeTraits (Pavel Vozenilek).
-// - Nov 2004: Christoph Ludwig found that the implementation did not work with
-// template types and gcc-3.4 or VC7.1, fix due to Christoph Ludwig
-// and John Maddock.
-// - Dec 2004: Added new config macro BOOST_NO_IS_ABSTRACT which causes the template
-// to degrade gracefully, rather than trash the compiler (John Maddock).
-//
-
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_ABSTRACT
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#ifdef BOOST_NO_IS_ABSTRACT
-#include <boost/type_traits/is_polymorphic.hpp>
-#endif
-#endif
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-
-namespace boost {
-namespace detail{
-
-#ifdef BOOST_IS_ABSTRACT
-template <class T>
-struct is_abstract_imp
-{
- BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_ABSTRACT(T));
-};
-#elif !defined(BOOST_NO_IS_ABSTRACT)
-template<class T>
-struct is_abstract_imp2
-{
- // Deduction fails if T is void, function type,
- // reference type (14.8.2/2)or an abstract class type
- // according to review status issue #337
- //
- template<class U>
- static type_traits::no_type check_sig(U (*)[1]);
- template<class U>
- static type_traits::yes_type check_sig(...);
- //
- // T must be a complete type, further if T is a template then
- // it must be instantiated in order for us to get the right answer:
- //
- BOOST_STATIC_ASSERT(sizeof(T) != 0);
-
- // GCC2 won't even parse this template if we embed the computation
- // of s1 in the computation of value.
-#ifdef __GNUC__
- BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(is_abstract_imp2<T>::template check_sig<T>(0)));
-#else
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
-#pragma warning(push)
-#pragma warning(disable:6334)
-#endif
- BOOST_STATIC_CONSTANT(unsigned, s1 = sizeof(check_sig<T>(0)));
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
-#pragma warning(pop)
-#endif
-#endif
-
- BOOST_STATIC_CONSTANT(bool, value =
- (s1 == sizeof(type_traits::yes_type)));
-};
-
-template <bool v>
-struct is_abstract_select
-{
- template <class T>
- struct rebind
- {
- typedef is_abstract_imp2<T> type;
- };
-};
-template <>
-struct is_abstract_select<false>
-{
- template <class T>
- struct rebind
- {
- typedef false_type type;
- };
-};
-
-template <class T>
-struct is_abstract_imp
-{
- typedef is_abstract_select< ::boost::is_class<T>::value> selector;
- typedef typename selector::template rebind<T> binder;
- typedef typename binder::type type;
-
- BOOST_STATIC_CONSTANT(bool, value = type::value);
-};
-
-#endif
-}
-
-#ifndef BOOST_NO_IS_ABSTRACT
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::boost::detail::is_abstract_imp<T>::value)
-#else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_abstract,T,::boost::detail::is_polymorphic_imp<T>::value)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif //BOOST_TT_IS_ABSTRACT_CLASS_HPP

Deleted: sandbox/type_traits/boost/type_traits/is_arithmetic.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_arithmetic.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,43 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
-#define BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED
-
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_float.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template< typename T >
-struct is_arithmetic_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_integral<T>::value,
- ::boost::is_float<T>::value
- >::value));
-};
-
-} // namespace detail
-
-//* is a type T an arithmetic type described in the standard (3.9.1p8)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_arithmetic,T,::boost::detail::is_arithmetic_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_ARITHMETIC_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_array.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_array.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,90 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-// Some fixes for is_array are based on a newgroup posting by Jonathan Lundquist.
-
-
-#ifndef BOOST_TT_IS_ARRAY_HPP_INCLUDED
-#define BOOST_TT_IS_ARRAY_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include <boost/type_traits/detail/yes_no_type.hpp>
-# include <boost/type_traits/detail/wrap.hpp>
-#endif
-
-#include <cstddef>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,false)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T volatile[N],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,is_array,T const volatile[N],true)
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T volatile[],true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_array,T const volatile[],true)
-#endif
-#endif
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-using ::boost::type_traits::wrap;
-
-template< typename T > T(* is_array_tester1(wrap<T>) )(wrap<T>);
-char BOOST_TT_DECL is_array_tester1(...);
-
-template< typename T> no_type is_array_tester2(T(*)(wrap<T>));
-yes_type BOOST_TT_DECL is_array_tester2(...);
-
-template< typename T >
-struct is_array_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(::boost::detail::is_array_tester2(
- ::boost::detail::is_array_tester1(
- ::boost::type_traits::wrap<T>()
- )
- )) == 1
- );
-};
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_array,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_array,T,::boost::detail::is_array_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_ARRAY_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_class.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_class.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,139 +0,0 @@
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000-2003.
-// 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.
-
-
-#ifndef BOOST_TT_IS_CLASS_HPP_INCLUDED
-#define BOOST_TT_IS_CLASS_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_CLASS
-# include <boost/type_traits/is_union.hpp>
-# include <boost/type_traits/detail/ice_and.hpp>
-# include <boost/type_traits/detail/ice_not.hpp>
-
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-# include <boost/type_traits/detail/yes_no_type.hpp>
-#else
-# include <boost/type_traits/is_scalar.hpp>
-# include <boost/type_traits/is_array.hpp>
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_void.hpp>
-# include <boost/type_traits/is_function.hpp>
-#endif
-
-#ifdef __EDG_VERSION__
-# include <boost/type_traits/remove_cv.hpp>
-#endif
-#endif // BOOST_IS_CLASS
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-#ifndef BOOST_IS_CLASS
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-
-// This is actually the conforming implementation which works with
-// abstract classes. However, enough compilers have trouble with
-// it that most will use the one in
-// boost/type_traits/object_traits.hpp. This implementation
-// actually works with VC7.0, but other interactions seem to fail
-// when we use it.
-
-// is_class<> metafunction due to Paul Mensonides
-// (leavings_at_[hidden]). For more details:
-// http://groups.google.com/groups?hl=en&selm=000001c1cc83%24e154d5e0%247772e50c%40c161550a&rnum=1
-#if defined(__GNUC__) && !defined(__EDG_VERSION__)
-
-template <class U> ::boost::type_traits::yes_type is_class_tester(void(U::*)(void));
-template <class U> ::boost::type_traits::no_type is_class_tester(...);
-
-template <typename T>
-struct is_class_impl
-{
-
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- sizeof(is_class_tester<T>(0)) == sizeof(::boost::type_traits::yes_type),
- ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value
- >::value)
- );
-};
-
-#else
-
-template <typename T>
-struct is_class_impl
-{
- template <class U> static ::boost::type_traits::yes_type is_class_tester(void(U::*)(void));
- template <class U> static ::boost::type_traits::no_type is_class_tester(...);
-
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- sizeof(is_class_tester<T>(0)) == sizeof(::boost::type_traits::yes_type),
- ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value
- >::value)
- );
-};
-
-#endif
-
-#else
-
-template <typename T>
-struct is_class_impl
-{
-# ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_scalar<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_function<T>::value >::value
- >::value));
-# else
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_union<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_scalar<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value
- >::value));
-# endif
-};
-
-# endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-# else // BOOST_IS_CLASS
-template <typename T>
-struct is_class_impl
-{
- BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_CLASS(T));
-};
-# endif // BOOST_IS_CLASS
-
-} // namespace detail
-
-# ifdef __EDG_VERSION__
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
- is_class,T, boost::detail::is_class_impl<typename boost::remove_cv<T>::type>::value)
-# else
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_class,T,::boost::detail::is_class_impl<T>::value)
-# endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_CLASS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_complex.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_complex.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,34 +0,0 @@
-// (C) Copyright John Maddock 2007.
-// 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.
-
-#ifndef BOOST_TT_IS_COMPLEX_HPP
-#define BOOST_TT_IS_COMPLEX_HPP
-
-#include <boost/type_traits/is_convertible.hpp>
-#include <complex>
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-
-namespace boost {
-namespace detail{
-
-struct is_convertible_from_tester
-{
- template <class T>
- is_convertible_from_tester(const std::complex<T>&);
-};
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_complex,T,(::boost::is_convertible<T, detail::is_convertible_from_tester>::value))
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif //BOOST_TT_IS_COMPLEX_HPP

Deleted: sandbox/type_traits/boost/type_traits/is_compound.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_compound.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_COMPOUND_HPP_INCLUDED
-#define BOOST_TT_IS_COMPOUND_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/type_traits/is_fundamental.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_compound_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_not<
- ::boost::is_fundamental<T>::value
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_compound,T,::boost::detail::is_compound_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_COMPOUND_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_const.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_const.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,142 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_CONST_HPP_INCLUDED
-#define BOOST_TT_IS_CONST_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include <boost/type_traits/detail/cv_traits_impl.hpp>
-# ifdef __GNUC__
-# include <boost/type_traits/is_reference.hpp>
-# endif
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
-# include <boost/type_traits/remove_bounds.hpp>
-# endif
-#else
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_array.hpp>
-# include <boost/type_traits/detail/yes_no_type.hpp>
-# include <boost/type_traits/detail/false_result.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-//* is a type T declared const - is_const<T>
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
- BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::cv_traits_imp<typename remove_bounds<T>::type*>::is_const)
-#else
- BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::cv_traits_imp<T*>::is_const)
-#endif
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T&,false)
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T& const volatile,false)
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ < 3)
-// special case for gcc where illegally cv-qualified reference types can be
-// generated in some corner cases:
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T const,!(::boost::is_reference<T>::value))
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_const,T volatile const,!(::boost::is_reference<T>::value))
-#endif
-
-#else
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-
-yes_type is_const_tester(const volatile void*);
-no_type is_const_tester(volatile void *);
-
-template <bool is_ref, bool array>
-struct is_const_helper
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_const_helper<false,false>
-{
- template <typename T> struct result_
- {
- static T* t;
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(detail::yes_type) == sizeof(detail::is_const_tester(t))
- ));
- };
-};
-
-template <>
-struct is_const_helper<false,true>
-{
- template <typename T> struct result_
- {
- static T t;
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(detail::yes_type) == sizeof(detail::is_const_tester(&t))
- ));
- };
-};
-
-template <typename T>
-struct is_const_impl
- : is_const_helper<
- is_reference<T>::value
- , is_array<T>::value
- >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_const,void const volatile,true)
-#endif
-
-} // namespace detail
-
-//* is a type T declared const - is_const<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_const,T,::boost::detail::is_const_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_CONST_HPP_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/is_convertible.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_convertible.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,430 +0,0 @@
-
-// Copyright 2000 John Maddock (john_at_[hidden])
-// Copyright 2000 Jeremy Siek (jsiek_at_[hidden])
-// Copyright 1999, 2000 Jaakko Jarvi (jaakko.jarvi_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).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
-#define BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED
-
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_CONVERTIBLE
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/is_array.hpp>
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/type_traits/ice.hpp>
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_void.hpp>
-#ifndef BOOST_NO_IS_ABSTRACT
-#include <boost/type_traits/is_abstract.hpp>
-#endif
-
-#if defined(__MWERKS__)
-#include <boost/type_traits/is_function.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-#endif
-
-#endif // BOOST_IS_CONVERTIBLE
-
-// should be always the last #include directive
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_IS_CONVERTIBLE
-
-// is one type convertable to another?
-//
-// there are multiple versions of the is_convertible
-// template, almost every compiler seems to require its
-// own version.
-//
-// Thanks to Andrei Alexandrescu for the original version of the
-// conversion detection technique!
-//
-
-namespace detail {
-
-// MS specific version:
-
-#if defined(BOOST_MSVC) && (BOOST_MSVC <= 1300)
-
-// This workaround is necessary to handle when From is void
-// which is normally taken care of by the partial specialization
-// of the is_convertible typename.
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-
-template< typename From >
-struct does_conversion_exist
-{
- template< typename To > struct result_
- {
- static no_type BOOST_TT_DECL _m_check(...);
- static yes_type BOOST_TT_DECL _m_check(To);
- static From _m_from;
- enum { value = sizeof( _m_check(_m_from) ) == sizeof(yes_type) };
- };
-};
-
-template<>
-struct does_conversion_exist<void>
-{
- template< typename To > struct result_
- {
- enum { value = ::boost::is_void<To>::value };
- };
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
- : does_conversion_exist<From>::template result_<To>
-{
-};
-
-#elif defined(__BORLANDC__) && (__BORLANDC__ < 0x560)
-//
-// special version for Borland compilers
-// this version breaks when used for some
-// UDT conversions:
-//
-template <typename From, typename To>
-struct is_convertible_impl
-{
-#pragma option push -w-8074
- // This workaround for Borland breaks the EDG C++ frontend,
- // so we only use it for Borland.
- template <typename T> struct checker
- {
- static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
- static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(T);
- };
-
- static From _m_from;
- static bool const value = sizeof( checker<To>::_m_check(_m_from) )
- == sizeof(::boost::type_traits::yes_type);
-#pragma option pop
-};
-
-#elif defined(__GNUC__) || defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-// special version for gcc compiler + recent Borland versions
-// note that this does not pass UDT's through (...)
-
-struct any_conversion
-{
- template <typename T> any_conversion(const volatile T&);
- template <typename T> any_conversion(T&);
-};
-
-template <typename T> struct checker
-{
- static boost::type_traits::no_type _m_check(any_conversion ...);
- static boost::type_traits::yes_type _m_check(T, int);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
- static From _m_from;
- static bool const value = sizeof( detail::checker<To>::_m_check(_m_from, 0) )
- == sizeof(::boost::type_traits::yes_type);
-};
-
-#elif (defined(__EDG_VERSION__) && (__EDG_VERSION__ >= 245) && !defined(__ICL)) \
- || defined(__IBMCPP__) || defined(__HP_aCC)
-//
-// This is *almost* an ideal world implementation as it doesn't rely
-// on undefined behaviour by passing UDT's through (...).
-// Unfortunately it doesn't quite pass all the tests for most compilers (sigh...)
-// Enable this for your compiler if is_convertible_test.cpp will compile it...
-//
-// Note we do not enable this for VC7.1, because even though it passes all the
-// type_traits tests it is known to cause problems when instantiation occurs
-// deep within the instantiation tree :-(
-//
-struct any_conversion
-{
- template <typename T> any_conversion(const volatile T&);
- // we need this constructor to catch references to functions
- // (which can not be cv-qualified):
- template <typename T> any_conversion(T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
- static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
- static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
- static From _m_from;
-
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type)
- );
-};
-
-#elif defined(__DMC__)
-
-struct any_conversion
-{
- template <typename T> any_conversion(const volatile T&);
- // we need this constructor to catch references to functions
- // (which can not be cv-qualified):
- template <typename T> any_conversion(T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
- // Using '...' doesn't always work on Digital Mars. This version seems to.
- template <class T>
- static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion, float, T);
- static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int, int);
- static From _m_from;
-
- // Static constants sometime cause the conversion of _m_from to To to be
- // called. This doesn't happen with an enum.
- enum { value =
- sizeof( _m_check(_m_from, 0, 0) ) == sizeof(::boost::type_traits::yes_type)
- };
-};
-
-#elif defined(__MWERKS__)
-//
-// CW works with the technique implemented above for EDG, except when From
-// is a function type (or a reference to such a type), in which case
-// any_conversion won't be accepted as a valid conversion. We detect this
-// exceptional situation and channel it through an alternative algorithm.
-//
-
-template <typename From, typename To,bool FromIsFunctionRef>
-struct is_convertible_basic_impl_aux;
-
-struct any_conversion
-{
- template <typename T> any_conversion(const volatile T&);
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl_aux<From,To,false /*FromIsFunctionRef*/>
-{
- static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(any_conversion ...);
- static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To, int);
- static From _m_from;
-
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof( _m_check(_m_from, 0) ) == sizeof(::boost::type_traits::yes_type)
- );
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl_aux<From,To,true /*FromIsFunctionRef*/>
-{
- static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
- static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
- static From _m_from;
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type)
- );
-};
-
-template <typename From, typename To>
-struct is_convertible_basic_impl:
- is_convertible_basic_impl_aux<
- From,To,
- ::boost::is_function<typename ::boost::remove_reference<From>::type>::value
- >
-{};
-
-#else
-
-//
-// This version seems to work pretty well for a wide spectrum of compilers,
-// however it does rely on undefined behaviour by passing UDT's through (...).
-//
-template <typename From, typename To>
-struct is_convertible_basic_impl
-{
- static ::boost::type_traits::no_type BOOST_TT_DECL _m_check(...);
- static ::boost::type_traits::yes_type BOOST_TT_DECL _m_check(To);
- static From _m_from;
-#ifdef BOOST_MSVC
-#pragma warning(push)
-#pragma warning(disable:4244)
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
-#pragma warning(disable:6334)
-#endif
-#endif
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof( _m_check(_m_from) ) == sizeof(::boost::type_traits::yes_type)
- );
-#ifdef BOOST_MSVC
-#pragma warning(pop)
-#endif
-};
-
-#endif // is_convertible_impl
-
-#if defined(__DMC__)
-// As before, a static constant sometimes causes errors on Digital Mars.
-template <typename From, typename To>
-struct is_convertible_impl
-{
- typedef typename add_reference<From>::type ref_type;
- enum { value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_or<
- ::boost::detail::is_convertible_basic_impl<ref_type,To>::value,
- ::boost::is_void<To>::value
- >::value,
- ::boost::type_traits::ice_not<
- ::boost::is_array<To>::value
- >::value
- >::value) };
-};
-#elif !defined(__BORLANDC__) || __BORLANDC__ > 0x551
-template <typename From, typename To>
-struct is_convertible_impl
-{
- typedef typename add_reference<From>::type ref_type;
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_or<
- ::boost::detail::is_convertible_basic_impl<ref_type,To>::value,
- ::boost::is_void<To>::value
- >::value,
- ::boost::type_traits::ice_not<
- ::boost::is_array<To>::value
- >::value
- >::value)
- );
-};
-#endif
-
-template <bool trivial1, bool trivial2, bool abstract_target>
-struct is_convertible_impl_select
-{
- template <class From, class To>
- struct rebind
- {
- typedef is_convertible_impl<From, To> type;
- };
-};
-
-template <>
-struct is_convertible_impl_select<true, true, false>
-{
- template <class From, class To>
- struct rebind
- {
- typedef true_type type;
- };
-};
-
-template <>
-struct is_convertible_impl_select<false, false, true>
-{
- template <class From, class To>
- struct rebind
- {
- typedef false_type type;
- };
-};
-
-template <>
-struct is_convertible_impl_select<true, false, true>
-{
- template <class From, class To>
- struct rebind
- {
- typedef false_type type;
- };
-};
-
-template <typename From, typename To>
-struct is_convertible_impl_dispatch_base
-{
-#if !BOOST_WORKAROUND(__HP_aCC, < 60700)
- typedef is_convertible_impl_select<
- ::boost::is_arithmetic<From>::value,
- ::boost::is_arithmetic<To>::value,
-#ifndef BOOST_NO_IS_ABSTRACT
- ::boost::is_abstract<To>::value
-#else
- false
-#endif
- > selector;
-#else
- typedef is_convertible_impl_select<false, false, false> selector;
-#endif
- typedef typename selector::template rebind<From, To> isc_binder;
- typedef typename isc_binder::type type;
-};
-
-template <typename From, typename To>
-struct is_convertible_impl_dispatch
- : public is_convertible_impl_dispatch_base<From, To>::type
-{};
-
-//
-// Now add the full and partial specialisations
-// for void types, these are common to all the
-// implementation above:
-//
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-# define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,value) \
- BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2,value) \
- BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const,value) \
- BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 volatile,value) \
- BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(trait,spec1,spec2 const volatile,value) \
- /**/
-
-# define TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2(trait,spec1,spec2,value) \
- TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1,spec2,value) \
- TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 const,spec2,value) \
- TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 volatile,spec2,value) \
- TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1(trait,spec1 const volatile,spec2,value) \
- /**/
-
- TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2(is_convertible,void,void,true)
-
-# undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2
-# undef TT_AUX_BOOL_CV_VOID_TRAIT_SPEC2_PART1
-
-#else
- BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC2(is_convertible,void,void,true)
-#endif // BOOST_NO_CV_VOID_SPECIALIZATIONS
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void,true)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void volatile,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename To,is_convertible,void const volatile,To,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_PARTIAL_SPEC2_1(typename From,is_convertible,From,void const volatile,true)
-#endif
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,(::boost::detail::is_convertible_impl_dispatch<From,To>::value))
-
-#else
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_convertible,From,To,BOOST_IS_CONVERTIBLE(From,To))
-
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_CONVERTIBLE_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_empty.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_empty.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,211 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_EMPTY_HPP_INCLUDED
-#define BOOST_TT_IS_EMPTY_HPP_INCLUDED
-
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include <boost/type_traits/remove_cv.hpp>
-# include <boost/type_traits/is_class.hpp>
-# include <boost/type_traits/add_reference.hpp>
-#else
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_pointer.hpp>
-# include <boost/type_traits/is_member_pointer.hpp>
-# include <boost/type_traits/is_array.hpp>
-# include <boost/type_traits/is_void.hpp>
-# include <boost/type_traits/detail/ice_and.hpp>
-# include <boost/type_traits/detail/ice_not.hpp>
-#endif
-
-// should be always the last #include directive
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <typename T>
-struct empty_helper_t1 : public T
-{
- empty_helper_t1(); // hh compiler bug workaround
- int i[256];
-private:
- // suppress compiler warnings:
- empty_helper_t1(const empty_helper_t1&);
- empty_helper_t1& operator=(const empty_helper_t1&);
-};
-
-struct empty_helper_t2 { int i[256]; };
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-
-template <typename T, bool is_a_class = false>
-struct empty_helper
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <typename T>
-struct empty_helper<T, true>
-{
- BOOST_STATIC_CONSTANT(
- bool, value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2))
- );
-};
-
-template <typename T>
-struct is_empty_impl
-{
- typedef typename remove_cv<T>::type cvt;
- BOOST_STATIC_CONSTANT(
- bool, value = (
- ::boost::type_traits::ice_or<
- ::boost::detail::empty_helper<cvt,::boost::is_class<T>::value>::value
- , BOOST_IS_EMPTY(cvt)
- >::value
- ));
-};
-
-#else // __BORLANDC__
-
-template <typename T, bool is_a_class, bool convertible_to_int>
-struct empty_helper
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <typename T>
-struct empty_helper<T, true, false>
-{
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)
- ));
-};
-
-template <typename T>
-struct is_empty_impl
-{
- typedef typename remove_cv<T>::type cvt;
- typedef typename add_reference<T>::type r_type;
-
- BOOST_STATIC_CONSTANT(
- bool, value = (
- ::boost::type_traits::ice_or<
- ::boost::detail::empty_helper<
- cvt
- , ::boost::is_class<T>::value
- , ::boost::is_convertible< r_type,int>::value
- >::value
- , BOOST_IS_EMPTY(cvt)
- >::value));
-};
-
-#endif // __BORLANDC__
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-#ifdef BOOST_MSVC6_MEMBER_TEMPLATES
-
-template <typename T>
-struct empty_helper_t1 : public T
-{
- empty_helper_t1();
- int i[256];
-};
-
-struct empty_helper_t2 { int i[256]; };
-
-template <typename T>
-struct empty_helper_base
-{
- enum { value = (sizeof(empty_helper_t1<T>) == sizeof(empty_helper_t2)) };
-};
-
-template <typename T>
-struct empty_helper_nonbase
-{
- enum { value = false };
-};
-
-template <bool base>
-struct empty_helper_chooser
-{
- template <typename T> struct result_
- {
- typedef empty_helper_nonbase<T> type;
- };
-};
-
-template <>
-struct empty_helper_chooser<true>
-{
- template <typename T> struct result_
- {
- typedef empty_helper_base<T> type;
- };
-};
-
-template <typename T>
-struct is_empty_impl
-{
- typedef ::boost::detail::empty_helper_chooser<
- ::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_convertible<T,double>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_pointer<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_member_pointer<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_array<T>::value >::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value >::value,
- ::boost::type_traits::ice_not<
- ::boost::is_convertible<T,void const volatile*>::value
- >::value
- >::value > chooser;
-
- typedef typename chooser::template result_<T> result;
- typedef typename result::type eh_type;
-
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<eh_type::value, BOOST_IS_EMPTY(T)>::value));
-};
-
-#else
-
-template <typename T> struct is_empty_impl
-{
- BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_EMPTY(T));
-};
-
-#endif // BOOST_MSVC6_MEMBER_TEMPLATES
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// these help when the compiler has no partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_empty,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_empty,T,::boost::detail::is_empty_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_EMPTY_HPP_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/is_enum.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_enum.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,189 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-#ifndef BOOST_TT_IS_ENUM_HPP_INCLUDED
-#define BOOST_TT_IS_ENUM_HPP_INCLUDED
-
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_ENUM
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/is_array.hpp>
-#ifdef __GNUC__
-#include <boost/type_traits/is_function.hpp>
-#endif
-#include <boost/type_traits/config.hpp>
-#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION)
-# include <boost/type_traits/is_class.hpp>
-# include <boost/type_traits/is_union.hpp>
-#endif
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_IS_ENUM
-#if !(defined(__BORLANDC__) && (__BORLANDC__ <= 0x551))
-
-namespace detail {
-
-#if defined(BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION)
-
-template <typename T>
-struct is_class_or_union
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_class<T>::value
- , ::boost::is_union<T>::value
- >::value));
-};
-
-#else
-
-template <typename T>
-struct is_class_or_union
-{
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1300) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x581))// we simply can't detect it this way.
- BOOST_STATIC_CONSTANT(bool, value = false);
-# else
- template <class U> static ::boost::type_traits::yes_type is_class_or_union_tester(void(U::*)(void));
-
-# if BOOST_WORKAROUND(BOOST_MSVC, == 1300) \
- || BOOST_WORKAROUND(__MWERKS__, <= 0x3000) // no SFINAE
- static ::boost::type_traits::no_type is_class_or_union_tester(...);
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(is_class_or_union_tester(0)) == sizeof(::boost::type_traits::yes_type));
-# else
- template <class U>
- static ::boost::type_traits::no_type is_class_or_union_tester(...);
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(is_class_or_union_tester<T>(0)) == sizeof(::boost::type_traits::yes_type));
-# endif
-# endif
-};
-#endif
-
-struct int_convertible
-{
- int_convertible(int);
-};
-
-// Don't evaluate convertibility to int_convertible unless the type
-// is non-arithmetic. This suppresses warnings with GCC.
-template <bool is_typename_arithmetic_or_reference = true>
-struct is_enum_helper
-{
- template <typename T> struct type
- {
- BOOST_STATIC_CONSTANT(bool, value = false);
- };
-};
-
-template <>
-struct is_enum_helper<false>
-{
- template <typename T> struct type
- : ::boost::is_convertible<typename boost::add_reference<T>::type,::boost::detail::int_convertible>
- {
- };
-};
-
-template <typename T> struct is_enum_impl
-{
- //typedef ::boost::add_reference<T> ar_t;
- //typedef typename ar_t::type r_type;
-
-#if defined(__GNUC__)
-
-#ifdef BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-
- // We MUST check for is_class_or_union on conforming compilers in
- // order to correctly deduce that noncopyable types are not enums
- // (dwa 2002/04/15)...
- BOOST_STATIC_CONSTANT(bool, selector =
- (::boost::type_traits::ice_or<
- ::boost::is_arithmetic<T>::value
- , ::boost::is_reference<T>::value
- , ::boost::is_function<T>::value
- , is_class_or_union<T>::value
- , is_array<T>::value
- >::value));
-#else
- // ...however, not checking is_class_or_union on non-conforming
- // compilers prevents a dependency recursion.
- BOOST_STATIC_CONSTANT(bool, selector =
- (::boost::type_traits::ice_or<
- ::boost::is_arithmetic<T>::value
- , ::boost::is_reference<T>::value
- , ::boost::is_function<T>::value
- , is_array<T>::value
- >::value));
-#endif // BOOST_TT_HAS_CONFORMING_IS_CLASS_IMPLEMENTATION
-
-#else // !defined(__GNUC__):
-
- BOOST_STATIC_CONSTANT(bool, selector =
- (::boost::type_traits::ice_or<
- ::boost::is_arithmetic<T>::value
- , ::boost::is_reference<T>::value
- , is_class_or_union<T>::value
- , is_array<T>::value
- >::value));
-
-#endif
-
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
- typedef ::boost::detail::is_enum_helper<
- ::boost::detail::is_enum_impl<T>::selector
- > se_t;
-#else
- typedef ::boost::detail::is_enum_helper<selector> se_t;
-#endif
-
- typedef typename se_t::template type<T> helper;
- BOOST_STATIC_CONSTANT(bool, value = helper::value);
-};
-
-// these help on compilers with no partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_enum,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,::boost::detail::is_enum_impl<T>::value)
-
-#else // __BORLANDC__
-//
-// buggy is_convertible prevents working
-// implementation of is_enum:
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,false)
-
-#endif
-
-#else // BOOST_IS_ENUM
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_enum,T,BOOST_IS_ENUM(T))
-
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_ENUM_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_float.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_float.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
-#define BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-//* is a type T a floating-point type described in the standard (3.9.1p8)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_float,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,float,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,double,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_float,long double,true)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_floating_point.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_floating_point.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-2005.
-// 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.
-
-#ifndef BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED
-#define BOOST_TYPE_TRAITS_IS_FLOATING_HPP_INCLUDED
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-//* is a type T a floating-point type described in the standard (3.9.1p8)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_floating_point,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,float,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,double,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_floating_point,long double,true)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TYPE_TRAITS_IS_FLOAT_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_function.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_function.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,95 +0,0 @@
-
-// Copyright 2000 John Maddock (john_at_[hidden])
-// Copyright 2002 Aleksey Gurtovoy (agurtovoy_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).
-//
-// See http://www.boost.org/libs/type_traits for most recent version including documentation.
-
-#ifndef BOOST_TT_IS_FUNCTION_HPP_INCLUDED
-#define BOOST_TT_IS_FUNCTION_HPP_INCLUDED
-
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/detail/false_result.hpp>
-#include <boost/config.hpp>
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
-# include <boost/type_traits/detail/is_function_ptr_helper.hpp>
-#else
-# include <boost/type_traits/detail/is_function_ptr_tester.hpp>
-# include <boost/type_traits/detail/yes_no_type.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-// is a type a function?
-// Please note that this implementation is unnecessarily complex:
-// we could just use !is_convertible<T*, const volatile void*>::value,
-// except that some compilers erroneously allow conversions from
-// function pointers to void*.
-
-namespace boost {
-namespace detail {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
-template<bool is_ref = true>
-struct is_function_chooser
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_function_chooser<false>
-{
- template< typename T > struct result_
- : ::boost::type_traits::is_function_ptr_helper<T*>
- {
- };
-};
-
-template <typename T>
-struct is_function_impl
- : is_function_chooser< ::boost::is_reference<T>::value >
- ::BOOST_NESTED_TEMPLATE result_<T>
-{
-};
-
-#else
-
-template <typename T>
-struct is_function_impl
-{
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
-#pragma warning(push)
-#pragma warning(disable:6334)
-#endif
- static T* t;
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(::boost::type_traits::is_function_ptr_tester(t))
- == sizeof(::boost::type_traits::yes_type)
- );
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
-#pragma warning(pop)
-#endif
-};
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-template <typename T>
-struct is_function_impl<T&> : public false_type
-{};
-#endif
-
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_function,T,::boost::detail::is_function_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_FUNCTION_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_fundamental.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_fundamental.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,41 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
-#define BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED
-
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_fundamental_impl
- : ::boost::type_traits::ice_or<
- ::boost::is_arithmetic<T>::value
- , ::boost::is_void<T>::value
- >
-{
-};
-
-} // namespace detail
-
-//* is a type T a fundamental type described in the standard (3.9.1)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_fundamental,T,::boost::detail::is_fundamental_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_FUNDAMENTAL_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_integral.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_integral.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,73 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
-#define BOOST_TT_IS_INTEGRAL_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-//* is a type T an [cv-qualified-] integral type described in the standard (3.9.1p3)
-// as an extention we include long long, as this is likely to be added to the
-// standard at a later date
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_integral,T,false)
-
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned char,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned short,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned int,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned long,true)
-
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed char,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed short,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed int,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,signed long,true)
-
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,bool,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,char,true)
-
-#ifndef BOOST_NO_INTRINSIC_WCHAR_T
-// If the following line fails to compile and you're using the Intel
-// compiler, see http://lists.boost.org/MailArchives/boost-users/msg06567.php,
-// and define BOOST_NO_INTRINSIC_WCHAR_T on the command line.
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,wchar_t,true)
-#endif
-
-// Same set of integral types as in boost/type_traits/integral_promotion.hpp.
-// Please, keep in sync. -- Alexander Nasonov
-#if (defined(BOOST_MSVC) && (BOOST_MSVC < 1300)) \
- || (defined(BOOST_INTEL_CXX_VERSION) && defined(_MSC_VER) && (BOOST_INTEL_CXX_VERSION <= 600)) \
- || (defined(__BORLANDC__) && (__BORLANDC__ == 0x600) && (_MSC_VER < 1300))
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int8,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int8,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int16,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int16,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int32,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int32,true)
-#ifdef __BORLANDC__
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
-#endif
-#endif
-
-# if defined(BOOST_HAS_LONG_LONG)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::ulong_long_type,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral, ::boost::long_long_type,true)
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,unsigned __int64,true)
-BOOST_TT_AUX_BOOL_TRAIT_CV_SPEC1(is_integral,__int64,true)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_INTEGRAL_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_member_function_pointer.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_member_function_pointer.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,134 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-#ifndef BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) \
- && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
- //
- // Note: we use the "workaround" version for MSVC because it works for
- // __stdcall etc function types, where as the partial specialisation
- // version does not do so.
- //
-# include <boost/type_traits/detail/is_mem_fun_pointer_impl.hpp>
-# include <boost/type_traits/remove_cv.hpp>
-#else
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_array.hpp>
-# include <boost/type_traits/detail/yes_no_type.hpp>
-# include <boost/type_traits/detail/false_result.hpp>
-# include <boost/type_traits/detail/ice_or.hpp>
-# include <boost/type_traits/detail/is_mem_fun_pointer_tester.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(BOOST_TT_TEST_MS_FUNC_SIGS)
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(
- is_member_function_pointer
- , T
- , ::boost::type_traits::is_mem_fun_pointer_impl<typename remove_cv<T>::type>::value
- )
-
-#else
-
-namespace detail {
-
-#ifndef __BORLANDC__
-
-template <bool>
-struct is_mem_fun_pointer_select
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_mem_fun_pointer_select<false>
-{
- template <typename T> struct result_
- {
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
-#pragma warning(push)
-#pragma warning(disable:6334)
-#endif
- static T* make_t;
- typedef result_<T> self_type;
-
- BOOST_STATIC_CONSTANT(
- bool, value = (
- 1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(self_type::make_t))
- ));
-#if BOOST_WORKAROUND(_MSC_FULL_VER, >= 140050000)
-#pragma warning(pop)
-#endif
- };
-};
-
-template <typename T>
-struct is_member_function_pointer_impl
- : is_mem_fun_pointer_select<
- ::boost::type_traits::ice_or<
- ::boost::is_reference<T>::value
- , ::boost::is_array<T>::value
- >::value
- >::template result_<T>
-{
-};
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <typename T>
-struct is_member_function_pointer_impl<T&> : public false_type{};
-#endif
-
-#else // Borland C++
-
-template <typename T>
-struct is_member_function_pointer_impl
-{
- static T* m_t;
- BOOST_STATIC_CONSTANT(
- bool, value =
- (1 == sizeof(type_traits::is_mem_fun_pointer_tester(m_t))) );
-};
-
-template <typename T>
-struct is_member_function_pointer_impl<T&>
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-#endif
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_function_pointer,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_function_pointer,T,::boost::detail::is_member_function_pointer_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_member_object_pointer.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_member_object_pointer.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,46 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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.
-
-
-#ifndef BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_OBJECT_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/is_member_pointer.hpp>
-#include <boost/type_traits/is_member_function_pointer.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <typename T>
-struct is_member_object_pointer_impl
-{
- BOOST_STATIC_CONSTANT(
- bool, value = (::boost::type_traits::ice_and<
- ::boost::is_member_pointer<T>::value,
- ::boost::type_traits::ice_not<
- ::boost::is_member_function_pointer<T>::value
- >::value
- >::value ));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_object_pointer,T,::boost::detail::is_member_object_pointer_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_member_pointer.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_member_pointer.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,114 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-# include <boost/type_traits/is_member_function_pointer.hpp>
-#else
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_array.hpp>
-# include <boost/type_traits/detail/is_mem_fun_pointer_tester.hpp>
-# include <boost/type_traits/detail/yes_no_type.hpp>
-# include <boost/type_traits/detail/false_result.hpp>
-# include <boost/type_traits/detail/ice_or.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
-
-#elif !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::boost::is_member_function_pointer<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*,true)
-
-#if !BOOST_WORKAROUND(__MWERKS__,<=0x3003)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*const,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,typename U,is_member_pointer,U T::*const volatile,true)
-#endif
-
-#else // no partial template specialization
-
-namespace detail {
-
-template <typename R, typename T>
-::boost::type_traits::yes_type BOOST_TT_DECL is_member_pointer_tester(R T::*const volatile*);
-::boost::type_traits::no_type BOOST_TT_DECL is_member_pointer_tester(...);
-
-template <bool>
-struct is_member_pointer_select
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_member_pointer_select<false>
-{
- template <typename T> struct result_
- {
- static T* make_t();
- BOOST_STATIC_CONSTANT(
- bool, value =
- (::boost::type_traits::ice_or<
- (1 == sizeof(::boost::type_traits::is_mem_fun_pointer_tester(make_t()))),
- (1 == sizeof(is_member_pointer_tester(make_t())))
- >::value) );
- };
-};
-
-template <typename T>
-struct is_member_pointer_impl
- : is_member_pointer_select<
- ::boost::type_traits::ice_or<
- ::boost::is_reference<T>::value
- , ::boost::is_array<T>::value
- >::value
- >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_member_pointer,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_member_pointer,T,::boost::detail::is_member_pointer_impl<T>::value)
-
-#endif // __BORLANDC__
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_object.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_object.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,53 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_OBJECT_HPP_INCLUDED
-#define BOOST_TT_IS_OBJECT_HPP_INCLUDED
-
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/is_function.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_object_impl
-{
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_function<T>::value>::value
- >::value));
-#else
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::type_traits::ice_not< ::boost::is_reference<T>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_void<T>::value>::value
- >::value));
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_object,T,::boost::detail::is_object_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_OBJECT_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_pod.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_pod.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,135 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_POD_HPP_INCLUDED
-#define BOOST_TT_IS_POD_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/is_void.hpp>
-#include <boost/type_traits/is_scalar.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-
-#include <cstddef>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-// forward declaration, needed by 'is_pod_array_helper' template below
-template< typename T > struct is_POD;
-
-namespace detail {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-template <typename T> struct is_pod_impl
-{
- BOOST_STATIC_CONSTANT(
- bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_scalar<T>::value,
- ::boost::is_void<T>::value,
- BOOST_IS_POD(T)
- >::value));
-};
-
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <typename T, std::size_t sz>
-struct is_pod_impl<T[sz]>
- : is_pod_impl<T>
-{
-};
-#endif
-
-#else
-
-template <bool is_array = false>
-struct is_pod_helper
-{
- template <typename T> struct result_
- {
- BOOST_STATIC_CONSTANT(
- bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_scalar<T>::value,
- ::boost::is_void<T>::value,
- BOOST_IS_POD(T)
- >::value));
- };
-};
-
-template <bool b>
-struct bool_to_yes_no_type
-{
- typedef ::boost::type_traits::no_type type;
-};
-
-template <>
-struct bool_to_yes_no_type<true>
-{
- typedef ::boost::type_traits::yes_type type;
-};
-
-template <typename ArrayType>
-struct is_pod_array_helper
-{
- enum { is_pod = ::boost::is_POD<ArrayType>::value }; // MSVC workaround
- typedef typename bool_to_yes_no_type<is_pod>::type type;
- type instance() const;
-};
-
-template <typename T>
-is_pod_array_helper<T> is_POD_array(T*);
-
-template <>
-struct is_pod_helper<true>
-{
- template <typename T> struct result_
- {
- static T& help();
- BOOST_STATIC_CONSTANT(bool, value =
- sizeof(is_POD_array(help()).instance()) == sizeof(::boost::type_traits::yes_type)
- );
- };
-};
-
-
-template <typename T> struct is_pod_impl
-{
- BOOST_STATIC_CONSTANT(
- bool, value = (
- ::boost::detail::is_pod_helper<
- ::boost::is_array<T>::value
- >::template result_<T>::value
- )
- );
-};
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// the following help compilers without partial specialization support:
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void,true)
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,void const volatile,true)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_POD,T,::boost::detail::is_pod_impl<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pod,T,::boost::detail::is_pod_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_POD_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_pointer.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_pointer.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,160 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_POINTER_HPP_INCLUDED
-#define BOOST_TT_IS_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/is_member_pointer.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/type_traits/config.hpp>
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/remove_cv.hpp>
-#endif
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_array.hpp>
-# include <boost/type_traits/detail/is_function_ptr_tester.hpp>
-# include <boost/type_traits/detail/false_result.hpp>
-# include <boost/type_traits/detail/ice_or.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-template< typename T > struct is_pointer_helper
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-# define TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(helper,sp,result) \
-template< typename T > struct helper<sp> \
-{ \
- BOOST_STATIC_CONSTANT(bool, value = result); \
-}; \
-/**/
-
-TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC(is_pointer_helper,T*,true)
-
-# undef TT_AUX_BOOL_TRAIT_HELPER_PARTIAL_SPEC
-
-template< typename T >
-struct is_pointer_impl
-{
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::detail::is_pointer_helper<T>::value
- , ::boost::type_traits::ice_not<
- ::boost::is_member_pointer<T>::value
- >::value
- >::value)
- );
-#else
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::detail::is_pointer_helper<typename remove_cv<T>::type>::value
- , ::boost::type_traits::ice_not<
- ::boost::is_member_pointer<T>::value
- >::value
- >::value)
- );
-#endif
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl<T>::value)
-
-#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T&,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_pointer,T& const volatile,false)
-#endif
-
-#else // no partial template specialization
-
-namespace detail {
-
-struct pointer_helper
-{
- pointer_helper(const volatile void*);
-};
-
-yes_type BOOST_TT_DECL is_pointer_tester(pointer_helper);
-no_type BOOST_TT_DECL is_pointer_tester(...);
-
-template <bool>
-struct is_pointer_select
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_pointer_select<false>
-{
- template <typename T> struct result_
- {
- static T& make_t();
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- (1 == sizeof(is_pointer_tester(make_t()))),
- (1 == sizeof(type_traits::is_function_ptr_tester(make_t())))
- >::value));
- };
-};
-
-template <typename T>
-struct is_pointer_impl
- : is_pointer_select<
- ::boost::type_traits::ice_or<
- ::boost::is_reference<T>::value
- , ::boost::is_array<T>::value
- >::value
- >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pointer,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_pointer,T,::boost::detail::is_pointer_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_polymorphic.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_polymorphic.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,114 +0,0 @@
-// (C) Copyright John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_POLYMORPHIC_HPP
-#define BOOST_TT_IS_POLYMORPHIC_HPP
-
-#include <boost/type_traits/intrinsics.hpp>
-#ifndef BOOST_IS_POLYMORPHIC
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#endif
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-#include <boost/detail/workaround.hpp>
-
-namespace boost{
-
-#ifndef BOOST_IS_POLYMORPHIC
-
-namespace detail{
-
-template <class T>
-struct is_polymorphic_imp1
-{
-# if BOOST_WORKAROUND(__MWERKS__, <= 0x2407) // CWPro7 should return false always.
- typedef char d1, (&d2)[2];
-# else
- typedef typename remove_cv<T>::type ncvT;
- struct d1 : public ncvT
- {
- d1();
-# if !defined(__GNUC__) // this raises warnings with some classes, and buys nothing with GCC
- ~d1()throw();
-# endif
- char padding[256];
- private:
- // keep some picky compilers happy:
- d1(const d1&);
- d1& operator=(const d1&);
- };
- struct d2 : public ncvT
- {
- d2();
- virtual ~d2()throw();
-# if !defined(BOOST_MSVC) && !defined(__ICL)
- // for some reason this messes up VC++ when T has virtual bases,
- // probably likewise for compilers that use the same ABI:
- struct unique{};
- virtual void unique_name_to_boost5487629(unique*);
-# endif
- char padding[256];
- private:
- // keep some picky compilers happy:
- d2(const d2&);
- d2& operator=(const d2&);
- };
-# endif
- BOOST_STATIC_CONSTANT(bool, value = (sizeof(d2) == sizeof(d1)));
-};
-
-template <class T>
-struct is_polymorphic_imp2
-{
- BOOST_STATIC_CONSTANT(bool, value = false);
-};
-
-template <bool is_class>
-struct is_polymorphic_selector
-{
- template <class T>
- struct rebind
- {
- typedef is_polymorphic_imp2<T> type;
- };
-};
-
-template <>
-struct is_polymorphic_selector<true>
-{
- template <class T>
- struct rebind
- {
- typedef is_polymorphic_imp1<T> type;
- };
-};
-
-template <class T>
-struct is_polymorphic_imp
-{
- typedef is_polymorphic_selector< ::boost::is_class<T>::value> selector;
- typedef typename selector::template rebind<T> binder;
- typedef typename binder::type imp_type;
- BOOST_STATIC_CONSTANT(bool, value = imp_type::value);
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,::boost::detail::is_polymorphic_imp<T>::value)
-
-#else // BOOST_IS_POLYMORPHIC
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_polymorphic,T,BOOST_IS_POLYMORPHIC(T))
-
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif

Deleted: sandbox/type_traits/boost/type_traits/is_reference.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_reference.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,116 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include <boost/type_traits/detail/yes_no_type.hpp>
-# include <boost/type_traits/detail/wrap.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T&,true)
-
-#if defined(__BORLANDC__) && !defined(__COMO__) && (__BORLANDC__ < 0x600)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& const,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T& const volatile,true)
-#endif
-
-#if defined(__GNUC__) && (__GNUC__ < 3)
-// these allow us to work around illegally cv-qualified reference
-// types.
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T const ,::boost::is_reference<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T volatile ,::boost::is_reference<T>::value)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_reference,T const volatile ,::boost::is_reference<T>::value)
-// However, the above specializations confuse gcc 2.96 unless we also
-// supply these specializations for array types
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,const T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,volatile T[N],false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_2(typename T,unsigned long N,is_reference,const volatile T[N],false)
-#endif
-
-#else
-
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4181 4097)
-#endif
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-using ::boost::type_traits::wrap;
-
-template <class T> T&(* is_reference_helper1(wrap<T>) )(wrap<T>);
-char is_reference_helper1(...);
-
-template <class T> no_type is_reference_helper2(T&(*)(wrap<T>));
-yes_type is_reference_helper2(...);
-
-template <typename T>
-struct is_reference_impl
-{
- BOOST_STATIC_CONSTANT(
- bool, value = sizeof(
- ::boost::detail::is_reference_helper2(
- ::boost::detail::is_reference_helper1(::boost::type_traits::wrap<T>()))) == 1
- );
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_reference,void const volatile,false)
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_reference,T,::boost::detail::is_reference_impl<T>::value)
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_REFERENCE_HPP_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/is_same.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_same.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,103 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_SAME_HPP_INCLUDED
-#define BOOST_TT_IS_SAME_HPP_INCLUDED
-
-#include <boost/type_traits/config.hpp>
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-#include <boost/type_traits/detail/yes_no_type.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/is_reference.hpp>
-#endif
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T,T,true)
-#if BOOST_WORKAROUND(__BORLANDC__, < 0x600)
-// without this, Borland's compiler gives the wrong answer for
-// references to arrays:
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC2_1(typename T,is_same,T&,T&,true)
-#endif
-
-#else // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-#ifdef BOOST_MSVC
-// the following VC6 specific implementation is *NOT* legal
-// C++, but has the advantage that it works for incomplete
-// types.
-
-template< typename T1 >
-struct is_same_part_1
-{
- template<typename T2> struct part_2 { enum { value = false }; };
- template<> struct part_2<T1> { enum { value = true }; };
-};
-
-template< typename T1, typename T2 >
-struct is_same_impl
-{
- enum { value = detail::is_same_part_1<T1>::template part_2<T2>::value };
-};
-
-#else // generic "no-partial-specialization" version
-
-template <typename T>
-::boost::type_traits::yes_type
-BOOST_TT_DECL is_same_tester(T*, T*);
-
-::boost::type_traits::no_type
-BOOST_TT_DECL is_same_tester(...);
-
-template <typename T, typename U>
-struct is_same_impl
-{
- static T t;
- static U u;
-
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- (sizeof(type_traits::yes_type) == sizeof(detail::is_same_tester(&t,&u))),
- (::boost::is_reference<T>::value == ::boost::is_reference<U>::value),
- (sizeof(T) == sizeof(U))
- >::value));
-};
-
-#endif // BOOST_MSVC
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF2(is_same,T,U,(::boost::detail::is_same_impl<T,U>::value))
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_SAME_HPP_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/is_scalar.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_scalar.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,55 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_SCALAR_HPP_INCLUDED
-#define BOOST_TT_IS_SCALAR_HPP_INCLUDED
-
-#include <boost/type_traits/is_arithmetic.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#include <boost/type_traits/is_member_pointer.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_scalar_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_or<
- ::boost::is_arithmetic<T>::value,
- ::boost::is_enum<T>::value,
- ::boost::is_pointer<T>::value,
- ::boost::is_member_pointer<T>::value
- >::value));
-};
-
-// these specializations are only really needed for compilers
-// without partial specialization support:
-template <> struct is_scalar_impl<void>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-template <> struct is_scalar_impl<void const>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-template <> struct is_scalar_impl<void volatile>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-template <> struct is_scalar_impl<void const volatile>{ BOOST_STATIC_CONSTANT(bool, value = false ); };
-#endif
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_scalar,T,::boost::detail::is_scalar_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_SCALAR_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_signed.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_signed.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,119 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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.
-
-
-#ifndef BOOST_TT_IS_SIGNED_HPP_INCLUDED
-#define BOOST_TT_IS_SIGNED_HPP_INCLUDED
-
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238)
-
-template <class T>
-struct is_signed_helper
-{
- typedef typename remove_cv<T>::type no_cv_t;
- BOOST_STATIC_CONSTANT(bool, value = (static_cast<no_cv_t>(-1) < 0));
-};
-
-template <bool integral_type>
-struct is_signed_select_helper
-{
- template <class T>
- struct rebind
- {
- typedef is_signed_helper<T> type;
- };
-};
-
-template <>
-struct is_signed_select_helper<false>
-{
- template <class T>
- struct rebind
- {
- typedef false_type type;
- };
-};
-
-template <class T>
-struct is_signed_imp
-{
- typedef is_signed_select_helper<
- ::boost::type_traits::ice_or<
- ::boost::is_integral<T>::value,
- ::boost::is_enum<T>::value>::value
- > selector;
- typedef typename selector::template rebind<T> binder;
- typedef typename binder::type type;
-#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
- BOOST_STATIC_CONSTANT(bool, value = is_signed_imp<T>::type::value);
-#else
- BOOST_STATIC_CONSTANT(bool, value = type::value);
-#endif
-};
-
-#else
-
-template <class T> struct is_signed_imp : public false_type{};
-template <> struct is_signed_imp<signed char> : public true_type{};
-template <> struct is_signed_imp<const signed char> : public true_type{};
-template <> struct is_signed_imp<volatile signed char> : public true_type{};
-template <> struct is_signed_imp<const volatile signed char> : public true_type{};
-template <> struct is_signed_imp<short> : public true_type{};
-template <> struct is_signed_imp<const short> : public true_type{};
-template <> struct is_signed_imp<volatile short> : public true_type{};
-template <> struct is_signed_imp<const volatile short> : public true_type{};
-template <> struct is_signed_imp<int> : public true_type{};
-template <> struct is_signed_imp<const int> : public true_type{};
-template <> struct is_signed_imp<volatile int> : public true_type{};
-template <> struct is_signed_imp<const volatile int> : public true_type{};
-template <> struct is_signed_imp<long> : public true_type{};
-template <> struct is_signed_imp<const long> : public true_type{};
-template <> struct is_signed_imp<volatile long> : public true_type{};
-template <> struct is_signed_imp<const volatile long> : public true_type{};
-#ifdef BOOST_HAS_LONG_LONG
-template <> struct is_signed_imp<long long> : public true_type{};
-template <> struct is_signed_imp<const long long> : public true_type{};
-template <> struct is_signed_imp<volatile long long> : public true_type{};
-template <> struct is_signed_imp<const volatile long long> : public true_type{};
-#endif
-#if defined(CHAR_MIN) && (CHAR_MIN != 0)
-template <> struct is_signed_imp<char> : public true_type{};
-template <> struct is_signed_imp<const char> : public true_type{};
-template <> struct is_signed_imp<volatile char> : public true_type{};
-template <> struct is_signed_imp<const volatile char> : public true_type{};
-#endif
-#if defined(WCHAR_MIN) && (WCHAR_MIN != 0)
-template <> struct is_signed_imp<wchar_t> : public true_type{};
-template <> struct is_signed_imp<const wchar_t> : public true_type{};
-template <> struct is_signed_imp<volatile wchar_t> : public true_type{};
-template <> struct is_signed_imp<const volatile wchar_t> : public true_type{};
-#endif
-
-#endif
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_signed,T,::boost::detail::is_signed_imp<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_stateless.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_stateless.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,48 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_STATELESS_HPP_INCLUDED
-#define BOOST_TT_IS_STATELESS_HPP_INCLUDED
-
-#include <boost/type_traits/has_trivial_constructor.hpp>
-#include <boost/type_traits/has_trivial_copy.hpp>
-#include <boost/type_traits/has_trivial_destructor.hpp>
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/is_empty.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <typename T>
-struct is_stateless_impl
-{
- BOOST_STATIC_CONSTANT(bool, value =
- (::boost::type_traits::ice_and<
- ::boost::has_trivial_constructor<T>::value,
- ::boost::has_trivial_copy<T>::value,
- ::boost::has_trivial_destructor<T>::value,
- ::boost::is_class<T>::value,
- ::boost::is_empty<T>::value
- >::value));
-};
-
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_stateless,T,::boost::detail::is_stateless_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_STATELESS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_union.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_union.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-#ifndef BOOST_TT_IS_UNION_HPP_INCLUDED
-#define BOOST_TT_IS_UNION_HPP_INCLUDED
-
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/config.hpp>
-#include <boost/type_traits/intrinsics.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-#ifndef __GNUC__
-template <typename T> struct is_union_impl
-{
- typedef typename remove_cv<T>::type cvt;
- BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(cvt));
-};
-#else
-//
-// using remove_cv here generates a whole load of needless
-// warnings with gcc, since it doesn't do any good with gcc
-// in any case (at least at present), just remove it:
-//
-template <typename T> struct is_union_impl
-{
- BOOST_STATIC_CONSTANT(bool, value = BOOST_IS_UNION(T));
-};
-#endif
-} // namespace detail
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_union,T,::boost::detail::is_union_impl<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_UNION_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_unsigned.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_unsigned.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,116 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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.
-
-
-#ifndef BOOST_TT_IS_UNSIGNED_HPP_INCLUDED
-#define BOOST_TT_IS_UNSIGNED_HPP_INCLUDED
-
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-#if !(defined(__EDG_VERSION__) && __EDG_VERSION__ <= 238)
-
-template <class T>
-struct is_ununsigned_helper
-{
- typedef typename remove_cv<T>::type no_cv_t;
- BOOST_STATIC_CONSTANT(bool, value = (static_cast<no_cv_t>(-1) > 0));
-};
-
-template <bool integral_type>
-struct is_ununsigned_select_helper
-{
- template <class T>
- struct rebind
- {
- typedef is_ununsigned_helper<T> type;
- };
-};
-
-template <>
-struct is_ununsigned_select_helper<false>
-{
- template <class T>
- struct rebind
- {
- typedef false_type type;
- };
-};
-
-template <class T>
-struct is_unsigned_imp
-{
- typedef is_ununsigned_select_helper<
- ::boost::type_traits::ice_or<
- ::boost::is_integral<T>::value,
- ::boost::is_enum<T>::value>::value
- > selector;
- typedef typename selector::template rebind<T> binder;
- typedef typename binder::type type;
- BOOST_STATIC_CONSTANT(bool, value = type::value);
-};
-
-#else
-
-template <class T> struct is_unsigned_imp : public false_type{};
-template <> struct is_unsigned_imp<unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned char> : public true_type{};
-template <> struct is_unsigned_imp<unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned short> : public true_type{};
-template <> struct is_unsigned_imp<unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned int> : public true_type{};
-template <> struct is_unsigned_imp<unsigned long> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned long> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned long> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned long> : public true_type{};
-#ifdef BOOST_HAS_LONG_LONG
-template <> struct is_unsigned_imp<unsigned long long> : public true_type{};
-template <> struct is_unsigned_imp<const unsigned long long> : public true_type{};
-template <> struct is_unsigned_imp<volatile unsigned long long> : public true_type{};
-template <> struct is_unsigned_imp<const volatile unsigned long long> : public true_type{};
-#endif
-#if defined(CHAR_MIN) && (CHAR_MIN == 0)
-template <> struct is_unsigned_imp<char> : public true_type{};
-template <> struct is_unsigned_imp<const char> : public true_type{};
-template <> struct is_unsigned_imp<volatile char> : public true_type{};
-template <> struct is_unsigned_imp<const volatile char> : public true_type{};
-#endif
-#if defined(WCHAR_MIN) && (WCHAR_MIN == 0)
-template <> struct is_unsigned_imp<wchar_t> : public true_type{};
-template <> struct is_unsigned_imp<const wchar_t> : public true_type{};
-template <> struct is_unsigned_imp<volatile wchar_t> : public true_type{};
-template <> struct is_unsigned_imp<const volatile wchar_t> : public true_type{};
-#endif
-
-#endif
-
-
-}
-
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_unsigned,T,::boost::detail::is_unsigned_imp<T>::value)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_void.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_void.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,33 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_IS_VOID_HPP_INCLUDED
-#define BOOST_TT_IS_VOID_HPP_INCLUDED
-
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-//* is a type T void - is_void<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_void,T,false)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void,true)
-
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const,true)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_SPEC1(is_void,void const volatile,true)
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_VOID_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/is_volatile.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/is_volatile.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,131 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes,
-// Howard Hinnant and John Maddock 2000.
-// (C) Copyright Mat Marcus, Jesse Jones and Adobe Systems Inc 2001
-
-// 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.
-
-// Fixed is_pointer, is_reference, is_const, is_volatile, is_same,
-// is_member_pointer based on the Simulated Partial Specialization work
-// of Mat Marcus and Jesse Jones. See http://opensource.adobe.com or
-// http://groups.yahoo.com/group/boost/message/5441
-// Some workarounds in here use ideas suggested from "Generic<Programming>:
-// Mappings between Types and Values"
-// by Andrei Alexandrescu (see http://www.cuj.com/experts/1810/alexandr.html).
-
-
-#ifndef BOOST_TT_IS_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_IS_VOLATILE_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-# include <boost/type_traits/detail/cv_traits_impl.hpp>
-# if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
-# include <boost/type_traits/remove_bounds.hpp>
-# endif
-#else
-# include <boost/type_traits/is_reference.hpp>
-# include <boost/type_traits/is_array.hpp>
-# include <boost/type_traits/detail/yes_no_type.hpp>
-# include <boost/type_traits/detail/false_result.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-//* is a type T declared volatile - is_volatile<T>
-#if BOOST_WORKAROUND(BOOST_MSVC, < 1400)
- BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::cv_traits_imp<typename boost::remove_bounds<T>::type*>::is_volatile)
-#else
- BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::cv_traits_imp<T*>::is_volatile)
-#endif
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T&,false)
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& volatile,false)
-BOOST_TT_AUX_BOOL_TRAIT_PARTIAL_SPEC1_1(typename T,is_volatile,T& const volatile,false)
-#endif
-
-#else
-
-namespace detail {
-
-using ::boost::type_traits::yes_type;
-using ::boost::type_traits::no_type;
-
-yes_type is_volatile_tester(void const volatile*);
-no_type is_volatile_tester(void const*);
-
-template <bool is_ref, bool array>
-struct is_volatile_helper
- : ::boost::type_traits::false_result
-{
-};
-
-template <>
-struct is_volatile_helper<false,false>
-{
- template <typename T> struct result_
- {
- static T* t;
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(detail::yes_type) == sizeof(detail::is_volatile_tester(t))
- ));
- };
-};
-
-template <>
-struct is_volatile_helper<false,true>
-{
- template <typename T> struct result_
- {
- static T t;
- BOOST_STATIC_CONSTANT(bool, value = (
- sizeof(detail::yes_type) == sizeof(detail::is_volatile_tester(&t))
- ));
- };
-};
-
-template <typename T>
-struct is_volatile_impl
- : is_volatile_helper<
- is_reference<T>::value
- , is_array<T>::value
- >::template result_<T>
-{
-};
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void,false)
-#ifndef BOOST_NO_CV_VOID_SPECIALIZATIONS
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const,false)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void volatile,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_volatile,void const volatile,true)
-#endif
-
-} // namespace detail
-
-//* is a type T declared volatile - is_volatile<T>
-BOOST_TT_AUX_BOOL_TRAIT_DEF1(is_volatile,T,::boost::detail::is_volatile_impl<T>::value)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_VOLATILE_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/make_signed.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/make_signed.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,137 +0,0 @@
-
-// (C) Copyright John Maddock 2007.
-// 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.
-
-#ifndef BOOST_TT_MAKE_SIGNED_HPP_INCLUDED
-#define BOOST_TT_MAKE_SIGNED_HPP_INCLUDED
-
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_signed.hpp>
-#include <boost/type_traits/is_unsigned.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_volatile.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/static_assert.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <class T>
-struct make_signed_imp
-{
- BOOST_STATIC_ASSERT(
- (::boost::type_traits::ice_or< ::boost::is_integral<T>::value, ::boost::is_enum<T>::value>::value));
-#if !BOOST_WORKAROUND(BOOST_MSVC, <=1300)
- BOOST_STATIC_ASSERT(
- (::boost::type_traits::ice_not< ::boost::is_same<
- typename remove_cv<T>::type, bool>::value>::value));
-#endif
-
- typedef typename remove_cv<T>::type t_no_cv;
- typedef typename mpl::if_c<
- (::boost::type_traits::ice_and<
- ::boost::is_signed<T>::value,
- ::boost::is_integral<T>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value >::value),
- T,
- typename mpl::if_c<
- (::boost::type_traits::ice_and<
- ::boost::is_integral<T>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value>
- ::value),
- typename mpl::if_<
- is_same<t_no_cv, unsigned char>,
- signed char,
- typename mpl::if_<
- is_same<t_no_cv, unsigned short>,
- signed short,
- typename mpl::if_<
- is_same<t_no_cv, unsigned int>,
- int,
- typename mpl::if_<
- is_same<t_no_cv, unsigned long>,
- long,
-#if defined(BOOST_HAS_LONG_LONG)
- boost::long_long_type
-#elif defined(BOOST_HAS_MS_INT64)
- __int64
-#else
- long
-#endif
- >::type
- >::type
- >::type
- >::type,
- // Not a regular integer type:
- typename mpl::if_c<
- sizeof(t_no_cv) == sizeof(unsigned char),
- signed char,
- typename mpl::if_c<
- sizeof(t_no_cv) == sizeof(unsigned short),
- signed short,
- typename mpl::if_c<
- sizeof(t_no_cv) == sizeof(unsigned int),
- int,
- typename mpl::if_c<
- sizeof(t_no_cv) == sizeof(unsigned long),
- long,
-#if defined(BOOST_HAS_LONG_LONG)
- boost::long_long_type
-#elif defined(BOOST_HAS_MS_INT64)
- __int64
-#else
- long
-#endif
- >::type
- >::type
- >::type
- >::type
- >::type
- >::type base_integer_type;
-
- // Add back any const qualifier:
- typedef typename mpl::if_<
- is_const<T>,
- typename add_const<base_integer_type>::type,
- base_integer_type
- >::type const_base_integer_type;
-
- // Add back any volatile qualifier:
- typedef typename mpl::if_<
- is_volatile<T>,
- typename add_volatile<const_base_integer_type>::type,
- const_base_integer_type
- >::type type;
-};
-
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(make_signed,T,typename boost::detail::make_signed_imp<T>::type)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/make_unsigned.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/make_unsigned.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,137 +0,0 @@
-
-// (C) Copyright John Maddock 2007.
-// 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.
-
-#ifndef BOOST_TT_MAKE_UNSIGNED_HPP_INCLUDED
-#define BOOST_TT_MAKE_UNSIGNED_HPP_INCLUDED
-
-#include <boost/mpl/if.hpp>
-#include <boost/type_traits/is_integral.hpp>
-#include <boost/type_traits/is_signed.hpp>
-#include <boost/type_traits/is_unsigned.hpp>
-#include <boost/type_traits/is_enum.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/add_const.hpp>
-#include <boost/type_traits/add_volatile.hpp>
-#include <boost/type_traits/detail/ice_or.hpp>
-#include <boost/type_traits/detail/ice_and.hpp>
-#include <boost/type_traits/detail/ice_not.hpp>
-#include <boost/static_assert.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template <class T>
-struct make_unsigned_imp
-{
- BOOST_STATIC_ASSERT(
- (::boost::type_traits::ice_or< ::boost::is_integral<T>::value, ::boost::is_enum<T>::value>::value));
-#if !BOOST_WORKAROUND(BOOST_MSVC, <=1300)
- BOOST_STATIC_ASSERT(
- (::boost::type_traits::ice_not< ::boost::is_same<
- typename remove_cv<T>::type, bool>::value>::value));
-#endif
-
- typedef typename remove_cv<T>::type t_no_cv;
- typedef typename mpl::if_c<
- (::boost::type_traits::ice_and<
- ::boost::is_unsigned<T>::value,
- ::boost::is_integral<T>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value >::value),
- T,
- typename mpl::if_c<
- (::boost::type_traits::ice_and<
- ::boost::is_integral<T>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, char>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, wchar_t>::value>::value,
- ::boost::type_traits::ice_not< ::boost::is_same<t_no_cv, bool>::value>::value>
- ::value),
- typename mpl::if_<
- is_same<t_no_cv, signed char>,
- unsigned char,
- typename mpl::if_<
- is_same<t_no_cv, short>,
- unsigned short,
- typename mpl::if_<
- is_same<t_no_cv, int>,
- unsigned int,
- typename mpl::if_<
- is_same<t_no_cv, long>,
- unsigned long,
-#if defined(BOOST_HAS_LONG_LONG)
- boost::ulong_long_type
-#elif defined(BOOST_HAS_MS_INT64)
- unsigned __int64
-#else
- unsigned long
-#endif
- >::type
- >::type
- >::type
- >::type,
- // Not a regular integer type:
- typename mpl::if_c<
- sizeof(t_no_cv) == sizeof(unsigned char),
- unsigned char,
- typename mpl::if_c<
- sizeof(t_no_cv) == sizeof(unsigned short),
- unsigned short,
- typename mpl::if_c<
- sizeof(t_no_cv) == sizeof(unsigned int),
- unsigned int,
- typename mpl::if_c<
- sizeof(t_no_cv) == sizeof(unsigned long),
- unsigned long,
-#if defined(BOOST_HAS_LONG_LONG)
- boost::ulong_long_type
-#elif defined(BOOST_HAS_MS_INT64)
- unsigned __int64
-#else
- unsigned long
-#endif
- >::type
- >::type
- >::type
- >::type
- >::type
- >::type base_integer_type;
-
- // Add back any const qualifier:
- typedef typename mpl::if_<
- is_const<T>,
- typename add_const<base_integer_type>::type,
- base_integer_type
- >::type const_base_integer_type;
-
- // Add back any volatile qualifier:
- typedef typename mpl::if_<
- is_volatile<T>,
- typename add_volatile<const_base_integer_type>::type,
- const_base_integer_type
- >::type type;
-};
-
-
-} // namespace detail
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(make_unsigned,T,typename boost::detail::make_unsigned_imp<T>::type)
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_ADD_REFERENCE_HPP_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/member_object.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/member_object.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,3176 +0,0 @@
-
-// (C) Copyright John Maddock 2008.
-// 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.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-#ifndef BOOST_TT_MEMBER_OBJECT_HPP_INCLUDED
-#define BOOST_TT_MEMBER_OBJECT_HPP_INCLUDED
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/enum_params.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-#endif
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-// pre-processed code, don't edit, try GNU cpp with
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-namespace detail{
-template <class T >
-struct mem_obj_impl{ typedef T type; };
-template <class R, class T >
-struct mem_obj_impl<R (T::*)> { typedef T type; };
-template <class R, class T >
-struct mem_obj_impl<R (T::* const)> { typedef T type; };
-template <class R, class T >
-struct mem_obj_impl<R (T::* volatile)> { typedef T type; };
-template <class R, class T >
-struct mem_obj_impl<R (T::* const volatile)> { typedef T type; };
-
-// pre-processed code, don't edit, try GNU cpp with
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-template <class R, class T >
-struct mem_obj_impl<R (T::*)() > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct mem_obj_impl<R (T::*)( ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct mem_obj_impl<R (T::*)() const > { typedef const T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::*)() volatile > { typedef volatile T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::*)() const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct mem_obj_impl<R (T::*)( ...) const > { typedef const T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::*)( ...) volatile > { typedef volatile T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::*)( ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* const)() > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct mem_obj_impl<R (T::* const)( ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct mem_obj_impl<R (T::* const)() const > { typedef const T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* const)() volatile > { typedef volatile T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* const)() const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct mem_obj_impl<R (T::* const)( ...) const > { typedef const T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* const)( ...) volatile > { typedef volatile T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* const)( ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* const volatile)() > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct mem_obj_impl<R (T::* const volatile)( ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct mem_obj_impl<R (T::* const volatile)() const > { typedef const T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* const volatile)() volatile > { typedef volatile T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* const volatile)() const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct mem_obj_impl<R (T::* const volatile)( ...) const > { typedef const T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* const volatile)( ...) volatile > { typedef volatile T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* const volatile)( ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* volatile)() > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct mem_obj_impl<R (T::* volatile)( ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct mem_obj_impl<R (T::* volatile)() const > { typedef const T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* volatile)() volatile > { typedef volatile T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* volatile)() const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct mem_obj_impl<R (T::* volatile)( ...) const > { typedef const T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* volatile)( ...) volatile > { typedef volatile T type; };
-
-template <class R, class T >
-struct mem_obj_impl<R (T::* volatile)( ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::*)( T0) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::*)( T0 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::*)( T0) const > { typedef const T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::*)( T0) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::*)( T0) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::*)( T0 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::*)( T0 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::*)( T0 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const)( T0) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const)( T0 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const)( T0) const > { typedef const T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const)( T0) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const)( T0) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const)( T0 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const)( T0 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const)( T0 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const volatile)( T0) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const volatile)( T0 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const volatile)( T0) const > { typedef const T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const volatile)( T0) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const volatile)( T0) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const volatile)( T0 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const volatile)( T0 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* const volatile)( T0 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* volatile)( T0) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* volatile)( T0 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* volatile)( T0) const > { typedef const T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* volatile)( T0) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* volatile)( T0) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* volatile)( T0 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* volatile)( T0 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0>
-struct mem_obj_impl<R (T::* volatile)( T0 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::*)( T0 , T1) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::*)( T0 , T1 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::*)( T0 , T1) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::*)( T0 , T1) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::*)( T0 , T1) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::*)( T0 , T1 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::*)( T0 , T1 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::*)( T0 , T1 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const)( T0 , T1) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const)( T0 , T1 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const)( T0 , T1) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const)( T0 , T1) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const)( T0 , T1) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const)( T0 , T1 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const)( T0 , T1 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const)( T0 , T1 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { typedef T type; };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { typedef T type; };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { typedef const volatile T type; };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { typedef const T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { typedef volatile T type; };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct mem_obj_impl<R (T::* volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { typedef const volatile T type; };
-#endif
-#endif
-} // namespace detail
-#else
-
-#undef BOOST_STATIC_CONSTANT
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3, (0, 25, "boost/type_traits/member_object.hpp"))
-#include BOOST_PP_ITERATE()
-#endif
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(member_object,T, typename detail::mem_obj_impl<T>::type)
-
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_MEMBER_OBJECT_HPP_INCLUDED
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef T type; };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef T type; };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef const T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef volatile T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef const volatile T type; };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef const T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef volatile T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef const volatile T type; };
-@#endif
-@#endif
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef T type; };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef T type; };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef const T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef volatile T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef const volatile T type; };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef const T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef volatile T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef const volatile T type; };
-@#endif
-@#endif
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef T type; };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef T type; };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef const T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef volatile T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef const volatile T type; };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef const T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef volatile T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef const volatile T type; };
-@#endif
-@#endif
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef T type; };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef T type; };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef const T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef volatile T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef const volatile T type; };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef const T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef volatile T type; };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct mem_obj_impl<R (T::* volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef const volatile T type; };
-@#endif
-@#endif
-
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING

Deleted: sandbox/type_traits/boost/type_traits/object_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/object_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,33 +0,0 @@
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-//
-// defines object traits classes:
-// is_object, is_scalar, is_class, is_compound, is_pod,
-// has_trivial_constructor, has_trivial_copy, has_trivial_assign,
-// has_trivial_destructor, is_empty.
-//
-
-#ifndef BOOST_TT_OBJECT_TRAITS_HPP_INLCUDED
-#define BOOST_TT_OBJECT_TRAITS_HPP_INLCUDED
-
-#include <boost/type_traits/has_trivial_assign.hpp>
-#include <boost/type_traits/has_trivial_constructor.hpp>
-#include <boost/type_traits/has_trivial_copy.hpp>
-#include <boost/type_traits/has_trivial_destructor.hpp>
-#include <boost/type_traits/has_nothrow_constructor.hpp>
-#include <boost/type_traits/has_nothrow_copy.hpp>
-#include <boost/type_traits/has_nothrow_assign.hpp>
-#include <boost/type_traits/is_base_and_derived.hpp>
-#include <boost/type_traits/is_class.hpp>
-#include <boost/type_traits/is_compound.hpp>
-#include <boost/type_traits/is_empty.hpp>
-#include <boost/type_traits/is_object.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/type_traits/is_scalar.hpp>
-#include <boost/type_traits/is_stateless.hpp>
-
-#endif // BOOST_TT_OBJECT_TRAITS_HPP_INLCUDED

Deleted: sandbox/type_traits/boost/type_traits/promote.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/promote.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// 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)
-
-#ifndef FILE_boost_type_traits_promote_hpp_INCLUDED
-#define FILE_boost_type_traits_promote_hpp_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/type_traits/integral_promotion.hpp>
-#include <boost/type_traits/floating_point_promotion.hpp>
-
-// Should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-namespace detail {
-
-template<class T>
-struct promote_impl
- : integral_promotion<
- BOOST_DEDUCED_TYPENAME floating_point_promotion<T>::type
- >
-{
-};
-
-}
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(
- promote
- , T
- , BOOST_DEDUCED_TYPENAME boost::detail::promote_impl<T>::type
- )
-}
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // #ifndef FILE_boost_type_traits_promote_hpp_INCLUDED
-

Deleted: sandbox/type_traits/boost/type_traits/rank.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/rank.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,81 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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.
-
-
-#ifndef BOOST_TT_RANK_HPP_INCLUDED
-#define BOOST_TT_RANK_HPP_INCLUDED
-
-// should be the last #include
-#include <boost/type_traits/detail/size_t_trait_def.hpp>
-
-namespace boost {
-
-namespace detail{
-
-template <class T, std::size_t N>
-struct rank_imp
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = N);
-};
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T const[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T volatile[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-template <class T, std::size_t R, std::size_t N>
-struct rank_imp<T const volatile[R], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-template <class T, std::size_t N>
-struct rank_imp<T[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-template <class T, std::size_t N>
-struct rank_imp<T const[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-template <class T, std::size_t N>
-struct rank_imp<T volatile[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-template <class T, std::size_t N>
-struct rank_imp<T const volatile[], N>
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
-};
-#endif
-#endif
-}
-
-BOOST_TT_AUX_SIZE_T_TRAIT_DEF1(rank,T,(::boost::detail::rank_imp<T,0>::value))
-
-} // namespace boost
-
-#include <boost/type_traits/detail/size_t_trait_undef.hpp>
-
-#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/reference_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/reference_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,15 +0,0 @@
-// (C) Copyright David Abrahams Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000-2002.
-// 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.
-
-
-#ifndef BOOST_TT_REFERENCE_TRAITS_HPP_INCLUDED
-#define BOOST_TT_REFERENCE_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/is_reference.hpp>
-
-#endif // BOOST_TT_REFERENCE_TRAITS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/remove_all_extents.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/remove_all_extents.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,48 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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.
-
-#ifndef BOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED
-#define BOOST_TT_REMOVE_ALL_EXTENTS_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <cstddef>
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_all_extents.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-namespace boost {
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_all_extents,T,T)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T[N],typename boost::remove_all_extents<T>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T const[N],typename boost::remove_all_extents<T const>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T volatile[N],typename boost::remove_all_extents<T volatile>::type type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_all_extents,T const volatile[N],typename boost::remove_all_extents<T const volatile>::type type)
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T[],typename boost::remove_all_extents<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T const[],typename boost::remove_all_extents<T const>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T volatile[],typename boost::remove_all_extents<T volatile>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_all_extents,T const volatile[],typename boost::remove_all_extents<T const volatile>::type)
-#endif
-#endif
-
-} // namespace boost
-
-#endif
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/remove_bounds.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/remove_bounds.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,48 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
-#define BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <cstddef>
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_bounds.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-namespace boost {
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_bounds,T,T)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T[N],T type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const[N],T const type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T volatile[N],T volatile type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_bounds,T const volatile[N],T const volatile type)
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T[],T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const[],T const)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T volatile[],T volatile)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_bounds,T const volatile[],T const volatile)
-#endif
-#endif
-
-} // namespace boost
-
-#endif
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/remove_const.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/remove_const.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,78 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-#ifndef BOOST_TT_REMOVE_CONST_HPP_INCLUDED
-#define BOOST_TT_REMOVE_CONST_HPP_INCLUDED
-
-#include <boost/type_traits/is_volatile.hpp>
-#include <boost/type_traits/broken_compiler_spec.hpp>
-#include <boost/type_traits/detail/cv_traits_impl.hpp>
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <cstddef>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_const.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-template <typename T, bool is_vol>
-struct remove_const_helper
-{
- typedef T type;
-};
-
-template <typename T>
-struct remove_const_helper<T, true>
-{
- typedef T volatile type;
-};
-
-
-template <typename T>
-struct remove_const_impl
-{
- typedef typename remove_const_helper<
- typename cv_traits_imp<T*>::unqualified_type
- , ::boost::is_volatile<T>::value
- >::type type;
-};
-
-} // namespace detail
-
-// * convert a type T to non-const type - remove_const<T>
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename boost::detail::remove_const_impl<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_const,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_const,T const volatile[N],T volatile type[N])
-#endif
-
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_const,T,typename boost::detail::remove_const_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_CONST_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/remove_cv.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/remove_cv.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,61 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-#ifndef BOOST_TT_REMOVE_CV_HPP_INCLUDED
-#define BOOST_TT_REMOVE_CV_HPP_INCLUDED
-
-#include <boost/type_traits/broken_compiler_spec.hpp>
-#include <boost/type_traits/detail/cv_traits_impl.hpp>
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <cstddef>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_cv.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-// convert a type T to a non-cv-qualified type - remove_cv<T>
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename boost::detail::cv_traits_imp<T*>::unqualified_type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_cv,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T volatile[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_cv,T const volatile[N],T type[N])
-#endif
-
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-namespace detail {
-template <typename T>
-struct remove_cv_impl
-{
- typedef typename remove_volatile_impl<
- typename remove_const_impl<T>::type
- >::type type;
-};
-}
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_cv,T,typename boost::detail::remove_cv_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_CV_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/remove_extent.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/remove_extent.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,48 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000-2005.
-// 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.
-
-#ifndef BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
-#define BOOST_TT_REMOVE_EXTENT_HPP_INCLUDED
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-#include <cstddef>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_extent.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-#if !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-namespace boost {
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_extent,T,T)
-
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T[N],T type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T const[N],T const type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T volatile[N],T volatile type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_extent,T const volatile[N],T const volatile type)
-#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) && !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T[],T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T const[],T const)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T volatile[],T volatile)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_extent,T const volatile[],T const volatile)
-#endif
-#endif
-
-} // namespace boost
-
-#endif
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_BOUNDS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/remove_member_pointer.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/remove_member_pointer.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,3174 +0,0 @@
-
-// (C) Copyright John Maddock 2008.
-// 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.
-
-#if !defined(BOOST_PP_IS_ITERATING)
-
-#ifndef BOOST_TT_REMOVE_MEMBER_POINTER_HPP_INCLUDED
-#define BOOST_TT_REMOVE_MEMBER_POINTER_HPP_INCLUDED
-
-#if defined(BOOST_TT_PREPROCESSING_MODE)
-# include <boost/preprocessor/iterate.hpp>
-# include <boost/preprocessor/enum_params.hpp>
-# include <boost/preprocessor/comma_if.hpp>
-#endif
-
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#if !defined(BOOST_TT_PREPROCESSING_MODE)
-namespace detail{
-template <class T >
-struct rem_mem_pointer_impl{ typedef T type; };
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*)> { typedef R type; };
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::* const)> { typedef R type; };
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::* volatile)> { typedef R type; };
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::* const volatile)> { typedef R type; };
-
-// pre-processed code, don't edit, try GNU cpp with
-// cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*)() > { typedef R type(); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*)( ...) > { typedef R type( ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*)() const > { typedef R type(); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*)() volatile > { typedef R type(); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*)() const volatile > { typedef R type(); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*)( ...) const > { typedef R type( ...); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*)( ...) volatile > { typedef R type( ...); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*)( ...) const volatile > { typedef R type( ...); };
-#endif
-#endif
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const)() > { typedef R type(); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const)( ...) > { typedef R type( ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const)() const > { typedef R type(); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const)() volatile > { typedef R type(); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const)() const volatile > { typedef R type(); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const)( ...) const > { typedef R type( ...); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const)( ...) volatile > { typedef R type( ...); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const)( ...) const volatile > { typedef R type( ...); };
-#endif
-#endif
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const volatile)() > { typedef R type(); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const volatile)( ...) > { typedef R type( ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const volatile)() const > { typedef R type(); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const volatile)() volatile > { typedef R type(); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const volatile)() const volatile > { typedef R type(); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const volatile)( ...) const > { typedef R type( ...); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const volatile)( ...) volatile > { typedef R type( ...); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*const volatile)( ...) const volatile > { typedef R type( ...); };
-#endif
-#endif
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*volatile)() > { typedef R type(); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*volatile)( ...) > { typedef R type( ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*volatile)() const > { typedef R type(); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*volatile)() volatile > { typedef R type(); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*volatile)() const volatile > { typedef R type(); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*volatile)( ...) const > { typedef R type( ...); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*volatile)( ...) volatile > { typedef R type( ...); };
-
-template <class R, class T >
-struct rem_mem_pointer_impl<R (T::*volatile)( ...) const volatile > { typedef R type( ...); };
-#endif
-#endif
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*)( T0) > { typedef R type( T0); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*)( T0 ...) > { typedef R type( T0 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*)( T0) const > { typedef R type( T0); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*)( T0) volatile > { typedef R type( T0); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*)( T0) const volatile > { typedef R type( T0); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*)( T0 ...) const > { typedef R type( T0 ...); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*)( T0 ...) volatile > { typedef R type( T0 ...); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*)( T0 ...) const volatile > { typedef R type( T0 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const)( T0) > { typedef R type( T0); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const)( T0 ...) > { typedef R type( T0 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const)( T0) const > { typedef R type( T0); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const)( T0) volatile > { typedef R type( T0); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const)( T0) const volatile > { typedef R type( T0); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const)( T0 ...) const > { typedef R type( T0 ...); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const)( T0 ...) volatile > { typedef R type( T0 ...); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const)( T0 ...) const volatile > { typedef R type( T0 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0) > { typedef R type( T0); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 ...) > { typedef R type( T0 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0) const > { typedef R type( T0); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0) volatile > { typedef R type( T0); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0) const volatile > { typedef R type( T0); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 ...) const > { typedef R type( T0 ...); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 ...) volatile > { typedef R type( T0 ...); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 ...) const volatile > { typedef R type( T0 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0) > { typedef R type( T0); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 ...) > { typedef R type( T0 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0) const > { typedef R type( T0); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0) volatile > { typedef R type( T0); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0) const volatile > { typedef R type( T0); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 ...) const > { typedef R type( T0 ...); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 ...) volatile > { typedef R type( T0 ...); };
-
-template <class R, class T , class T0>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 ...) const volatile > { typedef R type( T0 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1) > { typedef R type( T0 , T1); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 ...) > { typedef R type( T0 , T1 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1) const > { typedef R type( T0 , T1); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1) volatile > { typedef R type( T0 , T1); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1) const volatile > { typedef R type( T0 , T1); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 ...) const > { typedef R type( T0 , T1 ...); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 ...) volatile > { typedef R type( T0 , T1 ...); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 ...) const volatile > { typedef R type( T0 , T1 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1) > { typedef R type( T0 , T1); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 ...) > { typedef R type( T0 , T1 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1) const > { typedef R type( T0 , T1); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1) volatile > { typedef R type( T0 , T1); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1) const volatile > { typedef R type( T0 , T1); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 ...) const > { typedef R type( T0 , T1 ...); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 ...) volatile > { typedef R type( T0 , T1 ...); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 ...) const volatile > { typedef R type( T0 , T1 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1) > { typedef R type( T0 , T1); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 ...) > { typedef R type( T0 , T1 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1) const > { typedef R type( T0 , T1); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1) volatile > { typedef R type( T0 , T1); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1) const volatile > { typedef R type( T0 , T1); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 ...) const > { typedef R type( T0 , T1 ...); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 ...) volatile > { typedef R type( T0 , T1 ...); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 ...) const volatile > { typedef R type( T0 , T1 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1) > { typedef R type( T0 , T1); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 ...) > { typedef R type( T0 , T1 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1) const > { typedef R type( T0 , T1); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1) volatile > { typedef R type( T0 , T1); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1) const volatile > { typedef R type( T0 , T1); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 ...) const > { typedef R type( T0 , T1 ...); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 ...) volatile > { typedef R type( T0 , T1 ...); };
-
-template <class R, class T , class T0 , class T1>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 ...) const volatile > { typedef R type( T0 , T1 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2) > { typedef R type( T0 , T1 , T2); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 ...) > { typedef R type( T0 , T1 , T2 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2) const > { typedef R type( T0 , T1 , T2); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2) volatile > { typedef R type( T0 , T1 , T2); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2) const volatile > { typedef R type( T0 , T1 , T2); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const > { typedef R type( T0 , T1 , T2 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 ...) volatile > { typedef R type( T0 , T1 , T2 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 ...) const volatile > { typedef R type( T0 , T1 , T2 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2) > { typedef R type( T0 , T1 , T2); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 ...) > { typedef R type( T0 , T1 , T2 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2) const > { typedef R type( T0 , T1 , T2); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2) volatile > { typedef R type( T0 , T1 , T2); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2) const volatile > { typedef R type( T0 , T1 , T2); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 ...) const > { typedef R type( T0 , T1 , T2 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 ...) volatile > { typedef R type( T0 , T1 , T2 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 ...) const volatile > { typedef R type( T0 , T1 , T2 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2) > { typedef R type( T0 , T1 , T2); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 ...) > { typedef R type( T0 , T1 , T2 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2) const > { typedef R type( T0 , T1 , T2); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2) volatile > { typedef R type( T0 , T1 , T2); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2) const volatile > { typedef R type( T0 , T1 , T2); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 ...) const > { typedef R type( T0 , T1 , T2 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 ...) volatile > { typedef R type( T0 , T1 , T2 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 ...) const volatile > { typedef R type( T0 , T1 , T2 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2) > { typedef R type( T0 , T1 , T2); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 ...) > { typedef R type( T0 , T1 , T2 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2) const > { typedef R type( T0 , T1 , T2); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2) volatile > { typedef R type( T0 , T1 , T2); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2) const volatile > { typedef R type( T0 , T1 , T2); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 ...) const > { typedef R type( T0 , T1 , T2 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 ...) volatile > { typedef R type( T0 , T1 , T2 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 ...) const volatile > { typedef R type( T0 , T1 , T2 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) > { typedef R type( T0 , T1 , T2 , T3); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) > { typedef R type( T0 , T1 , T2 , T3 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const > { typedef R type( T0 , T1 , T2 , T3); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) volatile > { typedef R type( T0 , T1 , T2 , T3); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3) const volatile > { typedef R type( T0 , T1 , T2 , T3); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const > { typedef R type( T0 , T1 , T2 , T3 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3) > { typedef R type( T0 , T1 , T2 , T3); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 ...) > { typedef R type( T0 , T1 , T2 , T3 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3) const > { typedef R type( T0 , T1 , T2 , T3); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3) volatile > { typedef R type( T0 , T1 , T2 , T3); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3) const volatile > { typedef R type( T0 , T1 , T2 , T3); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 ...) const > { typedef R type( T0 , T1 , T2 , T3 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3) > { typedef R type( T0 , T1 , T2 , T3); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 ...) > { typedef R type( T0 , T1 , T2 , T3 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3) const > { typedef R type( T0 , T1 , T2 , T3); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3) volatile > { typedef R type( T0 , T1 , T2 , T3); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3) const volatile > { typedef R type( T0 , T1 , T2 , T3); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 ...) const > { typedef R type( T0 , T1 , T2 , T3 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3) > { typedef R type( T0 , T1 , T2 , T3); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 ...) > { typedef R type( T0 , T1 , T2 , T3 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3) const > { typedef R type( T0 , T1 , T2 , T3); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3) volatile > { typedef R type( T0 , T1 , T2 , T3); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3) const volatile > { typedef R type( T0 , T1 , T2 , T3); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 ...) const > { typedef R type( T0 , T1 , T2 , T3 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4) > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4) const > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4) > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4) const > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4) > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4) const > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 ...); };
-#endif
-#endif
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*const volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-#endif
-#endif
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-#endif
-
-#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24); };
-
-#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-
-template <class R, class T , class T0 , class T1 , class T2 , class T3 , class T4 , class T5 , class T6 , class T7 , class T8 , class T9 , class T10 , class T11 , class T12 , class T13 , class T14 , class T15 , class T16 , class T17 , class T18 , class T19 , class T20 , class T21 , class T22 , class T23 , class T24>
-struct rem_mem_pointer_impl<R (T::*volatile)( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...) const volatile > { typedef R type( T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 , T16 , T17 , T18 , T19 , T20 , T21 , T22 , T23 , T24 ...); };
-} // namespace detail
-#endif
-#endif
-#else
-
-#undef BOOST_STATIC_CONSTANT
-#define BOOST_PP_ITERATION_PARAMS_1 \
- (3, (0, 25, "boost/type_traits/remove_member_pointer.hpp"))
-#include BOOST_PP_ITERATE()
-#endif
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_member_pointer,T, typename detail::rem_mem_pointer_impl<T>::type)
-
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_MEMBER_POINTER_HPP_INCLUDED
-
-#else
-#define BOOST_PP_COUNTER BOOST_PP_FRAME_ITERATION(1)
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-@#endif
-@#endif
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-@#endif
-@#endif
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*const volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-@#endif
-@#endif
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-@#endif
-
-@#if !defined(BOOST_TT_NO_CV_FUNC_TEST)
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T)); };
-
-@#ifndef BOOST_TT_NO_ELLIPSIS_IN_FUNC_TESTING
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-
-template <class R, class T BOOST_PP_COMMA_IF(BOOST_PP_COUNTER) BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,class T)>
-struct rem_mem_pointer_impl<R (T::*volatile)(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...) const volatile > { typedef R type(BOOST_PP_ENUM_PARAMS(BOOST_PP_COUNTER,T) ...); };
-@#endif
-@#endif
-
-#undef BOOST_PP_COUNTER
-#endif // BOOST_PP_IS_ITERATING

Deleted: sandbox/type_traits/boost/type_traits/remove_pointer.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/remove_pointer.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,43 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
-#define BOOST_TT_REMOVE_POINTER_HPP_INCLUDED
-
-#include <boost/type_traits/broken_compiler_spec.hpp>
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_pointer.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T*,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* volatile,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_pointer,T* const volatile,T)
-
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_pointer,T,typename boost::detail::remove_pointer_impl<T>::type)
-
-#endif
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_POINTER_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/remove_reference.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/remove_reference.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,50 +0,0 @@
-
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
-#define BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED
-
-#include <boost/type_traits/broken_compiler_spec.hpp>
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_reference.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T&,T)
-
-#if defined(__BORLANDC__) && (__BORLANDC__ < 0x600)
-// these are illegal specialisations; cv-qualifies applied to
-// references have no effect according to [8.3.2p1],
-// C++ Builder requires them though as it treats cv-qualified
-// references as distinct types...
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& volatile,T)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_reference,T& const volatile,T)
-#endif
-
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_reference,T,typename boost::detail::remove_reference_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_REFERENCE_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/remove_volatile.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/remove_volatile.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,77 +0,0 @@
-
-// (C) Copyright Dave Abrahams, Steve Cleary, Beman Dawes, Howard
-// Hinnant & John Maddock 2000.
-// 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.
-
-
-#ifndef BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
-#define BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED
-
-#include <boost/type_traits/is_const.hpp>
-#include <boost/type_traits/broken_compiler_spec.hpp>
-#include <boost/type_traits/detail/cv_traits_impl.hpp>
-#include <boost/config.hpp>
-#include <boost/detail/workaround.hpp>
-
-#include <cstddef>
-
-#if BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-#include <boost/type_traits/msvc/remove_volatile.hpp>
-#endif
-
-// should be the last #include
-#include <boost/type_traits/detail/type_trait_def.hpp>
-
-namespace boost {
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-namespace detail {
-
-template <typename T, bool is_const>
-struct remove_volatile_helper
-{
- typedef T type;
-};
-
-template <typename T>
-struct remove_volatile_helper<T,true>
-{
- typedef T const type;
-};
-
-template <typename T>
-struct remove_volatile_impl
-{
- typedef typename remove_volatile_helper<
- typename cv_traits_imp<T*>::unqualified_type
- , ::boost::is_const<T>::value
- >::type type;
-};
-
-} // namespace detail
-
-// * convert a type T to a non-volatile type - remove_volatile<T>
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename boost::detail::remove_volatile_impl<T>::type)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_1(typename T,remove_volatile,T&,T&)
-#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T volatile[N],T type[N])
-BOOST_TT_AUX_TYPE_TRAIT_PARTIAL_SPEC1_2(typename T,std::size_t N,remove_volatile,T const volatile[N],T const type[N])
-#endif
-
-#elif !BOOST_WORKAROUND(BOOST_MSVC,<=1300)
-
-BOOST_TT_AUX_TYPE_TRAIT_DEF1(remove_volatile,T,typename boost::detail::remove_volatile_impl<T>::type)
-
-#endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-
-} // namespace boost
-
-#include <boost/type_traits/detail/type_trait_undef.hpp>
-
-#endif // BOOST_TT_REMOVE_VOLATILE_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/same_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/same_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,15 +0,0 @@
-// (C) Copyright Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant & John Maddock 2000.
-// 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.
-//
-// defines is_same:
-
-#ifndef BOOST_TT_SAME_TRAITS_HPP_INCLUDED
-#define BOOST_TT_SAME_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/is_same.hpp>
-
-#endif // BOOST_TT_SAME_TRAITS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/transform_traits.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/transform_traits.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,21 +0,0 @@
-// (C) Copyright Steve Cleary, Beman Dawes, Howard Hinnant & John Maddock 2000.
-// 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.
-//
-// defines traits classes for transforming one type to another:
-// remove_reference, add_reference, remove_bounds, remove_pointer.
-//
-
-#ifndef BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED
-#define BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED
-
-#include <boost/type_traits/add_pointer.hpp>
-#include <boost/type_traits/add_reference.hpp>
-#include <boost/type_traits/remove_bounds.hpp>
-#include <boost/type_traits/remove_pointer.hpp>
-#include <boost/type_traits/remove_reference.hpp>
-
-#endif // BOOST_TT_TRANSFORM_TRAITS_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/transform_traits_spec.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/transform_traits_spec.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,14 +0,0 @@
-
-// Copyright 2001 Aleksey Gurtovoy.
-// 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.
-
-#ifndef BOOST_TT_TRANSFORM_TRAITS_SPEC_HPP_INCLUDED
-#define BOOST_TT_TRANSFORM_TRAITS_SPEC_HPP_INCLUDED
-
-#include <boost/type_traits/broken_compiler_spec.hpp>
-
-#endif // BOOST_TT_TRANSFORM_TRAITS_SPEC_HPP_INCLUDED

Deleted: sandbox/type_traits/boost/type_traits/type_with_alignment.hpp
==============================================================================
--- sandbox/type_traits/boost/type_traits/type_with_alignment.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,391 +0,0 @@
-// (C) Copyright John Maddock 2000.
-// 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.
-
-#ifndef BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
-#define BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
-
-#include <boost/mpl/if.hpp>
-#include <boost/preprocessor/list/for_each_i.hpp>
-#include <boost/preprocessor/tuple/to_list.hpp>
-#include <boost/preprocessor/cat.hpp>
-#include <boost/preprocessor/list/transform.hpp>
-#include <boost/preprocessor/list/append.hpp>
-#include <boost/type_traits/alignment_of.hpp>
-#include <boost/type_traits/is_pod.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/config.hpp>
-
-// should be the last #include
-#include <boost/type_traits/detail/bool_trait_def.hpp>
-
-#include <cstddef>
-
-#ifdef BOOST_MSVC
-# pragma warning(push)
-# pragma warning(disable: 4121) // alignment is sensitive to packing
-#endif
-
-namespace boost {
-
-#ifndef __BORLANDC__
-
-namespace detail {
-
-class alignment_dummy;
-typedef void (*function_ptr)();
-typedef int (alignment_dummy::*member_ptr);
-typedef int (alignment_dummy::*member_function_ptr)();
-
-#ifdef BOOST_HAS_LONG_LONG
-#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
- 12, ( \
- char, short, int, long, ::boost::long_long_type, float, double, long double \
- , void*, function_ptr, member_ptr, member_function_ptr))
-#else
-#define BOOST_TT_ALIGNMENT_BASE_TYPES BOOST_PP_TUPLE_TO_LIST( \
- 11, ( \
- char, short, int, long, float, double, long double \
- , void*, function_ptr, member_ptr, member_function_ptr))
-#endif
-
-#define BOOST_TT_HAS_ONE_T(D,Data,T) boost::detail::has_one_T< T >
-
-#define BOOST_TT_ALIGNMENT_STRUCT_TYPES \
- BOOST_PP_LIST_TRANSFORM(BOOST_TT_HAS_ONE_T, \
- X, \
- BOOST_TT_ALIGNMENT_BASE_TYPES)
-
-#define BOOST_TT_ALIGNMENT_TYPES \
- BOOST_PP_LIST_APPEND(BOOST_TT_ALIGNMENT_BASE_TYPES, \
- BOOST_TT_ALIGNMENT_STRUCT_TYPES)
-
-//
-// lower_alignment_helper --
-//
-// This template gets instantiated a lot, so use partial
-// specialization when available to reduce the compiler burden.
-//
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template <bool found = true>
-struct lower_alignment_helper_impl
-{
- template <std::size_t, class>
- struct apply
- {
- typedef char type;
- enum { value = true };
- };
-};
-
-template <>
-struct lower_alignment_helper_impl<false>
-{
- template <std::size_t target, class TestType>
- struct apply
- : mpl::if_c<(alignment_of<TestType>::value == target), TestType, char>
- {
- enum { value = (alignment_of<TestType>::value == target) };
- };
-};
-
-template <bool found, std::size_t target, class TestType>
-struct lower_alignment_helper
- : lower_alignment_helper_impl<found>::template apply<target,TestType>
-{
-};
-#else
-template <bool found, std::size_t target, class TestType>
-struct lower_alignment_helper
-{
- typedef char type;
- enum { value = true };
-};
-
-template <std::size_t target, class TestType>
-struct lower_alignment_helper<false,target,TestType>
-{
- enum { value = (alignment_of<TestType>::value == target) };
- typedef typename mpl::if_c<value, TestType, char>::type type;
-};
-#endif
-
-#define BOOST_TT_CHOOSE_MIN_ALIGNMENT(R,P,I,T) \
- typename lower_alignment_helper< \
- BOOST_PP_CAT(found,I),target,T \
- >::type BOOST_PP_CAT(t,I); \
- enum { \
- BOOST_PP_CAT(found,BOOST_PP_INC(I)) \
- = lower_alignment_helper<BOOST_PP_CAT(found,I),target,T >::value \
- };
-
-#define BOOST_TT_CHOOSE_T(R,P,I,T) T BOOST_PP_CAT(t,I);
-
-template <typename T>
-struct has_one_T
-{
- T data;
-};
-
-template <std::size_t target>
-union lower_alignment
-{
- enum { found0 = false };
-
- BOOST_PP_LIST_FOR_EACH_I(
- BOOST_TT_CHOOSE_MIN_ALIGNMENT
- , ignored
- , BOOST_TT_ALIGNMENT_TYPES
- )
-};
-
-union max_align
-{
- BOOST_PP_LIST_FOR_EACH_I(
- BOOST_TT_CHOOSE_T
- , ignored
- , BOOST_TT_ALIGNMENT_TYPES
- )
-};
-
-#undef BOOST_TT_ALIGNMENT_BASE_TYPES
-#undef BOOST_TT_HAS_ONE_T
-#undef BOOST_TT_ALIGNMENT_STRUCT_TYPES
-#undef BOOST_TT_ALIGNMENT_TYPES
-#undef BOOST_TT_CHOOSE_MIN_ALIGNMENT
-#undef BOOST_TT_CHOOSE_T
-
-template<std::size_t TAlign, std::size_t Align>
-struct is_aligned
-{
- BOOST_STATIC_CONSTANT(bool,
- value = (TAlign >= Align) & (TAlign % Align == 0)
- );
-};
-
-#ifdef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::max_align,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<1> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<2> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<4> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<8> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<10> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<16> ,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::detail::lower_alignment<32> ,true)
-#endif
-
-} // namespace detail
-
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
-template<std::size_t Align>
-struct is_pod< ::boost::detail::lower_alignment<Align> >
-{
- BOOST_STATIC_CONSTANT(std::size_t, value = true);
-};
-#endif
-
-// This alignment method originally due to Brian Parker, implemented by David
-// Abrahams, and then ported here by Doug Gregor.
-namespace detail{
-
-template <std::size_t Align>
-class type_with_alignment_imp
-{
- typedef ::boost::detail::lower_alignment<Align> t1;
- typedef typename mpl::if_c<
- ::boost::detail::is_aligned< ::boost::alignment_of<t1>::value,Align >::value
- , t1
- , ::boost::detail::max_align
- >::type align_t;
-
- BOOST_STATIC_CONSTANT(std::size_t, found = alignment_of<align_t>::value);
-
- BOOST_STATIC_ASSERT(found >= Align);
- BOOST_STATIC_ASSERT(found % Align == 0);
-
- public:
- typedef align_t type;
-};
-
-}
-
-template <std::size_t Align>
-class type_with_alignment
- : public ::boost::detail::type_with_alignment_imp<Align>
-{
-};
-
-#if defined(__GNUC__)
-namespace align {
-struct __attribute__((__aligned__(2))) a2 {};
-struct __attribute__((__aligned__(4))) a4 {};
-struct __attribute__((__aligned__(8))) a8 {};
-struct __attribute__((__aligned__(16))) a16 {};
-struct __attribute__((__aligned__(32))) a32 {};
-}
-
-template<> class type_with_alignment<1> { public: typedef char type; };
-template<> class type_with_alignment<2> { public: typedef align::a2 type; };
-template<> class type_with_alignment<4> { public: typedef align::a4 type; };
-template<> class type_with_alignment<8> { public: typedef align::a8 type; };
-template<> class type_with_alignment<16> { public: typedef align::a16 type; };
-template<> class type_with_alignment<32> { public: typedef align::a32 type; };
-
-namespace detail {
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a2,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a4,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a32,true)
-}
-#endif
-#if (defined(BOOST_MSVC) || (defined(BOOST_INTEL) && defined(_MSC_VER))) && _MSC_VER >= 1300
-//
-// MSVC supports types which have alignments greater than the normal
-// maximum: these are used for example in the types __m64 and __m128
-// to provide types with alignment requirements which match the SSE
-// registers. Therefore we extend type_with_alignment<> to support
-// such types, however, we have to be careful to use a builtin type
-// whenever possible otherwise we break previously working code:
-// see http://article.gmane.org/gmane.comp.lib.boost.devel/173011
-// for an example and test case. Thus types like a8 below will
-// be used *only* if the existing implementation can't provide a type
-// with suitable alignment. This does mean however, that type_with_alignment<>
-// may return a type which cannot be passed through a function call
-// by value (and neither can any type containing such a type like
-// Boost.Optional). However, this only happens when we have no choice
-// in the matter because no other "ordinary" type is available.
-//
-namespace align {
-struct __declspec(align(8)) a8 {
- char m[8];
- typedef a8 type;
-};
-struct __declspec(align(16)) a16 {
- char m[16];
- typedef a16 type;
-};
-struct __declspec(align(32)) a32 {
- char m[32];
- typedef a32 type;
-};
-struct __declspec(align(64)) a64
-{
- char m[64];
- typedef a64 type;
-};
-struct __declspec(align(128)) a128 {
- char m[128];
- typedef a128 type;
-};
-}
-
-template<> class type_with_alignment<8>
-{
- typedef mpl::if_c<
- ::boost::alignment_of<detail::max_align>::value < 8,
- align::a8,
- detail::type_with_alignment_imp<8> >::type t1;
-public:
- typedef t1::type type;
-};
-template<> class type_with_alignment<16>
-{
- typedef mpl::if_c<
- ::boost::alignment_of<detail::max_align>::value < 16,
- align::a16,
- detail::type_with_alignment_imp<16> >::type t1;
-public:
- typedef t1::type type;
-};
-template<> class type_with_alignment<32>
-{
- typedef mpl::if_c<
- ::boost::alignment_of<detail::max_align>::value < 32,
- align::a32,
- detail::type_with_alignment_imp<32> >::type t1;
-public:
- typedef t1::type type;
-};
-template<> class type_with_alignment<64> {
- typedef mpl::if_c<
- ::boost::alignment_of<detail::max_align>::value < 64,
- align::a64,
- detail::type_with_alignment_imp<64> >::type t1;
-public:
- typedef t1::type type;
-};
-template<> class type_with_alignment<128> {
- typedef mpl::if_c<
- ::boost::alignment_of<detail::max_align>::value < 128,
- align::a128,
- detail::type_with_alignment_imp<128> >::type t1;
-public:
- typedef t1::type type;
-};
-
-namespace detail {
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a32,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a64,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a128,true)
-}
-#endif
-
-#else
-
-//
-// Borland specific version, we have this for two reasons:
-// 1) The version above doesn't always compile (with the new test cases for example)
-// 2) Because of Borlands #pragma option we can create types with alignments that are
-// greater that the largest aligned builtin type.
-
-namespace align{
-#pragma option push -a16
-struct a2{ short s; };
-struct a4{ int s; };
-struct a8{ double s; };
-struct a16{ long double s; };
-#pragma option pop
-}
-
-namespace detail {
-
-typedef ::boost::align::a16 max_align;
-
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a2,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a4,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a8,true)
-BOOST_TT_AUX_BOOL_TRAIT_IMPL_SPEC1(is_pod,::boost::align::a16,true)
-}
-
-template <std::size_t N> struct type_with_alignment
-{
- // We should never get to here, but if we do use the maximally
- // aligned type:
- // BOOST_STATIC_ASSERT(0);
- typedef align::a16 type;
-};
-template <> struct type_with_alignment<1>{ typedef char type; };
-template <> struct type_with_alignment<2>{ typedef align::a2 type; };
-template <> struct type_with_alignment<4>{ typedef align::a4 type; };
-template <> struct type_with_alignment<8>{ typedef align::a8 type; };
-template <> struct type_with_alignment<16>{ typedef align::a16 type; };
-
-#endif
-
-} // namespace boost
-
-#ifdef BOOST_MSVC
-# pragma warning(pop)
-#endif
-
-#include <boost/type_traits/detail/bool_trait_undef.hpp>
-
-#endif // BOOST_TT_TYPE_WITH_ALIGNMENT_INCLUDED
-
-

Added: sandbox/type_traits/libs/type_traits/doc/add_lvalue_reference.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/add_lvalue_reference.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,47 @@
+[/
+ Copyright 2010 John Maddock.
+ 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).
+]
+
+[section:add_lvalue_reference add_lvalue_reference]
+
+ template <class T>
+ struct add_lvalue_reference
+ {
+ typedef __below type;
+ };
+
+__type If `T` names an object or function type then the member typedef `type`
+shall name `T&`; otherwise, if `T` names a type ['rvalue reference to U] then
+the member typedef type shall name `U&`; otherwise, type shall name `T`.
+
+__std_ref 20.7.6.2.
+
+__compat If the compiler does not support partial specialization of class-templates
+then this template will compile, but the member `type` will always be the same as
+type `T` except where __transform_workaround have been applied.
+
+__header ` #include <boost/type_traits/add_lvalue_reference.hpp>` or ` #include <boost/type_traits.hpp>`
+
+[table Examples
+
+[ [Expression] [Result Type]]
+
+[[`add_lvalue_reference<int>::type`][`int&`]]
+
+[[`add_lvalue_reference<int const&>::type`] [`int const&`]]
+
+[[`add_lvalue_reference<int*>::type`] [`int*&`]]
+
+[[`add_lvalue_reference<int*&>::type`] [`int*&`]]
+
+[[`add_lvalue_reference<int&&>::type`][`int&`]]
+
+[[`add_lvalue_reference<void>::type`][`void`]]
+
+]
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/add_rvalue_reference.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/add_rvalue_reference.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,50 @@
+[/
+ Copyright 2010 John Maddock.
+ 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).
+]
+
+[section:add_rvalue_reference add_rvalue_reference]
+
+ template <class T>
+ struct add_rvalue_reference
+ {
+ typedef __below type;
+ };
+
+__type If `T` names an object or function type then the member typedef type
+shall name `T&&`; otherwise, type shall name `T`. ['\[Note: This rule reflects
+the semantics of reference collapsing. For example, when a type `T` names
+a type U&, the type `add_rvalue_reference<T>::type` is not an rvalue
+reference. -end note\]].
+
+__std_ref 20.7.6.2.
+
+__compat If the compiler does not support partial specialization of class-templates
+and rvalue references
+then this template will compile, but the member `type` will always be the same as
+type `T`.
+
+__header ` #include <boost/type_traits/add_rvalue_reference.hpp>` or ` #include <boost/type_traits.hpp>`
+
+[table Examples
+
+[ [Expression] [Result Type]]
+
+[[`add_rvalue_reference<int>::type`][`int&&`]]
+
+[[`add_rvalue_reference<int const&>::type`] [`int const&`]]
+
+[[`add_rvalue_reference<int*>::type`] [`int*&&`]]
+
+[[`add_rvalue_reference<int*&>::type`] [`int*&`]]
+
+[[`add_rvalue_reference<int&&>::type`][`int&&`]]
+
+[[`add_rvalue_reference<void>::type`][`void`]]
+
+]
+
+[endsect]
+

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_addition.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_addition.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_addition can_call_addition]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_addition : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs+rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs+rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator+`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs+rhs); // is valid if can_call_addition<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_addition.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_addition<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_addition<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_addition<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_addition<long>` inherits from `__true_type`.]
-
-[:`can_call_addition<int, int, int>` inherits from `__true_type`.]
-[:`can_call_addition<int, int, long>` inherits from `__true_type`.]
-[:`can_call_addition<int, double, double>` inherits from `__true_type`.]
-[:`can_call_addition<int, double, int>` inherits from `__true_type`.]
-[:`can_call_addition<const int, int>::value` inherits from `__true_type`.]
-
-[:`can_call_addition<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator+` is public or not:
-if `operator+` is defined as a private member of `LHS` then
-instantiating `can_call_addition<LHS>` will produce a compiler error.
-For this reason `can_call_addition` cannot be used to determine whether a type has a public `operator+` or not.
-``
-struct A { private: void operator+(const A&); };
-boost::can_call_addition<A>::value; // error: A::operator+(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator+(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_addition<A>::value; // this is fine
-boost::can_call_addition<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_addition_assignment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_addition_assignment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_addition_assignment can_call_addition_assignment]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_addition_assignment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs+=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs+=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator+=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs+=rhs); // is valid if can_call_addition_assignment<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_addition_assignment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_addition_assignment<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_addition_assignment<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_addition_assignment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_addition_assignment<long>` inherits from `__true_type`.]
-
-[:`can_call_addition_assignment<int, int, int>` inherits from `__true_type`.]
-[:`can_call_addition_assignment<int, int, long>` inherits from `__true_type`.]
-[:`can_call_addition_assignment<int, double, double>` inherits from `__true_type`.]
-[:`can_call_addition_assignment<int, double, int>` inherits from `__true_type`.]
-
-[:`can_call_addition_assignment<const int, int>::value` inherits from `__false_type`.]
-[:`can_call_addition_assignment<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator+=` is public or not:
-if `operator+=` is defined as a private member of `LHS` then
-instantiating `can_call_addition_assignment<LHS>` will produce a compiler error.
-For this reason `can_call_addition_assignment` cannot be used to determine whether a type has a public `operator+=` or not.
-``
-struct A { private: void operator+=(const A&); };
-boost::can_call_addition_assignment<A>::value; // error: A::operator+=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator+=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_addition_assignment<A>::value; // this is fine
-boost::can_call_addition_assignment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_and.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_and.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,68 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_and can_call_and]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_and : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs&&rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs&&rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator&&`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs&&rhs); // is valid if can_call_and<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_and.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_and<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_and<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_and<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_and<bool>` inherits from `__true_type`.]
-
-[:`can_call_and<int, int, bool>` inherits from `__true_type`.]
-[:`can_call_and<int, int, long>` inherits from `__true_type`.]
-[:`can_call_and<int, double, bool>` inherits from `__true_type`.]
-[:`can_call_and<const int, int>::value` inherits from `__true_type`.]
-
-[:`can_call_and<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator&&` is public or not:
-if `operator&&` is defined as a private member of `LHS` then
-instantiating `can_call_and<LHS>` will produce a compiler error.
-For this reason `can_call_and` cannot be used to determine whether a type has a public `operator&&` or not.
-``
-struct A { private: void operator&&(const A&); };
-boost::can_call_and<A>::value; // error: A::operator&&(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator&&(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_and<A>::value; // this is fine
-boost::can_call_and<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_and.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_and.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_bitwise_and can_call_bitwise_and]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_bitwise_and : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs&rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs&rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator&`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs&rhs); // is valid if can_call_bitwise_and<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_bitwise_and.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_bitwise_and<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_bitwise_and<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_bitwise_and<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_bitwise_and<long>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_and<int, int, int>` inherits from `__true_type`.]
-[:`can_call_bitwise_and<const int, int>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_and<int, double, bool>` inherits from `__false_type`.]
-[:`can_call_bitwise_and<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator&` is public or not:
-if `operator&` is defined as a private member of `LHS` then
-instantiating `can_call_bitwise_and<LHS>` will produce a compiler error.
-For this reason `can_call_bitwise_and` cannot be used to determine whether a type has a public `operator&` or not.
-``
-struct A { private: void operator&(const A&); };
-boost::can_call_bitwise_and<A>::value; // error: A::operator&(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator&(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_bitwise_and<A>::value; // this is fine
-boost::can_call_bitwise_and<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_and_assignment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_and_assignment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_bitwise_and_assignment can_call_bitwise_and_assignment]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_bitwise_and_assignment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs&=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs&=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator&=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs&=rhs); // is valid if can_call_bitwise_and_assignment<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_bitwise_and_assignment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_bitwise_and_assignment<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_bitwise_and_assignment<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_bitwise_and_assignment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_bitwise_and_assignment<long>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_and_assignment<int, int, int>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_and_assignment<const int, int>` inherits from `__false_type`.]
-[:`can_call_bitwise_and_assignment<int, double, bool>` inherits from `__false_type`.]
-[:`can_call_bitwise_and_assignment<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator&=` is public or not:
-if `operator&=` is defined as a private member of `LHS` then
-instantiating `can_call_bitwise_and_assignment<LHS>` will produce a compiler error.
-For this reason `can_call_bitwise_and_assignment` cannot be used to determine whether a type has a public `operator&=` or not.
-``
-struct A { private: void operator&=(const A&); };
-boost::can_call_bitwise_and_assignment<A>::value; // error: A::operator&=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator&=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_bitwise_and_assignment<A>::value; // this is fine
-boost::can_call_bitwise_and_assignment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_or.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_or.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_bitwise_or can_call_bitwise_or]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_bitwise_or : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs|rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs|rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator|`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs|rhs); // is valid if can_call_bitwise_or<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_bitwise_or.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_bitwise_or<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_bitwise_or<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_bitwise_or<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_bitwise_or<long>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_or<int, int, int>` inherits from `__true_type`.]
-[:`can_call_bitwise_or<const int, int>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_or<int, double, bool>` inherits from `__false_type`.]
-[:`can_call_bitwise_or<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator|` is public or not:
-if `operator|` is defined as a private member of `LHS` then
-instantiating `can_call_bitwise_or<LHS>` will produce a compiler error.
-For this reason `can_call_bitwise_or` cannot be used to determine whether a type has a public `operator|` or not.
-``
-struct A { private: void operator|(const A&); };
-boost::can_call_bitwise_or<A>::value; // error: A::operator|(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator|(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_bitwise_or<A>::value; // this is fine
-boost::can_call_bitwise_or<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_or_assignment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_or_assignment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_bitwise_or_assignment can_call_bitwise_or_assignment]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_bitwise_or_assignment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs|=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs|=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator|=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs|=rhs); // is valid if can_call_bitwise_or_assignment<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_bitwise_or_assignment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_bitwise_or_assignment<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_bitwise_or_assignment<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_bitwise_or_assignment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_bitwise_or_assignment<long>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_or_assignment<int, int, int>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_or_assignment<const int, int>` inherits from `__false_type`.]
-[:`can_call_bitwise_or_assignment<int, double, bool>` inherits from `__false_type`.]
-[:`can_call_bitwise_or_assignment<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator|=` is public or not:
-if `operator|=` is defined as a private member of `LHS` then
-instantiating `can_call_bitwise_or_assignment<LHS>` will produce a compiler error.
-For this reason `can_call_bitwise_or_assignment` cannot be used to determine whether a type has a public `operator|=` or not.
-``
-struct A { private: void operator|=(const A&); };
-boost::can_call_bitwise_or_assignment<A>::value; // error: A::operator|=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator|=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_bitwise_or_assignment<A>::value; // this is fine
-boost::can_call_bitwise_or_assignment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_xor.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_xor.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_bitwise_xor can_call_bitwise_xor]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_bitwise_xor : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs^rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs^rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator^`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs^rhs); // is valid if can_call_bitwise_xor<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_bitwise_xor.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_bitwise_xor<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_bitwise_xor<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_bitwise_xor<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_bitwise_xor<long>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_xor<int, int, int>` inherits from `__true_type`.]
-[:`can_call_bitwise_xor<const int, int>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_xor<int, double, bool>` inherits from `__false_type`.]
-[:`can_call_bitwise_xor<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator^` is public or not:
-if `operator^` is defined as a private member of `LHS` then
-instantiating `can_call_bitwise_xor<LHS>` will produce a compiler error.
-For this reason `can_call_bitwise_xor` cannot be used to determine whether a type has a public `operator^` or not.
-``
-struct A { private: void operator^(const A&); };
-boost::can_call_bitwise_xor<A>::value; // error: A::operator^(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator^(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_bitwise_xor<A>::value; // this is fine
-boost::can_call_bitwise_xor<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_xor_assignment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_bitwise_xor_assignment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_bitwise_xor_assignment can_call_bitwise_xor_assignment]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_bitwise_xor_assignment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs^=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs^=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator^=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs^=rhs); // is valid if can_call_bitwise_xor_assignment<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_bitwise_xor_assignment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_bitwise_xor_assignment<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_bitwise_xor_assignment<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_bitwise_xor_assignment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_bitwise_xor_assignment<long>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_xor_assignment<int, int, int>` inherits from `__true_type`.]
-
-[:`can_call_bitwise_xor_assignment<const int, int>` inherits from `__false_type`.]
-[:`can_call_bitwise_xor_assignment<int, double, bool>` inherits from `__false_type`.]
-[:`can_call_bitwise_xor_assignment<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator^=` is public or not:
-if `operator^=` is defined as a private member of `LHS` then
-instantiating `can_call_bitwise_xor_assignment<LHS>` will produce a compiler error.
-For this reason `can_call_bitwise_xor_assignment` cannot be used to determine whether a type has a public `operator^=` or not.
-``
-struct A { private: void operator^=(const A&); };
-boost::can_call_bitwise_xor_assignment<A>::value; // error: A::operator^=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator^=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_bitwise_xor_assignment<A>::value; // this is fine
-boost::can_call_bitwise_xor_assignment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_complement.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_complement.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_complement can_call_complement]
- template <class RHS, class RET=dont_care>
- struct can_call_complement : public __tof {};
-
-__inherit
-If (i) `rhs` of type `RHS` can be used in expression `~rhs`,
-and (ii) `RET=dont_care` or the result of expression `~rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of prefix `operator~`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-RHS rhs;
-f(~rhs); // is valid if can_call_complement<RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_complement.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_complement<RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_complement<RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_complement<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_complement<long>` inherits from `__true_type`.]
-
-[:`can_call_complement<int, int>` inherits from `__true_type`.]
-[:`can_call_complement<int, long>` inherits from `__true_type`.]
-[:`can_call_complement<const int>` inherits from `__true_type`.]
-
-[:`can_call_complement<int*>` inherits from `__false_type`.]
-[:`can_call_complement<double, double>` inherits from `__false_type`.]
-[:`can_call_complement<double, int>` inherits from `__false_type`.]
-[:`can_call_complement<int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether prefix `operator~` is public or not:
-if `operator~` is defined as a private member of `RHS` then
-instantiating `can_call_complement<RHS>` will produce a compiler error.
-For this reason `can_call_complement` cannot be used to determine whether a type has a public `operator~` or not.
-``
-struct A { private: void operator~(); };
-boost::can_call_complement<A>::value; // error: A::operator~() is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator~(const A&);
-struct B { operator A(); };
-boost::can_call_complement<A>::value; // this is fine
-boost::can_call_complement<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_dereference.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_dereference.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,72 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_dereference can_call_dereference]
- template <class RHS, class RET=dont_care>
- struct can_call_dereference : public __tof {};
-
-__inherit
-If (i) `rhs` of type `RHS` can be used in expression `*rhs`,
-and (ii) `RET=dont_care` or the result of expression `*rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of prefix `operator*`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-RHS rhs;
-f(*rhs); // is valid if can_call_dereference<RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_dereference.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_dereference<RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_dereference<RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_dereference<int*>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_dereference<long*>` inherits from `__true_type`.]
-
-
-[:`can_call_dereference<int*, int>` inherits from `__true_type`.]
-[:`can_call_dereference<int*, const int>` inherits from `__true_type`.]
-[:`can_call_dereference<int const *>` inherits from `__true_type`.]
-[:`can_call_dereference<int * const>` inherits from `__true_type`.]
-[:`can_call_dereference<int const * const>` inherits from `__true_type`.]
-
-[:`can_call_dereference<int>` inherits from `__false_type`.]
-[:`can_call_dereference<double>` inherits from `__false_type`.]
-[:`can_call_dereference<void*>` inherits from `__false_type`.]
-[:`can_call_dereference<const int*, int&>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether prefix `operator*` is public or not:
-if `operator*` is defined as a private member of `RHS` then
-instantiating `can_call_dereference<RHS>` will produce a compiler error.
-For this reason `can_call_dereference` cannot be used to determine whether a type has a public `operator*` or not.
-``
-struct A { private: void operator*(); };
-boost::can_call_dereference<A>::value; // error: A::operator*() is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator*(const A&);
-struct B { operator A(); };
-boost::can_call_dereference<A>::value; // this is fine
-boost::can_call_dereference<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_division.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_division.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_division can_call_division]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_division : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs/rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs/rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator/`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs/rhs); // is valid if can_call_division<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_division.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_division<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_division<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_division<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_division<long>` inherits from `__true_type`.]
-
-[:`can_call_division<int, int, int>` inherits from `__true_type`.]
-[:`can_call_division<int, int, long>` inherits from `__true_type`.]
-[:`can_call_division<int, double, double>` inherits from `__true_type`.]
-[:`can_call_division<int, double, int>` inherits from `__true_type`.]
-[:`can_call_division<const int, int>::value` inherits from `__true_type`.]
-
-[:`can_call_division<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator/` is public or not:
-if `operator/` is defined as a private member of `LHS` then
-instantiating `can_call_division<LHS>` will produce a compiler error.
-For this reason `can_call_division` cannot be used to determine whether a type has a public `operator/` or not.
-``
-struct A { private: void operator/(const A&); };
-boost::can_call_division<A>::value; // error: A::operator/(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator/(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_division<A>::value; // this is fine
-boost::can_call_division<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_division_assignment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_division_assignment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_division_assignment can_call_division_assignment]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_division_assignment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs/=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs/=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator/=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs/=rhs); // is valid if can_call_division_assignment<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_division_assignment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_division_assignment<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_division_assignment<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_division_assignment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_division_assignment<long>` inherits from `__true_type`.]
-
-[:`can_call_division_assignment<int, int, int>` inherits from `__true_type`.]
-[:`can_call_division_assignment<int, int, long>` inherits from `__true_type`.]
-[:`can_call_division_assignment<int, double, double>` inherits from `__true_type`.]
-[:`can_call_division_assignment<int, double, int>` inherits from `__true_type`.]
-
-[:`can_call_division_assignment<const int, int>::value` inherits from `__false_type`.]
-[:`can_call_division_assignment<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator/=` is public or not:
-if `operator/=` is defined as a private member of `LHS` then
-instantiating `can_call_division_assignment<LHS>` will produce a compiler error.
-For this reason `can_call_division_assignment` cannot be used to determine whether a type has a public `operator/=` or not.
-``
-struct A { private: void operator/=(const A&); };
-boost::can_call_division_assignment<A>::value; // error: A::operator/=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator/=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_division_assignment<A>::value; // this is fine
-boost::can_call_division_assignment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_equal.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_equal can_call_equal]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_equal : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs==rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs==rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator==`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs==rhs); // is valid if can_call_equal<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_equal.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_equal<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_equal<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_equal<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_equal<long>` inherits from `__true_type`.]
-
-[:`can_call_equal<int, int, bool>` inherits from `__true_type`.]
-[:`can_call_equal<int, double, bool>` inherits from `__true_type`.]
-[:`can_call_equal<const int>` inherits from `__true_type`.]
-
-[:`can_call_equal<int*, int>` inherits from `__false_type`.]
-[:`can_call_equal<int*, double*>` inherits from `__false_type`.]
-[:`can_call_equal<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator==` is public or not:
-if `operator==` is defined as a private member of `LHS` then
-instantiating `can_call_equal<LHS>` will produce a compiler error.
-For this reason `can_call_equal` cannot be used to determine whether a type has a public `operator==` or not.
-``
-struct A { private: void operator==(const A&); };
-boost::can_call_equal<A>::value; // error: A::operator==(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator==(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_equal<A>::value; // this is fine
-boost::can_call_equal<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_greater.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_greater.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_greater can_call_greater]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_greater : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs>rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs>rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator>`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs>rhs); // is valid if can_call_greater<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_greater.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_greater<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_greater<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_greater<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_greater<long>` inherits from `__true_type`.]
-
-[:`can_call_greater<int, int, bool>` inherits from `__true_type`.]
-[:`can_call_greater<int, double, bool>` inherits from `__true_type`.]
-[:`can_call_greater<const int>` inherits from `__true_type`.]
-
-[:`can_call_greater<int*, int>` inherits from `__false_type`.]
-[:`can_call_greater<int*, double*>` inherits from `__false_type`.]
-[:`can_call_greater<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator>` is public or not:
-if `operator>` is defined as a private member of `LHS` then
-instantiating `can_call_greater<LHS>` will produce a compiler error.
-For this reason `can_call_greater` cannot be used to determine whether a type has a public `operator>` or not.
-``
-struct A { private: void operator>(const A&); };
-boost::can_call_greater<A>::value; // error: A::operator>(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator>(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_greater<A>::value; // this is fine
-boost::can_call_greater<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_greater_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_greater_equal.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_greater_equal can_call_greater_equal]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_greater_equal : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs>=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs>=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator>=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs>=rhs); // is valid if can_call_greater_equal<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_greater_equal.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_greater_equal<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_greater_equal<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_greater_equal<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_greater_equal<long>` inherits from `__true_type`.]
-
-[:`can_call_greater_equal<int, int, bool>` inherits from `__true_type`.]
-[:`can_call_greater_equal<int, double, bool>` inherits from `__true_type`.]
-[:`can_call_greater_equal<const int>` inherits from `__true_type`.]
-
-[:`can_call_greater_equal<int*, int>` inherits from `__false_type`.]
-[:`can_call_greater_equal<int*, double*>` inherits from `__false_type`.]
-[:`can_call_greater_equal<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator>=` is public or not:
-if `operator>=` is defined as a private member of `LHS` then
-instantiating `can_call_greater_equal<LHS>` will produce a compiler error.
-For this reason `can_call_greater_equal` cannot be used to determine whether a type has a public `operator>=` or not.
-``
-struct A { private: void operator>=(const A&); };
-boost::can_call_greater_equal<A>::value; // error: A::operator>=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator>=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_greater_equal<A>::value; // this is fine
-boost::can_call_greater_equal<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_left_shift.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_left_shift.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,70 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_left_shift can_call_left_shift]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_left_shift : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs<<rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs<<rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator<<`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs<<rhs); // is valid if can_call_left_shift<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_left_shift.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_left_shift<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_left_shift<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_left_shift<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_left_shift<long>` inherits from `__true_type`.]
-
-[:`can_call_left_shift<int, int, int>` inherits from `__true_type`.]
-[:`can_call_left_shift<const int, int>` inherits from `__true_type`.]
-[:`can_call_left_shift<std::ostream, int>` inherits from `__true_type`.]
-[:`can_call_left_shift<std::ostream, char*, std::ostream>` inherits from `__true_type`.]
-[:`can_call_left_shift<std::ostream, std::string>` inherits from `__true_type`.]
-
-[:`can_call_left_shift<int, double, bool>` inherits from `__false_type`.]
-[:`can_call_left_shift<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator<<` is public or not:
-if `operator<<` is defined as a private member of `LHS` then
-instantiating `can_call_left_shift<LHS>` will produce a compiler error.
-For this reason `can_call_left_shift` cannot be used to determine whether a type has a public `operator<<` or not.
-``
-struct A { private: void operator<<(const A&); };
-boost::can_call_left_shift<A>::value; // error: A::operator<<(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator<<(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_left_shift<A>::value; // this is fine
-boost::can_call_left_shift<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_left_shift_assignment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_left_shift_assignment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_left_shift_assignment can_call_left_shift_assignment]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_left_shift_assignment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs<<=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs<<=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator<<=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs<<=rhs); // is valid if can_call_left_shift_assignment<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_left_shift_assignment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_left_shift_assignment<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_left_shift_assignment<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_left_shift_assignment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_left_shift_assignment<long>` inherits from `__true_type`.]
-
-[:`can_call_left_shift_assignment<int, int, int>` inherits from `__true_type`.]
-
-[:`can_call_left_shift_assignment<const int, int>` inherits from `__false_type`.]
-[:`can_call_left_shift_assignment<int, double, bool>` inherits from `__false_type`.]
-[:`can_call_left_shift_assignment<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator<<=` is public or not:
-if `operator<<=` is defined as a private member of `LHS` then
-instantiating `can_call_left_shift_assignment<LHS>` will produce a compiler error.
-For this reason `can_call_left_shift_assignment` cannot be used to determine whether a type has a public `operator<<=` or not.
-``
-struct A { private: void operator<<=(const A&); };
-boost::can_call_left_shift_assignment<A>::value; // error: A::operator<<=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator<<=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_left_shift_assignment<A>::value; // this is fine
-boost::can_call_left_shift_assignment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_less.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_less.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_less can_call_less]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_less : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs<rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs<rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator<`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs<rhs); // is valid if can_call_less<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_less.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_less<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_less<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_less<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_less<long>` inherits from `__true_type`.]
-
-[:`can_call_less<int, int, bool>` inherits from `__true_type`.]
-[:`can_call_less<int, double, bool>` inherits from `__true_type`.]
-[:`can_call_less<const int>` inherits from `__true_type`.]
-
-[:`can_call_less<int*, int>` inherits from `__false_type`.]
-[:`can_call_less<int*, double*>` inherits from `__false_type`.]
-[:`can_call_less<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator<` is public or not:
-if `operator<` is defined as a private member of `LHS` then
-instantiating `can_call_less<LHS>` will produce a compiler error.
-For this reason `can_call_less` cannot be used to determine whether a type has a public `operator<` or not.
-``
-struct A { private: void operator<(const A&); };
-boost::can_call_less<A>::value; // error: A::operator<(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator<(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_less<A>::value; // this is fine
-boost::can_call_less<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_less_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_less_equal.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_less_equal can_call_less_equal]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_less_equal : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs<=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs<=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator<=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs<=rhs); // is valid if can_call_less_equal<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_less_equal.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_less_equal<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_less_equal<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_less_equal<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_less_equal<long>` inherits from `__true_type`.]
-
-[:`can_call_less_equal<int, int, bool>` inherits from `__true_type`.]
-[:`can_call_less_equal<int, double, bool>` inherits from `__true_type`.]
-[:`can_call_less_equal<const int>` inherits from `__true_type`.]
-
-[:`can_call_less_equal<int*, int>` inherits from `__false_type`.]
-[:`can_call_less_equal<int*, double*>` inherits from `__false_type`.]
-[:`can_call_less_equal<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator<=` is public or not:
-if `operator<=` is defined as a private member of `LHS` then
-instantiating `can_call_less_equal<LHS>` will produce a compiler error.
-For this reason `can_call_less_equal` cannot be used to determine whether a type has a public `operator<=` or not.
-``
-struct A { private: void operator<=(const A&); };
-boost::can_call_less_equal<A>::value; // error: A::operator<=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator<=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_less_equal<A>::value; // this is fine
-boost::can_call_less_equal<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_modulus.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_modulus.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_modulus can_call_modulus]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_modulus : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs%rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs%rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator%`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs%rhs); // is valid if can_call_modulus<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_modulus.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_modulus<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_modulus<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_modulus<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_modulus<long>` inherits from `__true_type`.]
-
-[:`can_call_modulus<int, int, int>` inherits from `__true_type`.]
-[:`can_call_modulus<int, int, long>` inherits from `__true_type`.]
-[:`can_call_modulus<const int, int>::value` inherits from `__true_type`.]
-
-[:`can_call_modulus<int, double>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator%` is public or not:
-if `operator%` is defined as a private member of `LHS` then
-instantiating `can_call_modulus<LHS>` will produce a compiler error.
-For this reason `can_call_modulus` cannot be used to determine whether a type has a public `operator%` or not.
-``
-struct A { private: void operator%(const A&); };
-boost::can_call_modulus<A>::value; // error: A::operator%(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator%(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_modulus<A>::value; // this is fine
-boost::can_call_modulus<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_modulus_assignment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_modulus_assignment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_modulus_assignment can_call_modulus_assignment]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_modulus_assignment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs%=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs%=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator%=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs%=rhs); // is valid if can_call_modulus_assignment<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_modulus_assignment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_modulus_assignment<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_modulus_assignment<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_modulus_assignment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_modulus_assignment<long>` inherits from `__true_type`.]
-
-[:`can_call_modulus_assignment<int, int, int>` inherits from `__true_type`.]
-[:`can_call_modulus_assignment<int, int, long>` inherits from `__true_type`.]
-
-[:`can_call_modulus_assignment<const int, int>::value` inherits from `__false_type`.]
-[:`can_call_modulus_assignment<int, double>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator%=` is public or not:
-if `operator%=` is defined as a private member of `LHS` then
-instantiating `can_call_modulus_assignment<LHS>` will produce a compiler error.
-For this reason `can_call_modulus_assignment` cannot be used to determine whether a type has a public `operator%=` or not.
-``
-struct A { private: void operator%=(const A&); };
-boost::can_call_modulus_assignment<A>::value; // error: A::operator%=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator%=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_modulus_assignment<A>::value; // this is fine
-boost::can_call_modulus_assignment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_multiplication.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_multiplication.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_multiplication can_call_multiplication]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_multiplication : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs*rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs*rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator*`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs*rhs); // is valid if can_call_multiplication<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_multiplication.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_multiplication<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_multiplication<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_multiplication<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_multiplication<long>` inherits from `__true_type`.]
-
-[:`can_call_multiplication<int, int, int>` inherits from `__true_type`.]
-[:`can_call_multiplication<int, int, long>` inherits from `__true_type`.]
-[:`can_call_multiplication<int, double, double>` inherits from `__true_type`.]
-[:`can_call_multiplication<int, double, int>` inherits from `__true_type`.]
-[:`can_call_multiplication<const int, int>::value` inherits from `__true_type`.]
-
-[:`can_call_multiplication<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator*` is public or not:
-if `operator*` is defined as a private member of `LHS` then
-instantiating `can_call_multiplication<LHS>` will produce a compiler error.
-For this reason `can_call_multiplication` cannot be used to determine whether a type has a public `operator*` or not.
-``
-struct A { private: void operator*(const A&); };
-boost::can_call_multiplication<A>::value; // error: A::operator*(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator*(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_multiplication<A>::value; // this is fine
-boost::can_call_multiplication<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_multiplication_assignment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_multiplication_assignment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_multiplication_assignment can_call_multiplication_assignment]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_multiplication_assignment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs*=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs*=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator*=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs*=rhs); // is valid if can_call_multiplication_assignment<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_multiplication_assignment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_multiplication_assignment<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_multiplication_assignment<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_multiplication_assignment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_multiplication_assignment<long>` inherits from `__true_type`.]
-
-[:`can_call_multiplication_assignment<int, int, int>` inherits from `__true_type`.]
-[:`can_call_multiplication_assignment<int, int, long>` inherits from `__true_type`.]
-[:`can_call_multiplication_assignment<int, double, double>` inherits from `__true_type`.]
-[:`can_call_multiplication_assignment<int, double, int>` inherits from `__true_type`.]
-
-[:`can_call_multiplication_assignment<const int, int>::value` inherits from `__false_type`.]
-[:`can_call_multiplication_assignment<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator*=` is public or not:
-if `operator*=` is defined as a private member of `LHS` then
-instantiating `can_call_multiplication_assignment<LHS>` will produce a compiler error.
-For this reason `can_call_multiplication_assignment` cannot be used to determine whether a type has a public `operator*=` or not.
-``
-struct A { private: void operator*=(const A&); };
-boost::can_call_multiplication_assignment<A>::value; // error: A::operator*=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator*=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_multiplication_assignment<A>::value; // this is fine
-boost::can_call_multiplication_assignment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_not.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_not.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,68 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_not can_call_not]
- template <class RHS, class RET=dont_care>
- struct can_call_not : public __tof {};
-
-__inherit
-If (i) `rhs` of type `RHS` can be used in expression `!rhs`,
-and (ii) `RET=dont_care` or the result of expression `!rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of prefix `operator!`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-RHS rhs;
-f(!rhs); // is valid if can_call_not<RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_not.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_not<RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_not<RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_not<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_not<bool>` inherits from `__true_type`.]
-
-[:`can_call_not<int, bool>` inherits from `__true_type`.]
-[:`can_call_not<int, long>` inherits from `__true_type`.]
-[:`can_call_not<double, double>` inherits from `__true_type`.]
-[:`can_call_not<double, bool>` inherits from `__true_type`.]
-[:`can_call_not<const bool>` inherits from `__true_type`.]
-
-[:`can_call_not<int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether prefix `operator!` is public or not:
-if `operator!` is defined as a private member of `RHS` then
-instantiating `can_call_not<RHS>` will produce a compiler error.
-For this reason `can_call_not` cannot be used to determine whether a type has a public `operator!` or not.
-``
-struct A { private: void operator!(); };
-boost::can_call_not<A>::value; // error: A::operator!() is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator!(const A&);
-struct B { operator A(); };
-boost::can_call_not<A>::value; // this is fine
-boost::can_call_not<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_not_equal.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_not_equal.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_not_equal can_call_not_equal]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_not_equal : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs!=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs!=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator!=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs!=rhs); // is valid if can_call_not_equal<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_not_equal.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_not_equal<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_not_equal<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_not_equal<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_not_equal<long>` inherits from `__true_type`.]
-
-[:`can_call_not_equal<int, int, bool>` inherits from `__true_type`.]
-[:`can_call_not_equal<int, double, bool>` inherits from `__true_type`.]
-[:`can_call_not_equal<const int>` inherits from `__true_type`.]
-
-[:`can_call_not_equal<int*, int>` inherits from `__false_type`.]
-[:`can_call_not_equal<int*, double*>` inherits from `__false_type`.]
-[:`can_call_not_equal<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator!=` is public or not:
-if `operator!=` is defined as a private member of `LHS` then
-instantiating `can_call_not_equal<LHS>` will produce a compiler error.
-For this reason `can_call_not_equal` cannot be used to determine whether a type has a public `operator!=` or not.
-``
-struct A { private: void operator!=(const A&); };
-boost::can_call_not_equal<A>::value; // error: A::operator!=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator!=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_not_equal<A>::value; // this is fine
-boost::can_call_not_equal<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_or.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_or.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,68 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_or can_call_or]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_or : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs||rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs||rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator||`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs||rhs); // is valid if can_call_or<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_or.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_or<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_or<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_or<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_or<bool>` inherits from `__true_type`.]
-
-[:`can_call_or<int, int, bool>` inherits from `__true_type`.]
-[:`can_call_or<int, int, long>` inherits from `__true_type`.]
-[:`can_call_or<int, double, bool>` inherits from `__true_type`.]
-[:`can_call_or<const int, int>::value` inherits from `__true_type`.]
-
-[:`can_call_or<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator||` is public or not:
-if `operator||` is defined as a private member of `LHS` then
-instantiating `can_call_or<LHS>` will produce a compiler error.
-For this reason `can_call_or` cannot be used to determine whether a type has a public `operator||` or not.
-``
-struct A { private: void operator||(const A&); };
-boost::can_call_or<A>::value; // error: A::operator||(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator||(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_or<A>::value; // this is fine
-boost::can_call_or<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_post_decrement.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_post_decrement.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,70 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_post_decrement can_call_post_decrement]
- template <class LHS, class RET=dont_care>
- struct can_call_post_decrement : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` can be used in expression `lhs--`,
-and (ii) `RET=dont_care` or the result of expression `lhs--` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of postfix `operator--`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-f(lhs--); // is valid if can_call_post_decrement<LHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_post_decrement.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_post_decrement<LHS, RET>::value_type` is the type `bool`.]
-[:`can_call_post_decrement<LHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_post_decrement<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_post_decrement<long>` inherits from `__true_type`.]
-
-[:`can_call_post_decrement<int, int>` inherits from `__true_type`.]
-[:`can_call_post_decrement<int, long>` inherits from `__true_type`.]
-[:`can_call_post_decrement<double, double>` inherits from `__true_type`.]
-[:`can_call_post_decrement<double, int>` inherits from `__true_type`.]
-
-[:`can_call_post_decrement<bool>` inherits from `__false_type`.]
-[:`can_call_post_decrement<const int>` inherits from `__false_type`.]
-[:`can_call_post_decrement<void*>` inherits from `__false_type`.]
-[:`can_call_post_decrement<int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether postfix `operator--` is public or not:
-if `operator--` is defined as a private member of `LHS` then
-instantiating `can_call_post_decrement<LHS>` will produce a compiler error.
-For this reason `can_call_post_decrement` cannot be used to determine whether a type has a public `operator--` or not.
-``
-struct A { private: void operator--(int); };
-boost::can_call_post_decrement<A>::value; // error: A::operator--(int) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator--(const A&, int);
-struct B { operator A(); };
-boost::can_call_post_decrement<A>::value; // this is fine
-boost::can_call_post_decrement<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_post_increment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_post_increment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,70 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_post_increment can_call_post_increment]
- template <class LHS, class RET=dont_care>
- struct can_call_post_increment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` can be used in expression `lhs++`,
-and (ii) `RET=dont_care` or the result of expression `lhs++` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of postfix `operator++`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-f(lhs++); // is valid if can_call_post_increment<LHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_post_increment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_post_increment<LHS, RET>::value_type` is the type `bool`.]
-[:`can_call_post_increment<LHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_post_increment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_post_increment<long>` inherits from `__true_type`.]
-
-[:`can_call_post_increment<int, int>` inherits from `__true_type`.]
-[:`can_call_post_increment<int, long>` inherits from `__true_type`.]
-[:`can_call_post_increment<double, double>` inherits from `__true_type`.]
-[:`can_call_post_increment<double, int>` inherits from `__true_type`.]
-[:`can_call_post_increment<bool>` inherits from `__true_type`.]
-
-[:`can_call_post_increment<const int>` inherits from `__false_type`.]
-[:`can_call_post_increment<void*>` inherits from `__false_type`.]
-[:`can_call_post_increment<int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether postfix `operator++` is public or not:
-if `operator++` is defined as a private member of `LHS` then
-instantiating `can_call_post_increment<LHS>` will produce a compiler error.
-For this reason `can_call_post_increment` cannot be used to determine whether a type has a public `operator++` or not.
-``
-struct A { private: void operator++(int); };
-boost::can_call_post_increment<A>::value; // error: A::operator++(int) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator++(const A&, int);
-struct B { operator A(); };
-boost::can_call_post_increment<A>::value; // this is fine
-boost::can_call_post_increment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_pre_decrement.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_pre_decrement.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,70 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_pre_decrement can_call_pre_decrement]
- template <class RHS, class RET=dont_care>
- struct can_call_pre_decrement : public __tof {};
-
-__inherit
-If (i) `rhs` of type `RHS` can be used in expression `--rhs`,
-and (ii) `RET=dont_care` or the result of expression `--rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of prefix `operator--`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-RHS rhs;
-f(--rhs); // is valid if can_call_pre_decrement<RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_pre_decrement.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_pre_decrement<RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_pre_decrement<RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_pre_decrement<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_pre_decrement<long>` inherits from `__true_type`.]
-
-[:`can_call_pre_decrement<int, int>` inherits from `__true_type`.]
-[:`can_call_pre_decrement<int, long>` inherits from `__true_type`.]
-[:`can_call_pre_decrement<double, double>` inherits from `__true_type`.]
-[:`can_call_pre_decrement<double, int>` inherits from `__true_type`.]
-
-[:`can_call_pre_decrement<bool>` inherits from `__false_type`.]
-[:`can_call_pre_decrement<const int>` inherits from `__false_type`.]
-[:`can_call_pre_decrement<void*>` inherits from `__false_type`.]
-[:`can_call_pre_decrement<int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether prefix `operator--` is public or not:
-if `operator--` is defined as a private member of `RHS` then
-instantiating `can_call_pre_decrement<RHS>` will produce a compiler error.
-For this reason `can_call_pre_decrement` cannot be used to determine whether a type has a public `operator--` or not.
-``
-struct A { private: void operator--(); };
-boost::can_call_pre_decrement<A>::value; // error: A::operator--() is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator--(const A&);
-struct B { operator A(); };
-boost::can_call_pre_decrement<A>::value; // this is fine
-boost::can_call_pre_decrement<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_pre_increment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_pre_increment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,70 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_pre_increment can_call_pre_increment]
- template <class RHS, class RET=dont_care>
- struct can_call_pre_increment : public __tof {};
-
-__inherit
-If (i) `rhs` of type `RHS` can be used in expression `++rhs`,
-and (ii) `RET=dont_care` or the result of expression `++rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of prefix `operator++`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-RHS rhs;
-f(++rhs); // is valid if can_call_pre_increment<RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_pre_increment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_pre_increment<RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_pre_increment<RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_pre_increment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_pre_increment<long>` inherits from `__true_type`.]
-
-[:`can_call_pre_increment<int, int>` inherits from `__true_type`.]
-[:`can_call_pre_increment<int, long>` inherits from `__true_type`.]
-[:`can_call_pre_increment<double, double>` inherits from `__true_type`.]
-[:`can_call_pre_increment<double, int>` inherits from `__true_type`.]
-[:`can_call_pre_increment<bool>` inherits from `__true_type`.]
-
-[:`can_call_pre_increment<const int>` inherits from `__false_type`.]
-[:`can_call_pre_increment<void*>` inherits from `__false_type`.]
-[:`can_call_pre_increment<int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether prefix `operator++` is public or not:
-if `operator++` is defined as a private member of `RHS` then
-instantiating `can_call_pre_increment<RHS>` will produce a compiler error.
-For this reason `can_call_pre_increment` cannot be used to determine whether a type has a public `operator++` or not.
-``
-struct A { private: void operator++(); };
-boost::can_call_pre_increment<A>::value; // error: A::operator++() is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator++(const A&);
-struct B { operator A(); };
-boost::can_call_pre_increment<A>::value; // this is fine
-boost::can_call_pre_increment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_right_shift.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_right_shift.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,70 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_right_shift can_call_right_shift]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_right_shift : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs>>rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs>>rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator>>`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs>>rhs); // is valid if can_call_right_shift<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_right_shift.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_right_shift<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_right_shift<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_right_shift<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_right_shift<long>` inherits from `__true_type`.]
-
-[:`can_call_right_shift<int, int, int>` inherits from `__true_type`.]
-[:`can_call_right_shift<const int, int>` inherits from `__true_type`.]
-[:`can_call_right_shift<std::istream, int&>` inherits from `__true_type`.]
-[:`can_call_right_shift<std::istream, char*, std::ostream>` inherits from `__true_type`.]
-[:`can_call_right_shift<std::istream, std::string&>` inherits from `__true_type`.]
-
-[:`can_call_right_shift<int, double, bool>` inherits from `__false_type`.]
-[:`can_call_right_shift<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator>>` is public or not:
-if `operator>>` is defined as a private member of `LHS` then
-instantiating `can_call_right_shift<LHS>` will produce a compiler error.
-For this reason `can_call_right_shift` cannot be used to determine whether a type has a public `operator>>` or not.
-``
-struct A { private: void operator>>(const A&); };
-boost::can_call_right_shift<A>::value; // error: A::operator>>(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator>>(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_right_shift<A>::value; // this is fine
-boost::can_call_right_shift<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_right_shift_assignment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_right_shift_assignment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_right_shift_assignment can_call_right_shift_assignment]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_right_shift_assignment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs>>=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs>>=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator>>=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs>>=rhs); // is valid if can_call_right_shift_assignment<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_right_shift_assignment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_right_shift_assignment<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_right_shift_assignment<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_right_shift_assignment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_right_shift_assignment<long>` inherits from `__true_type`.]
-
-[:`can_call_right_shift_assignment<int, int, int>` inherits from `__true_type`.]
-
-[:`can_call_right_shift_assignment<const int, int>` inherits from `__false_type`.]
-[:`can_call_right_shift_assignment<int, double, bool>` inherits from `__false_type`.]
-[:`can_call_right_shift_assignment<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator>>=` is public or not:
-if `operator>>=` is defined as a private member of `LHS` then
-instantiating `can_call_right_shift_assignment<LHS>` will produce a compiler error.
-For this reason `can_call_right_shift_assignment` cannot be used to determine whether a type has a public `operator>>=` or not.
-``
-struct A { private: void operator>>=(const A&); };
-boost::can_call_right_shift_assignment<A>::value; // error: A::operator>>=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator>>=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_right_shift_assignment<A>::value; // this is fine
-boost::can_call_right_shift_assignment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_subtraction.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_subtraction.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_subtraction can_call_subtraction]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_subtraction : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs-rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs-rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator-`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs-rhs); // is valid if can_call_subtraction<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_subtraction.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_subtraction<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_subtraction<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_subtraction<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_subtraction<long>` inherits from `__true_type`.]
-
-[:`can_call_subtraction<int, int, int>` inherits from `__true_type`.]
-[:`can_call_subtraction<int, int, long>` inherits from `__true_type`.]
-[:`can_call_subtraction<int, double, double>` inherits from `__true_type`.]
-[:`can_call_subtraction<int, double, int>` inherits from `__true_type`.]
-[:`can_call_subtraction<const int, int>::value` inherits from `__true_type`.]
-
-[:`can_call_subtraction<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator-` is public or not:
-if `operator-` is defined as a private member of `LHS` then
-instantiating `can_call_subtraction<LHS>` will produce a compiler error.
-For this reason `can_call_subtraction` cannot be used to determine whether a type has a public `operator-` or not.
-``
-struct A { private: void operator-(const A&); };
-boost::can_call_subtraction<A>::value; // error: A::operator-(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator-(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_subtraction<A>::value; // this is fine
-boost::can_call_subtraction<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_subtraction_assignment.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_subtraction_assignment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,69 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_subtraction_assignment can_call_subtraction_assignment]
- template <class LHS, class RHS=LHS, class RET=dont_care>
- struct can_call_subtraction_assignment : public __tof {};
-
-__inherit
-If (i) `lhs` of type `LHS` and `rhs` of type `RHS` can be used in expression `lhs-=rhs`,
-and (ii) `RET=dont_care` or the result of expression `lhs-=rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of binary `operator-=`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-LHS lhs;
-RHS rhs;
-f(lhs-=rhs); // is valid if can_call_subtraction_assignment<LHS, RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_subtraction_assignment.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_subtraction_assignment<LHS, RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_subtraction_assignment<LHS, RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_subtraction_assignment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_subtraction_assignment<long>` inherits from `__true_type`.]
-
-[:`can_call_subtraction_assignment<int, int, int>` inherits from `__true_type`.]
-[:`can_call_subtraction_assignment<int, int, long>` inherits from `__true_type`.]
-[:`can_call_subtraction_assignment<int, double, double>` inherits from `__true_type`.]
-[:`can_call_subtraction_assignment<int, double, int>` inherits from `__true_type`.]
-
-[:`can_call_subtraction_assignment<const int, int>::value` inherits from `__false_type`.]
-[:`can_call_subtraction_assignment<int, int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether binary `operator-=` is public or not:
-if `operator-=` is defined as a private member of `LHS` then
-instantiating `can_call_subtraction_assignment<LHS>` will produce a compiler error.
-For this reason `can_call_subtraction_assignment` cannot be used to determine whether a type has a public `operator-=` or not.
-``
-struct A { private: void operator-=(const A&); };
-boost::can_call_subtraction_assignment<A>::value; // error: A::operator-=(const A&) is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator-=(const A&, const A&);
-struct B { operator A(); };
-boost::can_call_subtraction_assignment<A>::value; // this is fine
-boost::can_call_subtraction_assignment<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_unary_minus.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_unary_minus.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,68 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_unary_minus can_call_unary_minus]
- template <class RHS, class RET=dont_care>
- struct can_call_unary_minus : public __tof {};
-
-__inherit
-If (i) `rhs` of type `RHS` can be used in expression `-rhs`,
-and (ii) `RET=dont_care` or the result of expression `-rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of prefix `operator-`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-RHS rhs;
-f(-rhs); // is valid if can_call_unary_minus<RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_unary_minus.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_unary_minus<RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_unary_minus<RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_unary_minus<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_unary_minus<long>` inherits from `__true_type`.]
-
-[:`can_call_unary_minus<int, int>` inherits from `__true_type`.]
-[:`can_call_unary_minus<int, long>` inherits from `__true_type`.]
-[:`can_call_unary_minus<double, double>` inherits from `__true_type`.]
-[:`can_call_unary_minus<double, int>` inherits from `__true_type`.]
-[:`can_call_unary_minus<const int>` inherits from `__true_type`.]
-
-[:`can_call_unary_minus<int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether prefix `operator-` is public or not:
-if `operator-` is defined as a private member of `RHS` then
-instantiating `can_call_unary_minus<RHS>` will produce a compiler error.
-For this reason `can_call_unary_minus` cannot be used to determine whether a type has a public `operator-` or not.
-``
-struct A { private: void operator-(); };
-boost::can_call_unary_minus<A>::value; // error: A::operator-() is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator-(const A&);
-struct B { operator A(); };
-boost::can_call_unary_minus<A>::value; // this is fine
-boost::can_call_unary_minus<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Deleted: sandbox/type_traits/libs/type_traits/doc/can_call_unary_plus.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/can_call_unary_plus.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,68 +0,0 @@
-[/
- (C) Copyright 2009-2011 Frederic 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).
-]
-
-[section:can_call_unary_plus can_call_unary_plus]
- template <class RHS, class RET=dont_care>
- struct can_call_unary_plus : public __tof {};
-
-__inherit
-If (i) `rhs` of type `RHS` can be used in expression `+rhs`,
-and (ii) `RET=dont_care` or the result of expression `+rhs` is convertible to `RET`
-then inherits from __true_type,
-otherwise inherits from __false_type.
-
-The default behaviour (`RET=dont_care`) is to not check for the return value of prefix `operator+`.
-If `RET` is different from the default `dont_care` type, the return value is checked to be convertible to `RET`.
-Convertible to `RET` means that the return value of the operator can be used as argument to a function expecting `RET`:
-``
-void f(RET);
-RHS rhs;
-f(+rhs); // is valid if can_call_unary_plus<RHS, RET>::value==true
-``
-If `RET=void`, the return type is checked to be exactly `void`.
-
-__header `#include <boost/type_traits/can_call_unary_plus.hpp>` or `#include <boost/type_traits/can_call.hpp>`
-
-__examples
-
-[:`can_call_unary_plus<RHS, RET>::value_type` is the type `bool`.]
-[:`can_call_unary_plus<RHS, RET>::value` is a `bool` integral constant expression.]
-[:`can_call_unary_plus<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
-[:`can_call_unary_plus<long>` inherits from `__true_type`.]
-
-[:`can_call_unary_plus<int, int>` inherits from `__true_type`.]
-[:`can_call_unary_plus<int, long>` inherits from `__true_type`.]
-[:`can_call_unary_plus<double, double>` inherits from `__true_type`.]
-[:`can_call_unary_plus<double, int>` inherits from `__true_type`.]
-[:`can_call_unary_plus<const int>` inherits from `__true_type`.]
-
-[:`can_call_unary_plus<int, std::string>` inherits from `__false_type`.]
-
-
-[*Known issues:]
-
-This trait cannot detect whether prefix `operator+` is public or not:
-if `operator+` is defined as a private member of `RHS` then
-instantiating `can_call_unary_plus<RHS>` will produce a compiler error.
-For this reason `can_call_unary_plus` cannot be used to determine whether a type has a public `operator+` or not.
-``
-struct A { private: void operator+(); };
-boost::can_call_unary_plus<A>::value; // error: A::operator+() is private
-``
-
-There is an issue if the operator exists only for type `A` and `B` is
-convertible to `A`. In this case, the compiler will report an ambiguous overload.
-``
-struct A { };
-void operator+(const A&);
-struct B { operator A(); };
-boost::can_call_unary_plus<A>::value; // this is fine
-boost::can_call_unary_plus<B>::value; // error: ambiguous overload
-``
-
-[endsect]
-

Added: sandbox/type_traits/libs/type_traits/doc/common_type.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/common_type.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,227 @@
+[/
+ Copyright 2008 Howard Hinnant
+ Copyright 2008 Beman Dawes
+ Copyright 2010 John Maddock
+ 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).
+]
+
+[/===================================================================]
+[section:common_type common_type]
+[/===================================================================]
+
+[def __declval [@../../../utility/doc/html/declval.html declval]]
+
+
+__header ` #include <boost/type_traits/common_type.hpp>` or ` #include <boost/type_traits.hpp>`
+
+ namespace boost {
+ template <class ...T> struct __common_type;
+ }
+
+
+__common_type is a traits class used to deduce a type common to a several types, useful as the return type of functions
+operating on multiple input types such as in mixed-mode arithmetic..
+
+The nested typedef `::type` could be defined as follows:
+
+ template <class ...T>
+ struct common_type;
+
+ template <class T, class U, class ...V>
+ struct common_type<T,U,...V> {
+ typedef typename __common_type<typename __common_type<T, U>::type, V...>::type type;
+ };
+
+ template <class T>
+ struct common_type<T> {
+ typedef T type;
+ };
+
+ template <class T, class U>
+ struct common_type<T, U> {
+ typedef decltype(__declval<bool>() ? __declval<T>() : __declval<U>()) type;
+ };
+
+All parameter types must be complete. This trait is permitted to be specialized by a user if at least one
+template parameter is a user-defined type. [*Note:] Such specializations are required when only explicit conversions
+are desired among the __common_type arguments.
+
+Note that when the compiler does not support variadic templates (and the macro BOOST_NO_VARIADIC_TEMPLATES is defined)
+then the maximum number of template arguments is 3.
+
+
+[h4 Configuration macros]
+
+When the compiler does not support static assertions then the user can select the way static assertions are reported. Define
+
+* BOOST_COMMON_TYPE_USES_STATIC_ASSERT: define it if you want to use Boost.StaticAssert
+* BOOST_COMMON_TYPE_USES_MPL_ASSERT: define it if you want to use Boost.MPL static asertions
+
+The default behavior is to use mpl assertions in this case, but setting BOOST_COMMON_TYPE_USES_STATIC_ASSERT may reduce
+compile times and header dependencies somewhat.
+
+Depending on the static assertion used you will have an hint of the failing assertion either through the symbol or through the text.
+
+When possible common_type is implemented using `decltype`. Otherwise when BOOST_COMMON_TYPE_DONT_USE_TYPEOF is not defined
+it uses Boost.TypeOf.
+
+[h4 Tutorial]
+
+In a nutshell, __common_type is a trait that takes 1 or more types, and returns a type which
+all of the types will convert to. The default definition demands this conversion be implicit.
+However the trait can be specialized for user-defined types which want to limit their inter-type conversions to explicit,
+and yet still want to interoperate with the __common_type facility.
+
+[*Example:]
+
+ template <class T, class U>
+ complex<typename __common_type<T, U>::type>
+ operator+(complex<T>, complex<U>);
+
+
+In the above example, "mixed-mode" complex arithmetic is allowed. The return type is described by __common_type.
+For example the resulting type of adding a `complex<float>` and `complex<double>` might be a `complex<double>`.
+
+Here is how someone might produce a variadic comparison function:
+
+ template <class ...T>
+ typename __common_type<T...>::type
+ min(T... t);
+
+This is a very useful and broadly applicable utility.
+
+[h4 How to get the common type of types with explicit conversions?]
+
+Another choice for the author of the preceding operator could be
+
+ template <class T, class U>
+ typename __common_type<complex<T>, complex<U> >::type
+ operator+(complex<T>, complex<U>);
+
+As the default definition of __common_type demands the conversion be implicit, we need to specialize the trait for complex types as follows.
+
+ template <class T, class U>
+ struct __common_type<complex<T>, complex<U> > {
+ typedef complex< __common_type<T, U> > type;
+ };
+
+[h4 How important is the order of the common_type<> template arguments?]
+
+The order of the template parameters is important.
+
+`common_type<A,B,C>::type` is not equivalent to `common_type<C,A,B>::type`, but to `common_type<common_type<A,B>::type, C>::type`.
+
+Consider
+
+ struct A {};
+ struct B {};
+ struct C {
+ C() {}
+ C(A const&) {}
+ C(B const&) {}
+ C& operator=(C const&) {
+ return *this;
+ }
+ };
+
+The following doesn't compile
+
+ typedef boost::common_type<A, B, C>::type ABC; // Does not compile
+
+while
+
+ typedef boost::common_type<C, A, B>::type ABC;
+
+compiles.
+
+Thus, as `common_type<A,B>::type` is undefined, `common_type<A,B,C>::type` is also undefined.
+
+It is intended that clients who wish for `common_type<A, B>` to be well
+defined to define it themselves:
+
+ namespace boost
+ {
+
+ template <>
+ struct common_type<A, B> {typedef C type;};
+
+ }
+
+Now this client can ask for `common_type<A, B, C>` (and get
+the same answer).
+
+Clients wanting to ask `common_type<A, B, C>` in any order and get the same result need to add in addition:
+
+ namespace boost
+ {
+
+ template <> struct common_type<B, A>
+ : public common_type<A, B> {};
+
+ }
+
+This is needed as the specialization of `common_type<A, B>` is not be used implicitly for `common_type<B, A>`.
+
+[h4 Can the common_type of two types be a third type?]
+
+Given the preceding example, one might expect `common_type<A,B>::type` to be `C` without any intervention from the user.
+But the default `common_type<>` implementation doesn't grant that. It is intended that clients who wish for `common_type<A, B>`
+to be well defined to define it themselves:
+
+ namespace boost
+ {
+
+ template <>
+ struct common_type<A, B> {typedef C type;};
+
+ template <> struct common_type<B, A>
+ : public common_type<A, B> {};
+
+ }
+
+Now this client can ask for `common_type<A, B>`.
+
+[h4 How common_type behaves with pointers?]
+
+Consider
+
+ struct C { }:
+ struct B : C { };
+ struct A : C { };
+
+
+Shouldn't `common_type<A*,B*>::type` be `C*`? I would say yes, but the default implementation will make it ill-formed.
+
+The library could add a specialization for pointers, as
+
+ namespace boost
+ {
+
+ template <typename A, typename B>
+ struct common_type<A*, B*> {
+ typedef common_type<A, B>* type;
+ };
+ }
+
+But in the absence of a motivating use cases, we prefer not to add more than the standard specifies.
+
+Of course the user can always make this specialization.
+
+[h4 Can you explain the pros/cons of common_type against Boost.Typeof?]
+
+Even if they appear to be close, `__common_type` and `typeof` have
+different purposes. You use `typeof` to get the type of an expression, while
+you use __common_type to set explicitly the type returned of a template
+function. Both are complementary, and indeed __common_type is equivalent to
+`decltype(__declval<bool>() ? __declval<T>() : __declval<U>())`
+
+__common_type is also similar to promote_args<class ...T> in boost/math/tools/promotion.hpp,
+though it is not exactly the same as promote_args either. __common_type<T1, T2>::type simply represents the result of some
+operation on T1 and T2, and defaults to the type obtained by putting T1 and T2 into a conditional statement.
+
+It is meant to be customizable (via specialization) if this default is not appropriate.
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/conditional.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/conditional.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,24 @@
+[/
+ Copyright 2010 John Maddock.
+ 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).
+]
+
+[/===================================================================]
+[section:conditional conditional]
+[/===================================================================]
+
+
+__header ` #include <boost/type_traits/conditional.hpp>` or ` #include <boost/type_traits.hpp>`
+
+ namespace boost {
+ template <bool B, class T, class U> struct __conditional;
+ }
+
+If B is true, the member typedef type shall equal T. If B is false, the member typedef type shall equal F.
+
+This trait is really just an alias for `boost::mpl::if_c`.
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_bit_and.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_bit_and.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,71 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_bit_and has_bit_and]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_bit_and : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs&rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs&rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator&`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs&rhs); // is valid if has_bit_and<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_bit_and.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_bit_and<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_bit_and<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_bit_and<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_bit_and<long>` inherits from `__true_type`.]
+
+[:`has_bit_and<int, int, int>` inherits from `__true_type`.]
+[:`has_bit_and<const int, int>` inherits from `__true_type`.]
+
+[:`has_bit_and<int, double, bool>` inherits from `__false_type`.]
+[:`has_bit_and<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator&` is public or not:
+if `operator&` is defined as a private member of `Lhs` then
+instantiating `has_bit_and<Lhs>` will produce a compiler error.
+For this reason `has_bit_and` cannot be used to determine whether a type has a public `operator&` or not.
+``
+struct A { private: void operator&(const A&); };
+boost::has_bit_and<A>::value; // error: A::operator&(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator&(const A&, const A&);
+struct B { operator A(); };
+boost::has_bit_and<A>::value; // this is fine
+boost::has_bit_and<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_bit_and_assign.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_bit_and_assign.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,71 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_bit_and_assign has_bit_and_assign]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_bit_and_assign : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs&=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs&=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator&=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs&=rhs); // is valid if has_bit_and_assign<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_bit_and_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_bit_and_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_bit_and_assign<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_bit_and_assign<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_bit_and_assign<long>` inherits from `__true_type`.]
+
+[:`has_bit_and_assign<int, int, int>` inherits from `__true_type`.]
+
+[:`has_bit_and_assign<const int, int>` inherits from `__false_type`.]
+[:`has_bit_and_assign<int, double, bool>` inherits from `__false_type`.]
+[:`has_bit_and_assign<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator&=` is public or not:
+if `operator&=` is defined as a private member of `Lhs` then
+instantiating `has_bit_and_assign<Lhs>` will produce a compiler error.
+For this reason `has_bit_and_assign` cannot be used to determine whether a type has a public `operator&=` or not.
+``
+struct A { private: void operator&=(const A&); };
+boost::has_bit_and_assign<A>::value; // error: A::operator&=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator&=(const A&, const A&);
+struct B { operator A(); };
+boost::has_bit_and_assign<A>::value; // this is fine
+boost::has_bit_and_assign<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_bit_or.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_bit_or.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,71 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_bit_or has_bit_or]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_bit_or : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs|rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs|rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator|`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs|rhs); // is valid if has_bit_or<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_bit_or.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_bit_or<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_bit_or<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_bit_or<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_bit_or<long>` inherits from `__true_type`.]
+
+[:`has_bit_or<int, int, int>` inherits from `__true_type`.]
+[:`has_bit_or<const int, int>` inherits from `__true_type`.]
+
+[:`has_bit_or<int, double, bool>` inherits from `__false_type`.]
+[:`has_bit_or<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator|` is public or not:
+if `operator|` is defined as a private member of `Lhs` then
+instantiating `has_bit_or<Lhs>` will produce a compiler error.
+For this reason `has_bit_or` cannot be used to determine whether a type has a public `operator|` or not.
+``
+struct A { private: void operator|(const A&); };
+boost::has_bit_or<A>::value; // error: A::operator|(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator|(const A&, const A&);
+struct B { operator A(); };
+boost::has_bit_or<A>::value; // this is fine
+boost::has_bit_or<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_bit_or_assign.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_bit_or_assign.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,71 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_bit_or_assign has_bit_or_assign]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_bit_or_assign : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs|=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs|=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator|=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs|=rhs); // is valid if has_bit_or_assign<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_bit_or_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_bit_or_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_bit_or_assign<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_bit_or_assign<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_bit_or_assign<long>` inherits from `__true_type`.]
+
+[:`has_bit_or_assign<int, int, int>` inherits from `__true_type`.]
+
+[:`has_bit_or_assign<const int, int>` inherits from `__false_type`.]
+[:`has_bit_or_assign<int, double, bool>` inherits from `__false_type`.]
+[:`has_bit_or_assign<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator|=` is public or not:
+if `operator|=` is defined as a private member of `Lhs` then
+instantiating `has_bit_or_assign<Lhs>` will produce a compiler error.
+For this reason `has_bit_or_assign` cannot be used to determine whether a type has a public `operator|=` or not.
+``
+struct A { private: void operator|=(const A&); };
+boost::has_bit_or_assign<A>::value; // error: A::operator|=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator|=(const A&, const A&);
+struct B { operator A(); };
+boost::has_bit_or_assign<A>::value; // this is fine
+boost::has_bit_or_assign<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_bit_xor.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_bit_xor.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,71 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_bit_xor has_bit_xor]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_bit_xor : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs^rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs^rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator^`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs^rhs); // is valid if has_bit_xor<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_bit_xor.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_bit_xor<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_bit_xor<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_bit_xor<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_bit_xor<long>` inherits from `__true_type`.]
+
+[:`has_bit_xor<int, int, int>` inherits from `__true_type`.]
+[:`has_bit_xor<const int, int>` inherits from `__true_type`.]
+
+[:`has_bit_xor<int, double, bool>` inherits from `__false_type`.]
+[:`has_bit_xor<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator^` is public or not:
+if `operator^` is defined as a private member of `Lhs` then
+instantiating `has_bit_xor<Lhs>` will produce a compiler error.
+For this reason `has_bit_xor` cannot be used to determine whether a type has a public `operator^` or not.
+``
+struct A { private: void operator^(const A&); };
+boost::has_bit_xor<A>::value; // error: A::operator^(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator^(const A&, const A&);
+struct B { operator A(); };
+boost::has_bit_xor<A>::value; // this is fine
+boost::has_bit_xor<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_bit_xor_assign.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_bit_xor_assign.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,71 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_bit_xor_assign has_bit_xor_assign]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_bit_xor_assign : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs^=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs^=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator^=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs^=rhs); // is valid if has_bit_xor_assign<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_bit_xor_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_bit_xor_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_bit_xor_assign<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_bit_xor_assign<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_bit_xor_assign<long>` inherits from `__true_type`.]
+
+[:`has_bit_xor_assign<int, int, int>` inherits from `__true_type`.]
+
+[:`has_bit_xor_assign<const int, int>` inherits from `__false_type`.]
+[:`has_bit_xor_assign<int, double, bool>` inherits from `__false_type`.]
+[:`has_bit_xor_assign<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator^=` is public or not:
+if `operator^=` is defined as a private member of `Lhs` then
+instantiating `has_bit_xor_assign<Lhs>` will produce a compiler error.
+For this reason `has_bit_xor_assign` cannot be used to determine whether a type has a public `operator^=` or not.
+``
+struct A { private: void operator^=(const A&); };
+boost::has_bit_xor_assign<A>::value; // error: A::operator^=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator^=(const A&, const A&);
+struct B { operator A(); };
+boost::has_bit_xor_assign<A>::value; // this is fine
+boost::has_bit_xor_assign<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_complement.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_complement.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_complement has_complement]
+ template <class Rhs, class Ret=dont_care>
+ struct has_complement : public __tof {};
+
+__inherit
+If (i) `rhs` of type `Rhs` can be used in expression `~rhs`,
+and (ii) `Ret=dont_care` or the result of expression `~rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of prefix `operator~`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Rhs rhs;
+f(~rhs); // is valid if has_complement<Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_complement.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_complement<Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_complement<Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_complement<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_complement<long>` inherits from `__true_type`.]
+
+[:`has_complement<int, int>` inherits from `__true_type`.]
+[:`has_complement<int, long>` inherits from `__true_type`.]
+[:`has_complement<const int>` inherits from `__true_type`.]
+
+[:`has_complement<int*>` inherits from `__false_type`.]
+[:`has_complement<double, double>` inherits from `__false_type`.]
+[:`has_complement<double, int>` inherits from `__false_type`.]
+[:`has_complement<int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+* This trait cannot detect whether prefix `operator~` is public or not:
+if `operator~` is defined as a private member of `Rhs` then
+instantiating `has_complement<Rhs>` will produce a compiler error.
+For this reason `has_complement` cannot be used to determine whether a type has a public `operator~` or not.
+``
+struct A { private: void operator~(); };
+boost::has_complement<A>::value; // error: A::operator~() is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator~(const A&);
+struct B { operator A(); };
+boost::has_complement<A>::value; // this is fine
+boost::has_complement<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_dereference.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_dereference.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,76 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_dereference has_dereference]
+ template <class Rhs, class Ret=dont_care>
+ struct has_dereference : public __tof {};
+
+__inherit
+If (i) `rhs` of type `Rhs` can be used in expression `*rhs`,
+and (ii) `Ret=dont_care` or the result of expression `*rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of prefix `operator*`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Rhs rhs;
+f(*rhs); // is valid if has_dereference<Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_dereference.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_dereference<Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_dereference<Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_dereference<int*>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_dereference<long*>` inherits from `__true_type`.]
+
+
+[:`has_dereference<int*, int>` inherits from `__true_type`.]
+[:`has_dereference<int*, const int>` inherits from `__true_type`.]
+[:`has_dereference<int const *>` inherits from `__true_type`.]
+[:`has_dereference<int * const>` inherits from `__true_type`.]
+[:`has_dereference<int const * const>` inherits from `__true_type`.]
+
+[:`has_dereference<int>` inherits from `__false_type`.]
+[:`has_dereference<double>` inherits from `__false_type`.]
+[:`has_dereference<void*>` inherits from `__false_type`.]
+[:`has_dereference<const int*, int&>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+* This trait cannot detect whether prefix `operator*` is public or not:
+if `operator*` is defined as a private member of `Rhs` then
+instantiating `has_dereference<Rhs>` will produce a compiler error.
+For this reason `has_dereference` cannot be used to determine whether a type has a public `operator*` or not.
+``
+struct A { private: void operator*(); };
+boost::has_dereference<A>::value; // error: A::operator*() is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator*(const A&);
+struct B { operator A(); };
+boost::has_dereference<A>::value; // this is fine
+boost::has_dereference<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_divides.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_divides.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_divides has_divides]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_divides : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs/rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs/rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator/`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs/rhs); // is valid if has_divides<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_divides.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_divides<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_divides<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_divides<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_divides<long>` inherits from `__true_type`.]
+
+[:`has_divides<int, int, int>` inherits from `__true_type`.]
+[:`has_divides<int, int, long>` inherits from `__true_type`.]
+[:`has_divides<int, double, double>` inherits from `__true_type`.]
+[:`has_divides<int, double, int>` inherits from `__true_type`.]
+[:`has_divides<const int, int>::value` inherits from `__true_type`.]
+
+[:`has_divides<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator/` is public or not:
+if `operator/` is defined as a private member of `Lhs` then
+instantiating `has_divides<Lhs>` will produce a compiler error.
+For this reason `has_divides` cannot be used to determine whether a type has a public `operator/` or not.
+``
+struct A { private: void operator/(const A&); };
+boost::has_divides<A>::value; // error: A::operator/(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator/(const A&, const A&);
+struct B { operator A(); };
+boost::has_divides<A>::value; // this is fine
+boost::has_divides<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_divides_assign.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_divides_assign.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_divides_assign has_divides_assign]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_divides_assign : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs/=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs/=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator/=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs/=rhs); // is valid if has_divides_assign<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_divides_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_divides_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_divides_assign<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_divides_assign<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_divides_assign<long>` inherits from `__true_type`.]
+
+[:`has_divides_assign<int, int, int>` inherits from `__true_type`.]
+[:`has_divides_assign<int, int, long>` inherits from `__true_type`.]
+[:`has_divides_assign<int, double, double>` inherits from `__true_type`.]
+[:`has_divides_assign<int, double, int>` inherits from `__true_type`.]
+
+[:`has_divides_assign<const int, int>::value` inherits from `__false_type`.]
+[:`has_divides_assign<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator/=` is public or not:
+if `operator/=` is defined as a private member of `Lhs` then
+instantiating `has_divides_assign<Lhs>` will produce a compiler error.
+For this reason `has_divides_assign` cannot be used to determine whether a type has a public `operator/=` or not.
+``
+struct A { private: void operator/=(const A&); };
+boost::has_divides_assign<A>::value; // error: A::operator/=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator/=(const A&, const A&);
+struct B { operator A(); };
+boost::has_divides_assign<A>::value; // this is fine
+boost::has_divides_assign<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_equal_to.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_equal_to.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_equal_to has_equal_to]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_equal_to : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs==rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs==rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator==`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs==rhs); // is valid if has_equal_to<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_equal_to.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_equal_to<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_equal_to<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_equal_to<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_equal_to<long>` inherits from `__true_type`.]
+
+[:`has_equal_to<int, int, bool>` inherits from `__true_type`.]
+[:`has_equal_to<int, double, bool>` inherits from `__true_type`.]
+[:`has_equal_to<const int>` inherits from `__true_type`.]
+
+[:`has_equal_to<int*, int>` inherits from `__false_type`.]
+[:`has_equal_to<int*, double*>` inherits from `__false_type`.]
+[:`has_equal_to<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator==` is public or not:
+if `operator==` is defined as a private member of `Lhs` then
+instantiating `has_equal_to<Lhs>` will produce a compiler error.
+For this reason `has_equal_to` cannot be used to determine whether a type has a public `operator==` or not.
+``
+struct A { private: void operator==(const A&); };
+boost::has_equal_to<A>::value; // error: A::operator==(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator==(const A&, const A&);
+struct B { operator A(); };
+boost::has_equal_to<A>::value; // this is fine
+boost::has_equal_to<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_greater.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_greater.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_greater has_greater]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_greater : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs>rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs>rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator>`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs>rhs); // is valid if has_greater<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_greater.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_greater<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_greater<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_greater<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_greater<long>` inherits from `__true_type`.]
+
+[:`has_greater<int, int, bool>` inherits from `__true_type`.]
+[:`has_greater<int, double, bool>` inherits from `__true_type`.]
+[:`has_greater<const int>` inherits from `__true_type`.]
+
+[:`has_greater<int*, int>` inherits from `__false_type`.]
+[:`has_greater<int*, double*>` inherits from `__false_type`.]
+[:`has_greater<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator>` is public or not:
+if `operator>` is defined as a private member of `Lhs` then
+instantiating `has_greater<Lhs>` will produce a compiler error.
+For this reason `has_greater` cannot be used to determine whether a type has a public `operator>` or not.
+``
+struct A { private: void operator>(const A&); };
+boost::has_greater<A>::value; // error: A::operator>(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator>(const A&, const A&);
+struct B { operator A(); };
+boost::has_greater<A>::value; // this is fine
+boost::has_greater<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_greater_equal.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_greater_equal.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_greater_equal has_greater_equal]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_greater_equal : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs>=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs>=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator>=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs>=rhs); // is valid if has_greater_equal<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_greater_equal.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_greater_equal<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_greater_equal<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_greater_equal<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_greater_equal<long>` inherits from `__true_type`.]
+
+[:`has_greater_equal<int, int, bool>` inherits from `__true_type`.]
+[:`has_greater_equal<int, double, bool>` inherits from `__true_type`.]
+[:`has_greater_equal<const int>` inherits from `__true_type`.]
+
+[:`has_greater_equal<int*, int>` inherits from `__false_type`.]
+[:`has_greater_equal<int*, double*>` inherits from `__false_type`.]
+[:`has_greater_equal<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator>=` is public or not:
+if `operator>=` is defined as a private member of `Lhs` then
+instantiating `has_greater_equal<Lhs>` will produce a compiler error.
+For this reason `has_greater_equal` cannot be used to determine whether a type has a public `operator>=` or not.
+``
+struct A { private: void operator>=(const A&); };
+boost::has_greater_equal<A>::value; // error: A::operator>=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator>=(const A&, const A&);
+struct B { operator A(); };
+boost::has_greater_equal<A>::value; // this is fine
+boost::has_greater_equal<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_left_shift.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_left_shift.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,74 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_left_shift has_left_shift]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_left_shift : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs<<rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs<<rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator<<`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs<<rhs); // is valid if has_left_shift<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_left_shift.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_left_shift<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_left_shift<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_left_shift<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_left_shift<long>` inherits from `__true_type`.]
+
+[:`has_left_shift<int, int, int>` inherits from `__true_type`.]
+[:`has_left_shift<const int, int>` inherits from `__true_type`.]
+[:`has_left_shift<std::ostream, int>` inherits from `__true_type`.]
+[:`has_left_shift<std::ostream, char*, std::ostream>` inherits from `__true_type`.]
+[:`has_left_shift<std::ostream, std::string>` inherits from `__true_type`.]
+
+[:`has_left_shift<int, double, bool>` inherits from `__false_type`.]
+[:`has_left_shift<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator<<` is public or not:
+if `operator<<` is defined as a private member of `Lhs` then
+instantiating `has_left_shift<Lhs>` will produce a compiler error.
+For this reason `has_left_shift` cannot be used to determine whether a type has a public `operator<<` or not.
+``
+struct A { private: void operator<<(const A&); };
+boost::has_left_shift<A>::value; // error: A::operator<<(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator<<(const A&, const A&);
+struct B { operator A(); };
+boost::has_left_shift<A>::value; // this is fine
+boost::has_left_shift<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_left_shift_assign.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_left_shift_assign.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,71 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_left_shift_assign has_left_shift_assign]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_left_shift_assign : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs<<=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs<<=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator<<=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs<<=rhs); // is valid if has_left_shift_assign<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_left_shift_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_left_shift_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_left_shift_assign<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_left_shift_assign<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_left_shift_assign<long>` inherits from `__true_type`.]
+
+[:`has_left_shift_assign<int, int, int>` inherits from `__true_type`.]
+
+[:`has_left_shift_assign<const int, int>` inherits from `__false_type`.]
+[:`has_left_shift_assign<int, double, bool>` inherits from `__false_type`.]
+[:`has_left_shift_assign<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator<<=` is public or not:
+if `operator<<=` is defined as a private member of `Lhs` then
+instantiating `has_left_shift_assign<Lhs>` will produce a compiler error.
+For this reason `has_left_shift_assign` cannot be used to determine whether a type has a public `operator<<=` or not.
+``
+struct A { private: void operator<<=(const A&); };
+boost::has_left_shift_assign<A>::value; // error: A::operator<<=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator<<=(const A&, const A&);
+struct B { operator A(); };
+boost::has_left_shift_assign<A>::value; // this is fine
+boost::has_left_shift_assign<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_less.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_less.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_less has_less]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_less : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs<rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs<rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator<`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs<rhs); // is valid if has_less<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_less.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_less<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_less<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_less<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_less<long>` inherits from `__true_type`.]
+
+[:`has_less<int, int, bool>` inherits from `__true_type`.]
+[:`has_less<int, double, bool>` inherits from `__true_type`.]
+[:`has_less<const int>` inherits from `__true_type`.]
+
+[:`has_less<int*, int>` inherits from `__false_type`.]
+[:`has_less<int*, double*>` inherits from `__false_type`.]
+[:`has_less<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator<` is public or not:
+if `operator<` is defined as a private member of `Lhs` then
+instantiating `has_less<Lhs>` will produce a compiler error.
+For this reason `has_less` cannot be used to determine whether a type has a public `operator<` or not.
+``
+struct A { private: void operator<(const A&); };
+boost::has_less<A>::value; // error: A::operator<(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator<(const A&, const A&);
+struct B { operator A(); };
+boost::has_less<A>::value; // this is fine
+boost::has_less<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_less_equal.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_less_equal.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_less_equal has_less_equal]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_less_equal : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs<=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs<=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator<=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs<=rhs); // is valid if has_less_equal<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_less_equal.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_less_equal<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_less_equal<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_less_equal<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_less_equal<long>` inherits from `__true_type`.]
+
+[:`has_less_equal<int, int, bool>` inherits from `__true_type`.]
+[:`has_less_equal<int, double, bool>` inherits from `__true_type`.]
+[:`has_less_equal<const int>` inherits from `__true_type`.]
+
+[:`has_less_equal<int*, int>` inherits from `__false_type`.]
+[:`has_less_equal<int*, double*>` inherits from `__false_type`.]
+[:`has_less_equal<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator<=` is public or not:
+if `operator<=` is defined as a private member of `Lhs` then
+instantiating `has_less_equal<Lhs>` will produce a compiler error.
+For this reason `has_less_equal` cannot be used to determine whether a type has a public `operator<=` or not.
+``
+struct A { private: void operator<=(const A&); };
+boost::has_less_equal<A>::value; // error: A::operator<=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator<=(const A&, const A&);
+struct B { operator A(); };
+boost::has_less_equal<A>::value; // this is fine
+boost::has_less_equal<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_logical.qbk
==============================================================================

Added: sandbox/type_traits/libs/type_traits/doc/has_logical_and.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_logical_and.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,72 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_logical_and has_logical_and]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_logical_and : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs&&rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs&&rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator&&`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs&&rhs); // is valid if has_logical_and<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_logical_and.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_logical_and<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_logical_and<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_logical_and<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_logical_and<bool>` inherits from `__true_type`.]
+
+[:`has_logical_and<int, int, bool>` inherits from `__true_type`.]
+[:`has_logical_and<int, int, long>` inherits from `__true_type`.]
+[:`has_logical_and<int, double, bool>` inherits from `__true_type`.]
+[:`has_logical_and<const int, int>::value` inherits from `__true_type`.]
+
+[:`has_logical_and<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator&&` is public or not:
+if `operator&&` is defined as a private member of `Lhs` then
+instantiating `has_logical_and<Lhs>` will produce a compiler error.
+For this reason `has_logical_and` cannot be used to determine whether a type has a public `operator&&` or not.
+``
+struct A { private: void operator&&(const A&); };
+boost::has_logical_and<A>::value; // error: A::operator&&(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator&&(const A&, const A&);
+struct B { operator A(); };
+boost::has_logical_and<A>::value; // this is fine
+boost::has_logical_and<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_logical_not.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_logical_not.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,72 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_logical_not has_logical_not]
+ template <class Rhs, class Ret=dont_care>
+ struct has_logical_not : public __tof {};
+
+__inherit
+If (i) `rhs` of type `Rhs` can be used in expression `!rhs`,
+and (ii) `Ret=dont_care` or the result of expression `!rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of prefix `operator!`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Rhs rhs;
+f(!rhs); // is valid if has_logical_not<Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_logical_not.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_logical_not<Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_logical_not<Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_logical_not<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_logical_not<bool>` inherits from `__true_type`.]
+
+[:`has_logical_not<int, bool>` inherits from `__true_type`.]
+[:`has_logical_not<int, long>` inherits from `__true_type`.]
+[:`has_logical_not<double, double>` inherits from `__true_type`.]
+[:`has_logical_not<double, bool>` inherits from `__true_type`.]
+[:`has_logical_not<const bool>` inherits from `__true_type`.]
+
+[:`has_logical_not<int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+* This trait cannot detect whether prefix `operator!` is public or not:
+if `operator!` is defined as a private member of `Rhs` then
+instantiating `has_logical_not<Rhs>` will produce a compiler error.
+For this reason `has_logical_not` cannot be used to determine whether a type has a public `operator!` or not.
+``
+struct A { private: void operator!(); };
+boost::has_logical_not<A>::value; // error: A::operator!() is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator!(const A&);
+struct B { operator A(); };
+boost::has_logical_not<A>::value; // this is fine
+boost::has_logical_not<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_logical_or.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_logical_or.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,72 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_logical_or has_logical_or]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_logical_or : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs||rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs||rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator||`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs||rhs); // is valid if has_logical_or<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_logical_or.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_logical_or<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_logical_or<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_logical_or<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_logical_or<bool>` inherits from `__true_type`.]
+
+[:`has_logical_or<int, int, bool>` inherits from `__true_type`.]
+[:`has_logical_or<int, int, long>` inherits from `__true_type`.]
+[:`has_logical_or<int, double, bool>` inherits from `__true_type`.]
+[:`has_logical_or<const int, int>::value` inherits from `__true_type`.]
+
+[:`has_logical_or<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator||` is public or not:
+if `operator||` is defined as a private member of `Lhs` then
+instantiating `has_logical_or<Lhs>` will produce a compiler error.
+For this reason `has_logical_or` cannot be used to determine whether a type has a public `operator||` or not.
+``
+struct A { private: void operator||(const A&); };
+boost::has_logical_or<A>::value; // error: A::operator||(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator||(const A&, const A&);
+struct B { operator A(); };
+boost::has_logical_or<A>::value; // this is fine
+boost::has_logical_or<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_minus.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_minus.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_minus has_minus]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_minus : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs-rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs-rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator-`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs-rhs); // is valid if has_minus<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_minus.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_minus<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_minus<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_minus<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_minus<long>` inherits from `__true_type`.]
+
+[:`has_minus<int, int, int>` inherits from `__true_type`.]
+[:`has_minus<int, int, long>` inherits from `__true_type`.]
+[:`has_minus<int, double, double>` inherits from `__true_type`.]
+[:`has_minus<int, double, int>` inherits from `__true_type`.]
+[:`has_minus<const int, int>::value` inherits from `__true_type`.]
+
+[:`has_minus<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator-` is public or not:
+if `operator-` is defined as a private member of `Lhs` then
+instantiating `has_minus<Lhs>` will produce a compiler error.
+For this reason `has_minus` cannot be used to determine whether a type has a public `operator-` or not.
+``
+struct A { private: void operator-(const A&); };
+boost::has_minus<A>::value; // error: A::operator-(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator-(const A&, const A&);
+struct B { operator A(); };
+boost::has_minus<A>::value; // this is fine
+boost::has_minus<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_minus_assign.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_minus_assign.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_minus_assign has_minus_assign]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_minus_assign : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs-=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs-=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator-=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs-=rhs); // is valid if has_minus_assign<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_minus_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_minus_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_minus_assign<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_minus_assign<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_minus_assign<long>` inherits from `__true_type`.]
+
+[:`has_minus_assign<int, int, int>` inherits from `__true_type`.]
+[:`has_minus_assign<int, int, long>` inherits from `__true_type`.]
+[:`has_minus_assign<int, double, double>` inherits from `__true_type`.]
+[:`has_minus_assign<int, double, int>` inherits from `__true_type`.]
+
+[:`has_minus_assign<const int, int>::value` inherits from `__false_type`.]
+[:`has_minus_assign<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator-=` is public or not:
+if `operator-=` is defined as a private member of `Lhs` then
+instantiating `has_minus_assign<Lhs>` will produce a compiler error.
+For this reason `has_minus_assign` cannot be used to determine whether a type has a public `operator-=` or not.
+``
+struct A { private: void operator-=(const A&); };
+boost::has_minus_assign<A>::value; // error: A::operator-=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator-=(const A&, const A&);
+struct B { operator A(); };
+boost::has_minus_assign<A>::value; // this is fine
+boost::has_minus_assign<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_modulus.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_modulus.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,71 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_modulus has_modulus]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_modulus : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs%rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs%rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator%`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs%rhs); // is valid if has_modulus<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_modulus.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_modulus<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_modulus<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_modulus<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_modulus<long>` inherits from `__true_type`.]
+
+[:`has_modulus<int, int, int>` inherits from `__true_type`.]
+[:`has_modulus<int, int, long>` inherits from `__true_type`.]
+[:`has_modulus<const int, int>::value` inherits from `__true_type`.]
+
+[:`has_modulus<int, double>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator%` is public or not:
+if `operator%` is defined as a private member of `Lhs` then
+instantiating `has_modulus<Lhs>` will produce a compiler error.
+For this reason `has_modulus` cannot be used to determine whether a type has a public `operator%` or not.
+``
+struct A { private: void operator%(const A&); };
+boost::has_modulus<A>::value; // error: A::operator%(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator%(const A&, const A&);
+struct B { operator A(); };
+boost::has_modulus<A>::value; // this is fine
+boost::has_modulus<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_modulus_assign.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_modulus_assign.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,71 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_modulus_assign has_modulus_assign]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_modulus_assign : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs%=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs%=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator%=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs%=rhs); // is valid if has_modulus_assign<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_modulus_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_modulus_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_modulus_assign<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_modulus_assign<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_modulus_assign<long>` inherits from `__true_type`.]
+
+[:`has_modulus_assign<int, int, int>` inherits from `__true_type`.]
+[:`has_modulus_assign<int, int, long>` inherits from `__true_type`.]
+
+[:`has_modulus_assign<const int, int>::value` inherits from `__false_type`.]
+[:`has_modulus_assign<int, double>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator%=` is public or not:
+if `operator%=` is defined as a private member of `Lhs` then
+instantiating `has_modulus_assign<Lhs>` will produce a compiler error.
+For this reason `has_modulus_assign` cannot be used to determine whether a type has a public `operator%=` or not.
+``
+struct A { private: void operator%=(const A&); };
+boost::has_modulus_assign<A>::value; // error: A::operator%=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator%=(const A&, const A&);
+struct B { operator A(); };
+boost::has_modulus_assign<A>::value; // this is fine
+boost::has_modulus_assign<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_multiplies.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_multiplies.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_multiplies has_multiplies]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_multiplies : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs*rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs*rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator*`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs*rhs); // is valid if has_multiplies<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_multiplies.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_multiplies<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_multiplies<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_multiplies<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_multiplies<long>` inherits from `__true_type`.]
+
+[:`has_multiplies<int, int, int>` inherits from `__true_type`.]
+[:`has_multiplies<int, int, long>` inherits from `__true_type`.]
+[:`has_multiplies<int, double, double>` inherits from `__true_type`.]
+[:`has_multiplies<int, double, int>` inherits from `__true_type`.]
+[:`has_multiplies<const int, int>::value` inherits from `__true_type`.]
+
+[:`has_multiplies<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator*` is public or not:
+if `operator*` is defined as a private member of `Lhs` then
+instantiating `has_multiplies<Lhs>` will produce a compiler error.
+For this reason `has_multiplies` cannot be used to determine whether a type has a public `operator*` or not.
+``
+struct A { private: void operator*(const A&); };
+boost::has_multiplies<A>::value; // error: A::operator*(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator*(const A&, const A&);
+struct B { operator A(); };
+boost::has_multiplies<A>::value; // this is fine
+boost::has_multiplies<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_multiplies_assign.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_multiplies_assign.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_multiplies_assign has_multiplies_assign]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_multiplies_assign : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs*=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs*=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator*=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs*=rhs); // is valid if has_multiplies_assign<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_multiplies_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_multiplies_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_multiplies_assign<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_multiplies_assign<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_multiplies_assign<long>` inherits from `__true_type`.]
+
+[:`has_multiplies_assign<int, int, int>` inherits from `__true_type`.]
+[:`has_multiplies_assign<int, int, long>` inherits from `__true_type`.]
+[:`has_multiplies_assign<int, double, double>` inherits from `__true_type`.]
+[:`has_multiplies_assign<int, double, int>` inherits from `__true_type`.]
+
+[:`has_multiplies_assign<const int, int>::value` inherits from `__false_type`.]
+[:`has_multiplies_assign<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator*=` is public or not:
+if `operator*=` is defined as a private member of `Lhs` then
+instantiating `has_multiplies_assign<Lhs>` will produce a compiler error.
+For this reason `has_multiplies_assign` cannot be used to determine whether a type has a public `operator*=` or not.
+``
+struct A { private: void operator*=(const A&); };
+boost::has_multiplies_assign<A>::value; // error: A::operator*=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator*=(const A&, const A&);
+struct B { operator A(); };
+boost::has_multiplies_assign<A>::value; // this is fine
+boost::has_multiplies_assign<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_negate.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_negate.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,72 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_negate has_negate]
+ template <class Rhs, class Ret=dont_care>
+ struct has_negate : public __tof {};
+
+__inherit
+If (i) `rhs` of type `Rhs` can be used in expression `-rhs`,
+and (ii) `Ret=dont_care` or the result of expression `-rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of prefix `operator-`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Rhs rhs;
+f(-rhs); // is valid if has_negate<Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_negate.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_negate<Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_negate<Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_negate<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_negate<long>` inherits from `__true_type`.]
+
+[:`has_negate<int, int>` inherits from `__true_type`.]
+[:`has_negate<int, long>` inherits from `__true_type`.]
+[:`has_negate<double, double>` inherits from `__true_type`.]
+[:`has_negate<double, int>` inherits from `__true_type`.]
+[:`has_negate<const int>` inherits from `__true_type`.]
+
+[:`has_negate<int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+* This trait cannot detect whether prefix `operator-` is public or not:
+if `operator-` is defined as a private member of `Rhs` then
+instantiating `has_negate<Rhs>` will produce a compiler error.
+For this reason `has_negate` cannot be used to determine whether a type has a public `operator-` or not.
+``
+struct A { private: void operator-(); };
+boost::has_negate<A>::value; // error: A::operator-() is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator-(const A&);
+struct B { operator A(); };
+boost::has_negate<A>::value; // this is fine
+boost::has_negate<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_new_operator.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_new_operator.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,49 @@
+[/
+ Copyright 2009 John Maddock.
+ 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).
+]
+
+[section:has_new_operator has_new_operator]
+ template <class T>
+ struct has_new_operator : public __tof {};
+
+__inherit If T is a (possibly cv-qualified) type with an overloaded new-operator
+then inherits from __true_type, otherwise inherits from __false_type.
+
+__compat Not usable with compilers that do not support "substitution failure is not an error"
+(in which case BOOST_NO_SFINAE will be defined), also known to be broken with
+the Borland/Codegear compiler.
+
+__std_ref 12.5.
+
+__header ` #include <boost/type_traits/has_new_operator.hpp>` or ` #include <boost/type_traits.hpp>`
+
+__examples
+
+Given:
+
+ class A { void* operator new(std::size_t); };
+ class B { void* operator new(std::size_t, const std::nothrow&); };
+ class C { void* operator new(std::size_t, void*); };
+ class D { void* operator new[](std::size_t); };
+ class E { void* operator new[](std::size_t, const std::nothrow&); };
+ class F { void* operator new[](std::size_t, void*); };
+
+Then:
+
+[:`has_new_operator<A>` inherits from `__true_type`.]
+
+[:`has_new_operator<B>` inherits from `__true_type`.]
+
+[:`has_new_operator<C>` inherits from `__true_type`.]
+
+[:`has_new_operator<D>` inherits from `__true_type`.]
+
+[:`has_new_operator<E>` inherits from `__true_type`.]
+
+[:`has_new_operator<F>` inherits from `__true_type`.]
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_not_equal_to.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_not_equal_to.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_not_equal_to has_not_equal_to]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_not_equal_to : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs!=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs!=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator!=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs!=rhs); // is valid if has_not_equal_to<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_not_equal_to.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_not_equal_to<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_not_equal_to<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_not_equal_to<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_not_equal_to<long>` inherits from `__true_type`.]
+
+[:`has_not_equal_to<int, int, bool>` inherits from `__true_type`.]
+[:`has_not_equal_to<int, double, bool>` inherits from `__true_type`.]
+[:`has_not_equal_to<const int>` inherits from `__true_type`.]
+
+[:`has_not_equal_to<int*, int>` inherits from `__false_type`.]
+[:`has_not_equal_to<int*, double*>` inherits from `__false_type`.]
+[:`has_not_equal_to<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator!=` is public or not:
+if `operator!=` is defined as a private member of `Lhs` then
+instantiating `has_not_equal_to<Lhs>` will produce a compiler error.
+For this reason `has_not_equal_to` cannot be used to determine whether a type has a public `operator!=` or not.
+``
+struct A { private: void operator!=(const A&); };
+boost::has_not_equal_to<A>::value; // error: A::operator!=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator!=(const A&, const A&);
+struct B { operator A(); };
+boost::has_not_equal_to<A>::value; // this is fine
+boost::has_not_equal_to<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_plus.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_plus.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_plus has_plus]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_plus : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs+rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs+rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator+`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs+rhs); // is valid if has_plus<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_plus.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_plus<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_plus<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_plus<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_plus<long>` inherits from `__true_type`.]
+
+[:`has_plus<int, int, int>` inherits from `__true_type`.]
+[:`has_plus<int, int, long>` inherits from `__true_type`.]
+[:`has_plus<int, double, double>` inherits from `__true_type`.]
+[:`has_plus<int, double, int>` inherits from `__true_type`.]
+[:`has_plus<const int, int>::value` inherits from `__true_type`.]
+
+[:`has_plus<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator+` is public or not:
+if `operator+` is defined as a private member of `Lhs` then
+instantiating `has_plus<Lhs>` will produce a compiler error.
+For this reason `has_plus` cannot be used to determine whether a type has a public `operator+` or not.
+``
+struct A { private: void operator+(const A&); };
+boost::has_plus<A>::value; // error: A::operator+(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator+(const A&, const A&);
+struct B { operator A(); };
+boost::has_plus<A>::value; // this is fine
+boost::has_plus<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_plus_assign.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_plus_assign.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,73 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_plus_assign has_plus_assign]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_plus_assign : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs+=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs+=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator+=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs+=rhs); // is valid if has_plus_assign<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_plus_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_plus_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_plus_assign<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_plus_assign<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_plus_assign<long>` inherits from `__true_type`.]
+
+[:`has_plus_assign<int, int, int>` inherits from `__true_type`.]
+[:`has_plus_assign<int, int, long>` inherits from `__true_type`.]
+[:`has_plus_assign<int, double, double>` inherits from `__true_type`.]
+[:`has_plus_assign<int, double, int>` inherits from `__true_type`.]
+
+[:`has_plus_assign<const int, int>::value` inherits from `__false_type`.]
+[:`has_plus_assign<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator+=` is public or not:
+if `operator+=` is defined as a private member of `Lhs` then
+instantiating `has_plus_assign<Lhs>` will produce a compiler error.
+For this reason `has_plus_assign` cannot be used to determine whether a type has a public `operator+=` or not.
+``
+struct A { private: void operator+=(const A&); };
+boost::has_plus_assign<A>::value; // error: A::operator+=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator+=(const A&, const A&);
+struct B { operator A(); };
+boost::has_plus_assign<A>::value; // this is fine
+boost::has_plus_assign<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_post.qbk
==============================================================================

Added: sandbox/type_traits/libs/type_traits/doc/has_post_decrement.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_post_decrement.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,74 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_post_decrement has_post_decrement]
+ template <class Lhs, class Ret=dont_care>
+ struct has_post_decrement : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` can be used in expression `lhs--`,
+and (ii) `Ret=dont_care` or the result of expression `lhs--` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of postfix `operator--`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+f(lhs--); // is valid if has_post_decrement<Lhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_post_decrement.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_post_decrement<Lhs, Ret>::value_type` is the type `bool`.]
+[:`has_post_decrement<Lhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_post_decrement<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_post_decrement<long>` inherits from `__true_type`.]
+
+[:`has_post_decrement<int, int>` inherits from `__true_type`.]
+[:`has_post_decrement<int, long>` inherits from `__true_type`.]
+[:`has_post_decrement<double, double>` inherits from `__true_type`.]
+[:`has_post_decrement<double, int>` inherits from `__true_type`.]
+
+[:`has_post_decrement<bool>` inherits from `__false_type`.]
+[:`has_post_decrement<const int>` inherits from `__false_type`.]
+[:`has_post_decrement<void*>` inherits from `__false_type`.]
+[:`has_post_decrement<int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether postfix `operator--` is public or not:
+if `operator--` is defined as a private member of `Lhs` then
+instantiating `has_post_decrement<Lhs>` will produce a compiler error.
+For this reason `has_post_decrement` cannot be used to determine whether a type has a public `operator--` or not.
+``
+struct A { private: void operator--(int); };
+boost::has_post_decrement<A>::value; // error: A::operator--(int) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator--(const A&, int);
+struct B { operator A(); };
+boost::has_post_decrement<A>::value; // this is fine
+boost::has_post_decrement<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_post_increment.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_post_increment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,74 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_post_increment has_post_increment]
+ template <class Lhs, class Ret=dont_care>
+ struct has_post_increment : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` can be used in expression `lhs++`,
+and (ii) `Ret=dont_care` or the result of expression `lhs++` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of postfix `operator++`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+f(lhs++); // is valid if has_post_increment<Lhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_post_increment.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_post_increment<Lhs, Ret>::value_type` is the type `bool`.]
+[:`has_post_increment<Lhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_post_increment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_post_increment<long>` inherits from `__true_type`.]
+
+[:`has_post_increment<int, int>` inherits from `__true_type`.]
+[:`has_post_increment<int, long>` inherits from `__true_type`.]
+[:`has_post_increment<double, double>` inherits from `__true_type`.]
+[:`has_post_increment<double, int>` inherits from `__true_type`.]
+[:`has_post_increment<bool>` inherits from `__true_type`.]
+
+[:`has_post_increment<const int>` inherits from `__false_type`.]
+[:`has_post_increment<void*>` inherits from `__false_type`.]
+[:`has_post_increment<int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether postfix `operator++` is public or not:
+if `operator++` is defined as a private member of `Lhs` then
+instantiating `has_post_increment<Lhs>` will produce a compiler error.
+For this reason `has_post_increment` cannot be used to determine whether a type has a public `operator++` or not.
+``
+struct A { private: void operator++(int); };
+boost::has_post_increment<A>::value; // error: A::operator++(int) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator++(const A&, int);
+struct B { operator A(); };
+boost::has_post_increment<A>::value; // this is fine
+boost::has_post_increment<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_pre.qbk
==============================================================================

Added: sandbox/type_traits/libs/type_traits/doc/has_pre_decrement.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_pre_decrement.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,74 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_pre_decrement has_pre_decrement]
+ template <class Rhs, class Ret=dont_care>
+ struct has_pre_decrement : public __tof {};
+
+__inherit
+If (i) `rhs` of type `Rhs` can be used in expression `--rhs`,
+and (ii) `Ret=dont_care` or the result of expression `--rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of prefix `operator--`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Rhs rhs;
+f(--rhs); // is valid if has_pre_decrement<Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_pre_decrement.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_pre_decrement<Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_pre_decrement<Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_pre_decrement<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_pre_decrement<long>` inherits from `__true_type`.]
+
+[:`has_pre_decrement<int, int>` inherits from `__true_type`.]
+[:`has_pre_decrement<int, long>` inherits from `__true_type`.]
+[:`has_pre_decrement<double, double>` inherits from `__true_type`.]
+[:`has_pre_decrement<double, int>` inherits from `__true_type`.]
+
+[:`has_pre_decrement<bool>` inherits from `__false_type`.]
+[:`has_pre_decrement<const int>` inherits from `__false_type`.]
+[:`has_pre_decrement<void*>` inherits from `__false_type`.]
+[:`has_pre_decrement<int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+* This trait cannot detect whether prefix `operator--` is public or not:
+if `operator--` is defined as a private member of `Rhs` then
+instantiating `has_pre_decrement<Rhs>` will produce a compiler error.
+For this reason `has_pre_decrement` cannot be used to determine whether a type has a public `operator--` or not.
+``
+struct A { private: void operator--(); };
+boost::has_pre_decrement<A>::value; // error: A::operator--() is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator--(const A&);
+struct B { operator A(); };
+boost::has_pre_decrement<A>::value; // this is fine
+boost::has_pre_decrement<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_pre_increment.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_pre_increment.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,74 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_pre_increment has_pre_increment]
+ template <class Rhs, class Ret=dont_care>
+ struct has_pre_increment : public __tof {};
+
+__inherit
+If (i) `rhs` of type `Rhs` can be used in expression `++rhs`,
+and (ii) `Ret=dont_care` or the result of expression `++rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of prefix `operator++`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Rhs rhs;
+f(++rhs); // is valid if has_pre_increment<Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_pre_increment.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_pre_increment<Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_pre_increment<Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_pre_increment<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_pre_increment<long>` inherits from `__true_type`.]
+
+[:`has_pre_increment<int, int>` inherits from `__true_type`.]
+[:`has_pre_increment<int, long>` inherits from `__true_type`.]
+[:`has_pre_increment<double, double>` inherits from `__true_type`.]
+[:`has_pre_increment<double, int>` inherits from `__true_type`.]
+[:`has_pre_increment<bool>` inherits from `__true_type`.]
+
+[:`has_pre_increment<const int>` inherits from `__false_type`.]
+[:`has_pre_increment<void*>` inherits from `__false_type`.]
+[:`has_pre_increment<int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+* This trait cannot detect whether prefix `operator++` is public or not:
+if `operator++` is defined as a private member of `Rhs` then
+instantiating `has_pre_increment<Rhs>` will produce a compiler error.
+For this reason `has_pre_increment` cannot be used to determine whether a type has a public `operator++` or not.
+``
+struct A { private: void operator++(); };
+boost::has_pre_increment<A>::value; // error: A::operator++() is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator++(const A&);
+struct B { operator A(); };
+boost::has_pre_increment<A>::value; // this is fine
+boost::has_pre_increment<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_right_shift.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_right_shift.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,74 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_right_shift has_right_shift]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_right_shift : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs>>rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs>>rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator>>`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs>>rhs); // is valid if has_right_shift<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_right_shift.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_right_shift<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_right_shift<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_right_shift<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_right_shift<long>` inherits from `__true_type`.]
+
+[:`has_right_shift<int, int, int>` inherits from `__true_type`.]
+[:`has_right_shift<const int, int>` inherits from `__true_type`.]
+[:`has_right_shift<std::istream, int&>` inherits from `__true_type`.]
+[:`has_right_shift<std::istream, char*, std::ostream>` inherits from `__true_type`.]
+[:`has_right_shift<std::istream, std::string&>` inherits from `__true_type`.]
+
+[:`has_right_shift<int, double, bool>` inherits from `__false_type`.]
+[:`has_right_shift<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator>>` is public or not:
+if `operator>>` is defined as a private member of `Lhs` then
+instantiating `has_right_shift<Lhs>` will produce a compiler error.
+For this reason `has_right_shift` cannot be used to determine whether a type has a public `operator>>` or not.
+``
+struct A { private: void operator>>(const A&); };
+boost::has_right_shift<A>::value; // error: A::operator>>(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator>>(const A&, const A&);
+struct B { operator A(); };
+boost::has_right_shift<A>::value; // this is fine
+boost::has_right_shift<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_right_shift_assign.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_right_shift_assign.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,71 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_right_shift_assign has_right_shift_assign]
+ template <class Lhs, class Rhs=Lhs, class Ret=dont_care>
+ struct has_right_shift_assign : public __tof {};
+
+__inherit
+If (i) `lhs` of type `Lhs` and `rhs` of type `Rhs` can be used in expression `lhs>>=rhs`,
+and (ii) `Ret=dont_care` or the result of expression `lhs>>=rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of binary `operator>>=`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Lhs lhs;
+Rhs rhs;
+f(lhs>>=rhs); // is valid if has_right_shift_assign<Lhs, Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_right_shift_assign.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_right_shift_assign<Lhs, Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_right_shift_assign<Lhs, Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_right_shift_assign<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_right_shift_assign<long>` inherits from `__true_type`.]
+
+[:`has_right_shift_assign<int, int, int>` inherits from `__true_type`.]
+
+[:`has_right_shift_assign<const int, int>` inherits from `__false_type`.]
+[:`has_right_shift_assign<int, double, bool>` inherits from `__false_type`.]
+[:`has_right_shift_assign<int, int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+This trait cannot detect whether binary `operator>>=` is public or not:
+if `operator>>=` is defined as a private member of `Lhs` then
+instantiating `has_right_shift_assign<Lhs>` will produce a compiler error.
+For this reason `has_right_shift_assign` cannot be used to determine whether a type has a public `operator>>=` or not.
+``
+struct A { private: void operator>>=(const A&); };
+boost::has_right_shift_assign<A>::value; // error: A::operator>>=(const A&) is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator>>=(const A&, const A&);
+struct B { operator A(); };
+boost::has_right_shift_assign<A>::value; // this is fine
+boost::has_right_shift_assign<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_unary.qbk
==============================================================================

Added: sandbox/type_traits/libs/type_traits/doc/has_unary_minus.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_unary_minus.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,72 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_unary_minus has_unary_minus]
+ template <class Rhs, class Ret=dont_care>
+ struct has_unary_minus : public __tof {};
+
+__inherit
+If (i) `rhs` of type `Rhs` can be used in expression `-rhs`,
+and (ii) `Ret=dont_care` or the result of expression `-rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of prefix `operator-`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Rhs rhs;
+f(-rhs); // is valid if has_unary_minus<Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_unary_minus.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_unary_minus<Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_unary_minus<Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_unary_minus<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_unary_minus<long>` inherits from `__true_type`.]
+
+[:`has_unary_minus<int, int>` inherits from `__true_type`.]
+[:`has_unary_minus<int, long>` inherits from `__true_type`.]
+[:`has_unary_minus<double, double>` inherits from `__true_type`.]
+[:`has_unary_minus<double, int>` inherits from `__true_type`.]
+[:`has_unary_minus<const int>` inherits from `__true_type`.]
+
+[:`has_unary_minus<int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+* This trait cannot detect whether prefix `operator-` is public or not:
+if `operator-` is defined as a private member of `Rhs` then
+instantiating `has_unary_minus<Rhs>` will produce a compiler error.
+For this reason `has_unary_minus` cannot be used to determine whether a type has a public `operator-` or not.
+``
+struct A { private: void operator-(); };
+boost::has_unary_minus<A>::value; // error: A::operator-() is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator-(const A&);
+struct B { operator A(); };
+boost::has_unary_minus<A>::value; // this is fine
+boost::has_unary_minus<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/has_unary_plus.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/has_unary_plus.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,72 @@
+[/
+ (C) Copyright 2009-2011 Frederic 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).
+]
+
+[section:has_unary_plus has_unary_plus]
+ template <class Rhs, class Ret=dont_care>
+ struct has_unary_plus : public __tof {};
+
+__inherit
+If (i) `rhs` of type `Rhs` can be used in expression `+rhs`,
+and (ii) `Ret=dont_care` or the result of expression `+rhs` is convertible to `Ret`
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+The default behaviour (`Ret=dont_care`) is to not check for the return value of prefix `operator+`.
+If `Ret` is different from the default `dont_care` type, the return value is checked to be convertible to `Ret`.
+Convertible to `Ret` means that the return value of the operator can be used as argument to a function expecting `Ret`:
+``
+void f(Ret);
+Rhs rhs;
+f(+rhs); // is valid if has_unary_plus<Rhs, Ret>::value==true
+``
+If `Ret=void`, the return type is checked to be exactly `void`.
+
+__header `#include <boost/type_traits/has_unary_plus.hpp>` or `#include <boost/type_traits/has_operator.hpp>`
+
+__examples
+
+[:`has_unary_plus<Rhs, Ret>::value_type` is the type `bool`.]
+[:`has_unary_plus<Rhs, Ret>::value` is a `bool` integral constant expression.]
+[:`has_unary_plus<int>::value` is a `bool` integral constant expression that evaluates to `true`.]
+[:`has_unary_plus<long>` inherits from `__true_type`.]
+
+[:`has_unary_plus<int, int>` inherits from `__true_type`.]
+[:`has_unary_plus<int, long>` inherits from `__true_type`.]
+[:`has_unary_plus<double, double>` inherits from `__true_type`.]
+[:`has_unary_plus<double, int>` inherits from `__true_type`.]
+[:`has_unary_plus<const int>` inherits from `__true_type`.]
+
+[:`has_unary_plus<int, std::string>` inherits from `__false_type`.]
+
+
+[*See also:] [link boost_typetraits.category.value_traits.operators Operator Type Traits]
+
+[*Known issues:]
+
+* This trait cannot detect whether prefix `operator+` is public or not:
+if `operator+` is defined as a private member of `Rhs` then
+instantiating `has_unary_plus<Rhs>` will produce a compiler error.
+For this reason `has_unary_plus` cannot be used to determine whether a type has a public `operator+` or not.
+``
+struct A { private: void operator+(); };
+boost::has_unary_plus<A>::value; // error: A::operator+() is private
+``
+
+* There is an issue if the operator exists only for type `A` and `B` is
+convertible to `A`. In this case, the compiler will report an ambiguous overload.
+``
+struct A { };
+void operator+(const A&);
+struct B { operator A(); };
+boost::has_unary_plus<A>::value; // this is fine
+boost::has_unary_plus<B>::value; // error: ambiguous overload
+``
+
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/history.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/history.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,35 @@
+[/
+ Copyright 2009 John Maddock.
+ 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).
+]
+
+[section:history History]
+
+[h4 Boost 1.47.0]
+
+* [* Breaking change]: changed __is_convertible to C++0x behaviour when possible.
+* Fixed issues [@https://svn.boost.org/trac/boost/ticket/5271 #5271],
+[@https://svn.boost.org/trac/boost/ticket/4530 #4530].
+
+
+[h4 Boost 1.45.0]
+
+* Added new traits __add_rvalue_reference, __add_lvalue_reference and __common_type.
+* Minor fixes to __is_signed, __is_unsigned and __is_virtual_base_of.
+
+[h4 Boost 1.44.0]
+
+* Added support for rvalue references throughout the library, plus two new traits classes
+__is_rvalue_reference and __is_lvalue_reference. Fixes [@https://svn.boost.org/trac/boost/ticket/4407 #4407]
+and [@https://svn.boost.org/trac/boost/ticket/3804 #3804].
+* Fixed ticket [@https://svn.boost.org/trac/boost/ticket/3621 #3621].
+
+[h4 Boost 1.42.0]
+
+* Fixed issue [@https://svn.boost.org/trac/boost/ticket/3704 #3704].
+
+
+[endsect]
+

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_typetraits.background"></a><a class="link" href="background.html" title="Background and Tutorial"> Background and Tutorial</a>
+<a name="boost_typetraits.background"></a><a class="link" href="background.html" title="Background and Tutorial">Background and Tutorial</a>
 </h2></div></div></div>
 <p>
       The following is an updated version of the article "C++ Type traits"
@@ -49,7 +49,7 @@
       method available to them.
     </p>
 <a name="boost_typetraits.background.type_traits"></a><h5>
-<a name="id3253775"></a>
+<a name="boost_typetraits.background.type_traits-heading"></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="id3252822"></a>
+<a name="boost_typetraits.background.implementation-heading"></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="id3304305"></a>
+<a name="boost_typetraits.background.optimized_copy-heading"></a>
       <a class="link" href="background.html#boost_typetraits.background.optimized_copy">Optimized copy</a>
     </h5>
 <p>
@@ -231,16 +231,16 @@
       examples</a>. The code begins by defining a template function <code class="computeroutput"><span class="identifier">do_copy</span></code> that performs a "slow but safe"
       copy. The last parameter passed to this function may be either a <code class="computeroutput"><a class="link" href="reference/integral_constant.html" title="integral_constant">true_type</a></code>
       or a <code class="computeroutput"><a class="link" href="reference/integral_constant.html" title="integral_constant">false_type</a></code>.
- Following that there is an overload of do<span class="underline">copy that
- uses `memcpy`: this time the iterators are required to actually be pointers
- to the same type, and the final parameter must be a `</span>_true_type<code class="computeroutput"><span class="special">.</span> <span class="identifier">Finally</span><span class="special">,</span> <span class="identifier">the</span> <span class="identifier">version</span>
- <span class="identifier">of</span> </code>copy<code class="computeroutput"> <span class="identifier">calls</span>
- </code>do<span class="underline">copy`, passing `</span>_has_trivial_assign&lt;value_type&gt;()`
- as the final parameter: this will dispatch to the optimized version where appropriate,
- otherwise it will call the "slow but safe version".
+ Following that there is an overload of do_copy that uses <code class="computeroutput"><span class="identifier">memcpy</span></code>:
+ this time the iterators are required to actually be pointers to the same type,
+ and the final parameter must be a <code class="computeroutput"><a class="link" href="reference/integral_constant.html" title="integral_constant">true_type</a></code>.
+ Finally, the version of <code class="computeroutput"><span class="identifier">copy</span></code>
+ calls <code class="computeroutput"><span class="identifier">do_copy</span></code>, passing <code class="computeroutput"><a class="link" href="reference/has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;()</span></code> as the final parameter: this will dispatch
+ to the optimized version where appropriate, otherwise it will call the "slow
+ but safe version".
     </p>
 <a name="boost_typetraits.background.was_it_worth_it_"></a><h5>
-<a name="id3304768"></a>
+<a name="boost_typetraits.background.was_it_worth_it_-heading"></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="id3304836"></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="boost_typetraits.background.time_taken_to_copy_1000_elements_using__copy_const_t___t_____times_in_micro_seconds_"></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="id3304988"></a>
+<a name="boost_typetraits.background.pair_of_references-heading"></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="id3305295"></a><p class="title"><b>Table&#160;1.2.&#160;Required Constructor Argument Types</b></p>
+<a name="boost_typetraits.background.required_constructor_argument_types"></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="id3305412"></a><p class="title"><b>Table&#160;1.3.&#160;Using add_reference to synthesize the correct constructor type</b></p>
+<a name="boost_typetraits.background.using_add_reference_to_synthesize_the_correct_constructor_type"></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="id3305943"></a>
+<a name="boost_typetraits.background.conclusion-heading"></a>
       <a class="link" href="background.html#boost_typetraits.background.conclusion">Conclusion</a>
     </h5>
 <p>
@@ -603,16 +603,16 @@
       can be optimal as well as generic.
     </p>
 <a name="boost_typetraits.background.acknowledgements"></a><h5>
-<a name="id3305975"></a>
+<a name="boost_typetraits.background.acknowledgements-heading"></a>
       <a class="link" href="background.html#boost_typetraits.background.acknowledgements">Acknowledgements</a>
     </h5>
 <p>
       The authors would like to thank Beman Dawes and Howard Hinnant for their helpful
       comments when preparing this article.
     </p>
-<a name="background.references"></a><a name="boost_typetraits.background.references"></a><h5>
-<a name="id3306002"></a>
- <a class="link" href="background.html#boost_typetraits.background.references">References</a>
+<a name="boost_typetraits.background._anchor_id__background_references___references"></a><h5>
+<a name="boost_typetraits.background._anchor_id__background_references___references-heading"></a>
+ <a class="link" href="background.html#boost_typetraits.background._anchor_id__background_references___references"><a name="background.references"></a>References</a>
     </h5>
 <div class="orderedlist"><ol class="orderedlist" type="1">
 <li class="listitem">

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,26 +17,26 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_typetraits.category"></a><a class="link" href="category.html" title="Type Traits by Category"> Type Traits by Category</a>
+<a name="boost_typetraits.category"></a><a class="link" href="category.html" title="Type Traits by Category">Type Traits by Category</a>
 </h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="category/value_traits.html"> Type Traits
- that Describe the Properties of a Type</a></span></dt>
+<dt><span class="section"><a href="category/value_traits.html">Type Traits that
+ Describe the Properties of a Type</a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="category/value_traits/primary.html"> Categorizing
+<dt><span class="section"><a href="category/value_traits/primary.html">Categorizing
         a Type</a></span></dt>
-<dt><span class="section"><a href="category/value_traits/properties.html">
- General Type Properties</a></span></dt>
-<dt><span class="section"><a href="category/value_traits/relate.html"> Relationships
+<dt><span class="section"><a href="category/value_traits/properties.html">General
+ Type Properties</a></span></dt>
+<dt><span class="section"><a href="category/value_traits/relate.html">Relationships
         Between Two Types</a></span></dt>
-<dt><span class="section"><a href="category/value_traits/operators.html">
- Operator Type Traits</a></span></dt>
+<dt><span class="section"><a href="category/value_traits/operators.html">Operator
+ Type Traits</a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="category/transform.html"> Type Traits that
+<dt><span class="section"><a href="category/transform.html">Type Traits that
       Transform One Type to Another</a></span></dt>
-<dt><span class="section"><a href="category/alignment.html"> Synthesizing Types
+<dt><span class="section"><a href="category/alignment.html">Synthesizing Types
       with Specific Alignments</a></span></dt>
-<dt><span class="section"><a href="category/function.html"> Decomposing Function
+<dt><span class="section"><a href="category/function.html">Decomposing Function
       Types</a></span></dt>
 </dl></div>
 </div>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.category.alignment"></a><a class="link" href="alignment.html" title="Synthesizing Types with Specific Alignments"> Synthesizing Types
+<a name="boost_typetraits.category.alignment"></a><a class="link" href="alignment.html" title="Synthesizing Types with Specific Alignments">Synthesizing Types
       with Specific Alignments</a>
 </h3></div></div></div>
 <p>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.category.function"></a><a class="link" href="function.html" title="Decomposing Function Types"> Decomposing Function
+<a name="boost_typetraits.category.function"></a><a class="link" href="function.html" title="Decomposing Function Types">Decomposing Function
       Types</a>
 </h3></div></div></div>
 <p>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.category.transform"></a><a class="link" href="transform.html" title="Type Traits that Transform One Type to Another"> Type Traits that
+<a name="boost_typetraits.category.transform"></a><a class="link" href="transform.html" title="Type Traits that Transform One Type to Another">Type Traits that
       Transform One Type to Another</a>
 </h3></div></div></div>
 <p>
@@ -60,7 +60,7 @@
 <span class="keyword">struct</span> <a class="link" href="../reference/make_unsigned.html" title="make_unsigned">make_unsigned</a><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../reference/member_object.html" title="member_object">member_object</a><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">__member_object</span><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <a class="link" href="../reference/promote.html" title="promote">promote</a><span class="special">;</span>
@@ -81,7 +81,7 @@
 <span class="keyword">struct</span> <a class="link" href="../reference/remove_pointer.html" title="remove_pointer">remove_pointer</a><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../reference/remove_member_pointer.html" title="remove_member_pointer">remove_member_pointer</a><span class="special">;</span>
+<span class="keyword">struct</span> <span class="identifier">__remove_member_pointer</span><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <a class="link" href="../reference/remove_reference.html" title="remove_reference">remove_reference</a><span class="special">;</span>
@@ -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="id3318508"></a>
+<a name="boost_typetraits.category.transform.broken_compiler_workarounds_-heading"></a>
         <a class="link" href="transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">Broken
         Compiler Workarounds:</a>
       </h5>
@@ -133,13 +133,13 @@
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">myspace</span><span class="special">{</span>
    <span class="keyword">struct</span> <span class="identifier">MyClass</span> <span class="special">{};</span>
 <span class="special">}</span>
-<span class="comment">// declare this at global scope:
-</span><span class="identifier">BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION</span><span class="special">(</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">)</span>
-<span class="comment">// transformations on myspace::MyClass now work:
-</span><span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
+<span class="comment">// declare this at global scope:</span>
+<span class="identifier">BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION</span><span class="special">(</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">)</span>
+<span class="comment">// transformations on myspace::MyClass now work:</span>
+<span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">,</span> <span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
 <span class="identifier">BOOST_STATIC_ASSERT</span><span class="special">((</span><span class="identifier">is_same</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span><span class="special">,</span> <span class="identifier">remove_const</span><span class="special">&lt;</span><span class="identifier">myspace</span><span class="special">::</span><span class="identifier">MyClass</span> <span class="keyword">const</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">));</span>
-<span class="comment">// etc.
-</span></pre>
+<span class="comment">// etc.</span>
+</pre>
 <p>
         Note that the macro BOOST_BROKEN_COMPILER_TYPE_TRAITS_SPECIALIZATION evaluates
         to nothing on those compilers that <span class="bold"><strong>do</strong></span> support

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,18 +17,18 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.category.value_traits"></a><a class="link" href="value_traits.html" title="Type Traits that Describe the Properties of a Type"> Type Traits
- that Describe the Properties of a Type</a>
+<a name="boost_typetraits.category.value_traits"></a><a class="link" href="value_traits.html" title="Type Traits that Describe the Properties of a Type">Type Traits that
+ Describe the Properties of a Type</a>
 </h3></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="value_traits/primary.html"> Categorizing
+<dt><span class="section"><a href="value_traits/primary.html">Categorizing
         a Type</a></span></dt>
-<dt><span class="section"><a href="value_traits/properties.html">
- General Type Properties</a></span></dt>
-<dt><span class="section"><a href="value_traits/relate.html"> Relationships
+<dt><span class="section"><a href="value_traits/properties.html">General
+ Type Properties</a></span></dt>
+<dt><span class="section"><a href="value_traits/relate.html">Relationships
         Between Two Types</a></span></dt>
-<dt><span class="section"><a href="value_traits/operators.html">
- Operator Type Traits</a></span></dt>
+<dt><span class="section"><a href="value_traits/operators.html">Operator
+ Type Traits</a></span></dt>
 </dl></div>
 <p>
         These traits are all <span class="emphasis"><em>value traits</em></span>, which is to say the

Modified: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/operators.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/operators.html (original)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/category/value_traits/operators.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,50 +17,151 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="boost_typetraits.category.value_traits.operators"></a><a class="link" href="operators.html" title="Operator Type Traits">
- Operator Type Traits</a>
+<a name="boost_typetraits.category.value_traits.operators"></a><a class="link" href="operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
 </h4></div></div></div>
 <a name="boost_typetraits.category.value_traits.operators.introduction"></a><h6>
-<a name="id3308615"></a>
+<a name="boost_typetraits.category.value_traits.operators.introduction-heading"></a>
           <a class="link" href="operators.html#boost_typetraits.category.value_traits.operators.introduction">Introduction</a>
         </h6>
 <p>
           These traits are all <span class="emphasis"><em>value traits</em></span> inheriting from
           <a class="link" href="../../reference/integral_constant.html" title="integral_constant">integral_constant</a>
           and providing a simple <code class="computeroutput"><span class="keyword">true</span></code>
- or <code class="computeroutput"><span class="keyword">false</span></code> boolean value which
- reflects the fact that given types can or not be used with given operators.
+ or <code class="computeroutput"><span class="keyword">false</span></code> boolean <code class="computeroutput"><span class="identifier">value</span></code> which reflects the fact that given
+ types can or cannot be used with given operators.
         </p>
 <p>
- For example, <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
+ For example, <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
           is a <code class="computeroutput"><span class="keyword">bool</span></code> which value is
           <code class="computeroutput"><span class="keyword">true</span></code> because it is possible
           to add a <code class="computeroutput"><span class="keyword">double</span></code> to an <code class="computeroutput"><span class="keyword">int</span></code> like in the following code:
 </p>
 <pre class="programlisting"><span class="keyword">int</span> <span class="identifier">i</span><span class="special">;</span>
 <span class="keyword">double</span> <span class="identifier">d</span><span class="special">;</span>
-<span class="identifier">d</span><span class="special">+</span><span class="identifier">i</span><span class="special">;</span>
+<span class="identifier">i</span><span class="special">+</span><span class="identifier">d</span><span class="special">;</span>
 </pre>
 <p>
- It is also possible to know if the result of the operator is convertible
- or not to a given type:
+ It is also possible to know if the result of the operator can be used as
+ function argument of a given type. For example, <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">float</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
+ is <code class="computeroutput"><span class="keyword">true</span></code> because it is possible
+ to add a <code class="computeroutput"><span class="keyword">double</span></code> to an <code class="computeroutput"><span class="keyword">int</span></code> and the result (<code class="computeroutput"><span class="keyword">double</span></code>)
+ can be converted to a <code class="computeroutput"><span class="keyword">float</span></code>
+ argument like in the following code:
 </p>
-<pre class="programlisting"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// true: int+double is convertible to double
-</span><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// false: int+double is not convertible to char*
-</span><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// true: int&lt;double is convertible to bool
-</span></pre>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="keyword">float</span><span class="special">)</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">int</span> <span class="identifier">i</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">d</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">i</span><span class="special">+</span><span class="identifier">d</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<a name="boost_typetraits.category.value_traits.operators.example_of_application"></a><h6>
+<a name="boost_typetraits.category.value_traits.operators.example_of_application-heading"></a>
+ <a class="link" href="operators.html#boost_typetraits.category.value_traits.operators.example_of_application">Example
+ of application</a>
+ </h6>
 <p>
+ These traits can be useful to optimize the code for types supporting given
+ operations. For example a function <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">advance</span></code>
+ that increases an iterator of a given number of steps could be implemented
+ as follows:
         </p>
 <p>
- The syntax for binary operators is the following:
+
 </p>
-<pre class="programlisting"><span class="keyword">template</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code> <span class="identifier">can_call_op</span><span class="special">;</span>
+<pre class="programlisting"><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">has_plus_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+
+<span class="keyword">namespace</span> <span class="identifier">detail</span> <span class="special">{</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Distance</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">has_plus_assign</span> <span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">advance_impl</span><span class="special">;</span>
+
+<span class="comment">// this is used if += exists (efficient)</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Distance</span> <span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">advance_impl</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Distance</span><span class="special">,</span> <span class="keyword">true</span><span class="special">&gt;</span> <span class="special">{</span>
+ <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Iterator</span> <span class="special">&amp;</span><span class="identifier">i</span><span class="special">,</span> <span class="identifier">Distance</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+ <span class="identifier">i</span><span class="special">+=</span><span class="identifier">n</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+
+<span class="comment">// this is use if += does not exists (less efficient but cannot do better)</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Distance</span> <span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">advance_impl</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Distance</span><span class="special">,</span> <span class="keyword">false</span><span class="special">&gt;</span> <span class="special">{</span>
+ <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Iterator</span> <span class="special">&amp;</span><span class="identifier">i</span><span class="special">,</span> <span class="identifier">Distance</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">n</span><span class="special">&gt;</span><span class="number">0</span><span class="special">)</span> <span class="special">{</span>
+ <span class="keyword">while</span> <span class="special">(</span><span class="identifier">n</span><span class="special">--)</span> <span class="special">++</span><span class="identifier">i</span><span class="special">;</span>
+ <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+ <span class="keyword">while</span> <span class="special">(</span><span class="identifier">n</span><span class="special">++)</span> <span class="special">--</span><span class="identifier">i</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace detail</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Distance</span> <span class="special">&gt;</span>
+<span class="keyword">inline</span> <span class="keyword">void</span> <span class="identifier">advance</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="special">&amp;</span><span class="identifier">i</span><span class="special">,</span> <span class="identifier">Distance</span> <span class="identifier">n</span><span class="special">)</span> <span class="special">{</span>
+ <span class="identifier">detail</span><span class="special">::</span><span class="identifier">advance_impl</span><span class="special">&lt;</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="identifier">Distance</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="identifier">Iterator</span><span class="special">&gt;::</span><span class="identifier">value</span> <span class="special">&gt;()(</span><span class="identifier">i</span><span class="special">,</span> <span class="identifier">n</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ Then the compiler chooses the most efficient implementation according to
+ the type's ability to perform <code class="computeroutput"><span class="special">+=</span></code>
+ operation:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+
+<span class="keyword">class</span> <span class="identifier">with</span> <span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">m_i</span><span class="special">;</span>
+ <span class="keyword">public</span><span class="special">:</span>
+ <span class="identifier">with</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">m_i</span><span class="special">(</span><span class="identifier">i</span><span class="special">)</span> <span class="special">{</span> <span class="special">}</span>
+ <span class="identifier">with</span> <span class="special">&amp;</span><span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">int</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="special">{</span> <span class="identifier">m_i</span><span class="special">+=</span><span class="identifier">rhs</span><span class="special">;</span> <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span> <span class="special">}</span>
+ <span class="keyword">operator</span> <span class="keyword">int</span> <span class="keyword">const</span> <span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">m_i</span><span class="special">;</span> <span class="special">}</span>
+<span class="special">};</span>
+
+<span class="keyword">class</span> <span class="identifier">without</span> <span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">m_i</span><span class="special">;</span>
+ <span class="keyword">public</span><span class="special">:</span>
+ <span class="identifier">without</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">m_i</span><span class="special">(</span><span class="identifier">i</span><span class="special">)</span> <span class="special">{</span> <span class="special">}</span>
+ <span class="identifier">without</span> <span class="special">&amp;</span><span class="keyword">operator</span><span class="special">++()</span> <span class="special">{</span> <span class="special">++</span><span class="identifier">m_i</span><span class="special">;</span> <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span> <span class="special">}</span>
+ <span class="identifier">without</span> <span class="special">&amp;</span><span class="keyword">operator</span><span class="special">--()</span> <span class="special">{</span> <span class="special">--</span><span class="identifier">m_i</span><span class="special">;</span> <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span> <span class="special">}</span>
+ <span class="keyword">operator</span> <span class="keyword">int</span> <span class="keyword">const</span> <span class="special">()</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">m_i</span><span class="special">;</span> <span class="special">}</span>
+<span class="special">};</span>
+
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span> <span class="special">{</span>
+ <span class="identifier">with</span> <span class="identifier">i</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
+ <span class="identifier">advance</span><span class="special">(</span><span class="identifier">i</span><span class="special">,</span> <span class="number">10</span><span class="special">);</span> <span class="comment">// uses +=</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">&lt;&lt;</span><span class="string">"with: "</span><span class="special">&lt;&lt;</span><span class="identifier">i</span><span class="special">&lt;&lt;</span><span class="char">'\n'</span><span class="special">;</span>
+ <span class="identifier">without</span> <span class="identifier">j</span><span class="special">=</span><span class="number">0</span><span class="special">;</span>
+ <span class="identifier">advance</span><span class="special">(</span><span class="identifier">j</span><span class="special">,</span> <span class="number">10</span><span class="special">);</span> <span class="comment">// uses ++</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">&lt;&lt;</span><span class="string">"without: "</span><span class="special">&lt;&lt;</span><span class="identifier">j</span><span class="special">&lt;&lt;</span><span class="char">'\n'</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<a name="boost_typetraits.category.value_traits.operators.description"></a><h6>
+<a name="boost_typetraits.category.value_traits.operators.description-heading"></a>
+ <a class="link" href="operators.html#boost_typetraits.category.value_traits.operators.description">Description</a>
+ </h6>
+<p>
+ The syntax is the following:
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code> <span class="identifier">has_op</span><span class="special">;</span> <span class="comment">// prefix operator</span>
+<span class="keyword">template</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code> <span class="identifier">has_op</span><span class="special">;</span> <span class="comment">// postfix operator</span>
+<span class="keyword">template</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code> <span class="identifier">has_op</span><span class="special">;</span> <span class="comment">// binary operator</span>
 </pre>
 <p>
           where:
         </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc">
 <li class="listitem">
+ op represents the operator name
+ </li>
+<li class="listitem">
               <code class="computeroutput"><span class="identifier">Lhs</span></code> is the type used
               at the left hand side of <code class="computeroutput"><span class="keyword">operator</span>
               <span class="identifier">op</span></code>,
@@ -87,28 +188,19 @@
 <pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
 <span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
 <span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">+</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_addition&lt;Lhs, Rhs, Ret&gt;::value==true
-</span></pre>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">+</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_plus&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
 <p>
           If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
           <code class="computeroutput"><span class="keyword">void</span></code>.
         </p>
 <p>
- Similarly, the syntax for postfix and prefix operators is the following:
-
-</p>
-<pre class="programlisting"><span class="keyword">template</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code> <span class="identifier">can_call_prefixop</span><span class="special">;</span>
-<span class="keyword">template</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code> <span class="identifier">can_call_postfixop</span><span class="special">;</span>
-</pre>
-<p>
- </p>
-<p>
           The following tables give the list of supported binary, prefix and postfix
           operators.
         </p>
 <div class="table">
-<a name="id3309458"></a><p class="title"><b>Table&#160;1.4.&#160;Supported binary operators</b></p>
-<div class="table-contents"><table class="table" summary="Supported binary operators">
+<a name="boost_typetraits.category.value_traits.operators.supported_prefix_operators"></a><p class="title"><b>Table&#160;1.4.&#160;Supported prefix operators</b></p>
+<div class="table-contents"><table class="table" summary="Supported prefix operators">
 <colgroup>
 <col>
 <col>
@@ -129,16 +221,27 @@
 <tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="special">+</span></code>
+ <code class="computeroutput"><span class="special">!</span></code>
                   </p>
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_addition.html" title="can_call_addition"><code class="computeroutput"><span class="identifier">can_call_addition</span> <code class="computeroutput"><span class="special">&lt;</span>
- <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span>
+ <a class="link" href="../../reference/has_logical_not.html" title="has_logical_not"><code class="computeroutput"><span class="identifier">has_logical_not</span></code></a> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
+ <span class="identifier">Rhs</span><span class="special">,</span>
                     <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ <span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">+</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <a class="link" href="../../reference/has_unary_plus.html" title="has_unary_plus"><code class="computeroutput"><span class="identifier">has_unary_plus</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -150,10 +253,20 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_subtraction.html" title="can_call_subtraction"><code class="computeroutput"><span class="identifier">can_call_subtraction</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_unary_minus.html" title="has_unary_minus"><code class="computeroutput"><span class="identifier">has_unary_minus</span></code></a> and
+ <a class="link" href="../../reference/has_negate.html" title="has_negate"><code class="computeroutput"><span class="identifier">has_negate</span></code></a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">~</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <a class="link" href="../../reference/has_complement.html" title="has_complement"><code class="computeroutput"><span class="identifier">has_complement</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -165,10 +278,144 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_multiplication.html" title="can_call_multiplication"><code class="computeroutput"><span class="identifier">can_call_multiplication</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
+ <a class="link" href="../../reference/has_dereference.html" title="has_dereference"><code class="computeroutput"><span class="identifier">has_dereference</span></code></a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">++</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <a class="link" href="../../reference/has_pre_increment.html" title="has_pre_increment"><code class="computeroutput"><span class="identifier">has_pre_increment</span></code></a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">--</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <a class="link" href="../../reference/has_pre_decrement.html" title="has_pre_decrement"><code class="computeroutput"><span class="identifier">has_pre_decrement</span></code></a>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="boost_typetraits.category.value_traits.operators.supported_postfix_operators"></a><p class="title"><b>Table&#160;1.5.&#160;Supported postfix operators</b></p>
+<div class="table-contents"><table class="table" summary="Supported postfix operators">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ operator
+ </p>
+ </th>
+<th>
+ <p>
+ trait name
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">++</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <a class="link" href="../../reference/has_post_increment.html" title="has_post_increment"><code class="computeroutput"><span class="identifier">has_post_increment</span></code></a>
+ <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
+ <span class="identifier">Lhs</span><span class="special">,</span>
+ <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
+ <span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">--</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <a class="link" href="../../reference/has_post_decrement.html" title="has_post_decrement"><code class="computeroutput"><span class="identifier">has_post_decrement</span></code></a>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break"><div class="table">
+<a name="boost_typetraits.category.value_traits.operators.supported_binary_operators"></a><p class="title"><b>Table&#160;1.6.&#160;Supported binary operators</b></p>
+<div class="table-contents"><table class="table" summary="Supported binary operators">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ operator
+ </p>
+ </th>
+<th>
+ <p>
+ trait name
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">+</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <a class="link" href="../../reference/has_plus.html" title="has_plus"><code class="computeroutput"><span class="identifier">has_plus</span></code></a> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
                     <span class="identifier">Lhs</span><span class="special">,</span>
                     <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">-</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <a class="link" href="../../reference/has_minus.html" title="has_minus"><code class="computeroutput"><span class="identifier">has_minus</span></code></a>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="special">*</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <a class="link" href="../../reference/has_multiplies.html" title="has_multiplies"><code class="computeroutput"><span class="identifier">has_multiplies</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -180,11 +427,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_division.html" title="can_call_division"><code class="computeroutput"><span class="identifier">can_call_division</span> <code class="computeroutput"><span class="special">&lt;</span>
- <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_divides.html" title="has_divides"><code class="computeroutput"><span class="identifier">has_divides</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -196,11 +439,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_modulus.html" title="can_call_modulus"><code class="computeroutput"><span class="identifier">can_call_modulus</span> <code class="computeroutput"><span class="special">&lt;</span>
- <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_modulus.html" title="has_modulus"><code class="computeroutput"><span class="identifier">has_modulus</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -212,10 +451,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_addition_assignment.html" title="can_call_addition_assignment"><code class="computeroutput"><span class="identifier">can_call_addition_assignment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_plus_assign.html" title="has_plus_assign"><code class="computeroutput"><span class="identifier">has_plus_assign</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -227,10 +463,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_subtraction_assignment.html" title="can_call_subtraction_assignment"><code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_minus_assign.html" title="has_minus_assign"><code class="computeroutput"><span class="identifier">has_minus_assign</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -242,11 +475,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_multiplication_assignment.html" title="can_call_multiplication_assignment"><code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span>
- <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_multiplies_assign.html" title="has_multiplies_assign"><code class="computeroutput"><span class="identifier">has_multiplies_assign</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -258,10 +487,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_division_assignment.html" title="can_call_division_assignment"><code class="computeroutput"><span class="identifier">can_call_division_assignment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_divides_assign.html" title="has_divides_assign"><code class="computeroutput"><span class="identifier">has_divides_assign</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -273,10 +499,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_modulus_assignment.html" title="can_call_modulus_assignment"><code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_modulus_assign.html" title="has_modulus_assign"><code class="computeroutput"><span class="identifier">has_modulus_assign</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -288,10 +511,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_bitwise_and.html" title="can_call_bitwise_and"><code class="computeroutput"><span class="identifier">can_call_bitwise_and</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_bit_and.html" title="has_bit_and"><code class="computeroutput"><span class="identifier">has_bit_and</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -303,10 +523,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_bitwise_or.html" title="can_call_bitwise_or"><code class="computeroutput"><span class="identifier">can_call_bitwise_or</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_bit_or.html" title="has_bit_or"><code class="computeroutput"><span class="identifier">has_bit_or</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -318,10 +535,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_bitwise_xor.html" title="can_call_bitwise_xor"><code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_bit_xor.html" title="has_bit_xor"><code class="computeroutput"><span class="identifier">has_bit_xor</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -333,10 +547,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_bitwise_and_assignment.html" title="can_call_bitwise_and_assignment"><code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_bit_and_assign.html" title="has_bit_and_assign"><code class="computeroutput"><span class="identifier">has_bit_and_assign</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -348,10 +559,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_bitwise_or_assignment.html" title="can_call_bitwise_or_assignment"><code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_bit_or_assign.html" title="has_bit_or_assign"><code class="computeroutput"><span class="identifier">has_bit_or_assign</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -363,10 +571,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_bitwise_xor_assignment.html" title="can_call_bitwise_xor_assignment"><code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_bit_xor_assign.html" title="has_bit_xor_assign"><code class="computeroutput"><span class="identifier">has_bit_xor_assign</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -378,10 +583,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_left_shift.html" title="can_call_left_shift"><code class="computeroutput"><span class="identifier">can_call_left_shift</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_left_shift.html" title="has_left_shift"><code class="computeroutput"><span class="identifier">has_left_shift</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -393,10 +595,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_right_shift.html" title="can_call_right_shift"><code class="computeroutput"><span class="identifier">can_call_right_shift</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_right_shift.html" title="has_right_shift"><code class="computeroutput"><span class="identifier">has_right_shift</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -408,10 +607,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_left_shift_assignment.html" title="can_call_left_shift_assignment"><code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_left_shift_assign.html" title="has_left_shift_assign"><code class="computeroutput"><span class="identifier">has_left_shift_assign</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -423,10 +619,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_right_shift_assignment.html" title="can_call_right_shift_assignment"><code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_right_shift_assign.html" title="has_right_shift_assign"><code class="computeroutput"><span class="identifier">has_right_shift_assign</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -438,11 +631,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_equal.html" title="can_call_equal"><code class="computeroutput"><span class="identifier">can_call_equal</span> <code class="computeroutput"><span class="special">&lt;</span>
- <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_equal_to.html" title="has_equal_to"><code class="computeroutput"><span class="identifier">has_equal_to</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -454,11 +643,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_not_equal.html" title="can_call_not_equal"><code class="computeroutput"><span class="identifier">can_call_not_equal</span> <code class="computeroutput"><span class="special">&lt;</span>
- <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_not_equal_to.html" title="has_not_equal_to"><code class="computeroutput"><span class="identifier">has_not_equal_to</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -470,11 +655,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_less.html" title="can_call_less"><code class="computeroutput"><span class="identifier">can_call_less</span> <code class="computeroutput"><span class="special">&lt;</span>
- <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_less.html" title="has_less"><code class="computeroutput"><span class="identifier">has_less</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -486,10 +667,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_less_equal.html" title="can_call_less_equal"><code class="computeroutput"><span class="identifier">can_call_less_equal</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_less_equal.html" title="has_less_equal"><code class="computeroutput"><span class="identifier">has_less_equal</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -501,11 +679,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_greater.html" title="can_call_greater"><code class="computeroutput"><span class="identifier">can_call_greater</span> <code class="computeroutput"><span class="special">&lt;</span>
- <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_greater.html" title="has_greater"><code class="computeroutput"><span class="identifier">has_greater</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -517,10 +691,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_greater_equal.html" title="can_call_greater_equal"><code class="computeroutput"><span class="identifier">can_call_greater_equal</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_greater_equal.html" title="has_greater_equal"><code class="computeroutput"><span class="identifier">has_greater_equal</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -532,11 +703,7 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_and.html" title="can_call_and"><code class="computeroutput"><span class="identifier">can_call_and</span> <code class="computeroutput"><span class="special">&lt;</span>
- <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_logical_and.html" title="has_logical_and"><code class="computeroutput"><span class="identifier">has_logical_and</span></code></a>
                   </p>
                 </td>
 </tr>
@@ -548,33 +715,92 @@
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_or.html" title="can_call_or"><code class="computeroutput"><span class="identifier">can_call_or</span> <code class="computeroutput"><span class="special">&lt;</span>
- <span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ <a class="link" href="../../reference/has_logical_or.html" title="has_logical_or"><code class="computeroutput"><span class="identifier">has_logical_or</span></code></a>
                   </p>
                 </td>
 </tr>
 </tbody>
 </table></div>
 </div>
-<br class="table-break"><div class="table">
-<a name="id3312536"></a><p class="title"><b>Table&#160;1.5.&#160;Supported prefix operators</b></p>
-<div class="table-contents"><table class="table" summary="Supported prefix operators">
+<br class="table-break"><p>
+ The following operators are not supported because they could not be implemented
+ using the same technique: <code class="computeroutput"><span class="keyword">operator</span><span class="special">=</span></code>, <code class="computeroutput"><span class="keyword">operator</span><span class="special">-&gt;</span></code>, <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;</span></code>, <code class="computeroutput"><span class="keyword">operator</span><span class="special">[]</span></code>, <code class="computeroutput"><span class="keyword">operator</span><span class="special">,</span></code>, <code class="computeroutput"><span class="keyword">operator</span><span class="special">()</span></code>, <code class="computeroutput"><span class="keyword">operator</span>
+ <span class="keyword">new</span></code>.
+ </p>
+<a name="boost_typetraits.category.value_traits.operators.cv_qualifiers_and_references"></a><h6>
+<a name="boost_typetraits.category.value_traits.operators.cv_qualifiers_and_references-heading"></a>
+ <a class="link" href="operators.html#boost_typetraits.category.value_traits.operators.cv_qualifiers_and_references">cv
+ qualifiers and references</a>
+ </h6>
+<p>
+ A reference sign <code class="computeroutput"><span class="special">&amp;</span></code> in
+ the operator argument is ignored so that <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span> <span class="keyword">int</span><span class="special">&amp;,</span> <span class="keyword">double</span><span class="special">&amp;</span> <span class="special">&gt;::</span><span class="identifier">value</span><span class="special">==</span><span class="identifier">has_plus</span><span class="special">&lt;</span>
+ <span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span> <span class="special">&gt;::</span><span class="identifier">value</span></code>. This has been chosen because if
+ the following code works (does not work):
+</p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">i</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="identifier">d</span><span class="special">;</span>
+<span class="identifier">i</span><span class="special">+</span><span class="identifier">d</span><span class="special">;</span>
+</pre>
+<p>
+ the following code also works (does not work):
+</p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="special">&amp;</span><span class="identifier">ir</span><span class="special">=</span><span class="identifier">i</span><span class="special">;</span>
+<span class="keyword">double</span> <span class="special">&amp;</span><span class="identifier">dr</span><span class="special">=</span><span class="identifier">d</span><span class="special">;</span>
+<span class="identifier">ir</span><span class="special">+</span><span class="identifier">dr</span><span class="special">;</span>
+</pre>
+<p>
+ </p>
+<p>
+ It was not possible to handle properly the <code class="computeroutput"><span class="keyword">volatile</span></code>
+ qualifier so that any construct using this qualifier has undefined behavior.
+ </p>
+<p>
+ As a help, the following tables give the necessary conditions over each
+ trait template argument for the trait <code class="computeroutput"><span class="identifier">value</span></code>
+ to be <code class="computeroutput"><span class="keyword">true</span></code>. They are non sufficient
+ conditions because the conditions must be <code class="computeroutput"><span class="keyword">true</span></code>
+ for all arguments and return type for <code class="computeroutput"><span class="identifier">value</span></code>
+ to be <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p>
+<div class="table">
+<a name="boost_typetraits.category.value_traits.operators.necessary_and_non_sufficient_condition_on_operator_argument_for_value_to_be_true"></a><p class="title"><b>Table&#160;1.7.&#160;necessary and non sufficient condition on operator argument for
+ value to be true</b></p>
+<div class="table-contents"><table class="table" summary="necessary and non sufficient condition on operator argument for
+ value to be true">
 <colgroup>
 <col>
 <col>
+<col>
+<col>
 </colgroup>
 <thead><tr>
 <th>
                   <p>
- operator
+ operator declaration
                   </p>
                 </th>
 <th>
                   <p>
- trait name
+ <code class="computeroutput"><span class="identifier">has_op</span><span class="special">&lt;</span>
+ <span class="keyword">void</span> <span class="special">&gt;</span></code>
+ </p>
+ </th>
+<th>
+ <p>
+ <code class="computeroutput"><span class="identifier">has_op</span><span class="special">&lt;</span>
+ <span class="identifier">Arg</span> <span class="special">&gt;</span></code>
+ and <code class="computeroutput"><span class="identifier">has_op</span><span class="special">&lt;</span>
+ <span class="identifier">Arg</span><span class="special">&amp;</span>
+ <span class="special">&gt;</span></code>
+ </p>
+ </th>
+<th>
+ <p>
+ <code class="computeroutput"><span class="identifier">has_op</span><span class="special">&lt;</span>
+ <span class="identifier">Arg</span> <span class="keyword">const</span>
+ <span class="special">&gt;</span></code> and <code class="computeroutput"><span class="identifier">has_op</span><span class="special">&lt;</span>
+ <span class="identifier">Arg</span> <span class="keyword">const</span><span class="special">&amp;</span> <span class="special">&gt;</span></code>
                   </p>
                 </th>
 </tr></thead>
@@ -582,104 +808,91 @@
 <tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="special">!</span></code>
+ <code class="computeroutput"><span class="keyword">operator</span></code>@<code class="computeroutput"><span class="special">(</span><span class="identifier">Arg</span><span class="special">)</span></code>
                   </p>
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_not.html" title="can_call_not"><code class="computeroutput"><span class="identifier">can_call_not</span> <code class="computeroutput"><span class="special">&lt;</span>
- <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span>
- <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span> <span class="special">&gt;</span></code></code></a>
+ false
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="special">+</span></code>
+ true
                   </p>
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_unary_plus.html" title="can_call_unary_plus"><code class="computeroutput"><span class="identifier">can_call_unary_plus</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ true
                   </p>
                 </td>
 </tr>
 <tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="special">-</span></code>
+ <code class="computeroutput"><span class="keyword">operator</span></code>@<code class="computeroutput"><span class="special">(</span><span class="identifier">Arg</span>
+ <span class="keyword">const</span><span class="special">)</span></code>
                   </p>
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_unary_minus.html" title="can_call_unary_minus"><code class="computeroutput"><span class="identifier">can_call_unary_minus</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ false
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="special">~</span></code>
+ true
                   </p>
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_complement.html" title="can_call_complement"><code class="computeroutput"><span class="identifier">can_call_complement</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ true
                   </p>
                 </td>
 </tr>
 <tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="special">*</span></code>
+ <code class="computeroutput"><span class="keyword">operator</span></code>@<code class="computeroutput"><span class="special">(</span><span class="identifier">Arg</span>
+ <span class="special">&amp;)</span></code>
                   </p>
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_dereference.html" title="can_call_dereference"><code class="computeroutput"><span class="identifier">can_call_dereference</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ false
                   </p>
                 </td>
-</tr>
-<tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="special">++</span></code>
+ true
                   </p>
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_pre_increment.html" title="can_call_pre_increment"><code class="computeroutput"><span class="identifier">can_call_pre_increment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ false
                   </p>
                 </td>
 </tr>
 <tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="special">--</span></code>
+ <code class="computeroutput"><span class="keyword">operator</span></code>@<code class="computeroutput"><span class="special">(</span><span class="identifier">Arg</span>
+ <span class="keyword">const</span> <span class="special">&amp;)</span></code>
                   </p>
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_pre_decrement.html" title="can_call_pre_decrement"><code class="computeroutput"><span class="identifier">can_call_pre_decrement</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Rhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ true
                   </p>
                 </td>
 </tr>
@@ -687,21 +900,58 @@
 </table></div>
 </div>
 <br class="table-break"><div class="table">
-<a name="id3313172"></a><p class="title"><b>Table&#160;1.6.&#160;Supported postfix operators</b></p>
-<div class="table-contents"><table class="table" summary="Supported postfix operators">
+<a name="boost_typetraits.category.value_traits.operators.necessary_and_non_sufficient_condition_on_operator_return_type_for_value_to_be_true"></a><p class="title"><b>Table&#160;1.8.&#160;necessary and non sufficient condition on operator return type for
+ value to be true</b></p>
+<div class="table-contents"><table class="table" summary="necessary and non sufficient condition on operator return type for
+ value to be true">
 <colgroup>
 <col>
 <col>
+<col>
+<col>
+<col>
+<col>
 </colgroup>
 <thead><tr>
 <th>
                   <p>
- operator
+ operator declaration
                   </p>
                 </th>
 <th>
                   <p>
- trait name
+ <code class="computeroutput"><span class="identifier">has_op</span><span class="special">&lt;</span>
+ <span class="special">...,</span> <span class="keyword">void</span>
+ <span class="special">&gt;</span></code>
+ </p>
+ </th>
+<th>
+ <p>
+ <code class="computeroutput"><span class="identifier">has_op</span><span class="special">&lt;</span>
+ <span class="special">...,</span> <span class="identifier">Ret</span>
+ <span class="special">&gt;</span></code>
+ </p>
+ </th>
+<th>
+ <p>
+ <code class="computeroutput"><span class="identifier">has_op</span><span class="special">&lt;</span>
+ <span class="special">...,</span> <span class="identifier">Ret</span>
+ <span class="keyword">const</span> <span class="special">&gt;</span></code>
+ </p>
+ </th>
+<th>
+ <p>
+ <code class="computeroutput"><span class="identifier">has_op</span><span class="special">&lt;</span>
+ <span class="special">...,</span> <span class="identifier">Ret</span>
+ <span class="special">&amp;</span> <span class="special">&gt;</span></code>
+ </p>
+ </th>
+<th>
+ <p>
+ <code class="computeroutput"><span class="identifier">has_op</span><span class="special">&lt;</span>
+ <span class="special">...,</span> <span class="identifier">Ret</span>
+ <span class="keyword">const</span> <span class="special">&amp;</span>
+ <span class="special">&gt;</span></code>
                   </p>
                 </th>
 </tr></thead>
@@ -709,30 +959,163 @@
 <tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="special">++</span></code>
+ <code class="computeroutput"><span class="keyword">void</span> <span class="keyword">operator</span></code>@<code class="computeroutput"><span class="special">(...)</span></code>
                   </p>
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_post_increment.html" title="can_call_post_increment"><code class="computeroutput"><span class="identifier">can_call_post_increment</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ false
                   </p>
                 </td>
 </tr>
 <tr>
 <td>
                   <p>
- <code class="computeroutput"><span class="special">--</span></code>
+ <code class="computeroutput"><span class="identifier">Ret</span> <span class="keyword">operator</span></code>@<code class="computeroutput"><span class="special">(...)</span></code>
                   </p>
                 </td>
 <td>
                   <p>
- <a class="link" href="../../reference/can_call_post_decrement.html" title="can_call_post_decrement"><code class="computeroutput"><span class="identifier">can_call_post_decrement</span> <code class="computeroutput"><span class="special">&lt;</span> <span class="keyword">class</span>
- <span class="identifier">Lhs</span><span class="special">,</span>
- <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span>
- <span class="special">&gt;</span></code></code></a>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Ret</span> <span class="keyword">const</span>
+ <span class="keyword">operator</span></code>@<code class="computeroutput"><span class="special">(...)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Ret</span> <span class="special">&amp;</span>
+ <span class="keyword">operator</span></code>@<code class="computeroutput"><span class="special">(...)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">Ret</span> <span class="keyword">const</span>
+ <span class="special">&amp;</span> <span class="keyword">operator</span></code>@<code class="computeroutput"><span class="special">(...)</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ true
+ </p>
+ </td>
+<td>
+ <p>
+ false
+ </p>
+ </td>
+<td>
+ <p>
+ true
                   </p>
                 </td>
 </tr>
@@ -740,27 +1123,27 @@
 </table></div>
 </div>
 <br class="table-break"><a name="boost_typetraits.category.value_traits.operators.implementation"></a><h6>
-<a name="id3313387"></a>
+<a name="boost_typetraits.category.value_traits.operators.implementation-heading"></a>
           <a class="link" href="operators.html#boost_typetraits.category.value_traits.operators.implementation">Implementation</a>
         </h6>
 <p>
           The implementation consists in only header files. The following headers
           should included first:
 </p>
-<pre class="programlisting"><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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
           or
 </p>
-<pre class="programlisting"><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">can_call_name</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
+<pre class="programlisting"><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">has_op</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></pre>
 <p>
- where <code class="literal">name</code> is the textual name chosen for the wanted
- operator. The first method includes all operator traits.
+ where <code class="literal">op</code> is the textual name chosen for the wanted operator.
+ The first method includes all operator traits.
         </p>
 <p>
           All traits are implemented the same way using preprocessor macros to avoid
           code duplication. The main files are in <code class="literal">boost/type_traits/detail</code>:
- <code class="literal">can_call_binary_operator.hpp</code>, <code class="literal">can_call_prefix_operator.hpp</code>
- and <code class="literal">can_call_postfix_operator.hpp</code>. The example of prefix
+ <code class="literal">has_binary_operator.hpp</code>, <code class="literal">has_prefix_operator.hpp</code>
+ and <code class="literal">has_postfix_operator.hpp</code>. The example of prefix
           <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code>
           is presented below:
         </p>
@@ -770,42 +1153,42 @@
 <pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
 <span class="keyword">namespace</span> <span class="identifier">detail</span> <span class="special">{</span>
 
-<span class="comment">// This namespace ensures that ADL does not mess things up.
-</span><span class="keyword">namespace</span> <span class="identifier">can_call_unary_minus_impl</span> <span class="special">{</span>
+<span class="comment">// This namespace ensures that argument-dependent name lookup does not mess things up.</span>
+<span class="keyword">namespace</span> <span class="identifier">has_unary_minus_impl</span> <span class="special">{</span>
 
-<span class="comment">// 1. a function to have an instance of type T without requiring T to be default
-</span><span class="comment">// constructible
-</span><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="special">&amp;</span><span class="identifier">make</span><span class="special">();</span>
-
-
-<span class="comment">// 2. checks if operator- returns void or not
-</span><span class="comment">// conditions: Rhs!=void
-</span>
-<span class="comment">// we first redefine "operator," so that we have no compilation error if
-</span><span class="comment">// operator- returns void and we can use the return type of
-</span><span class="comment">// (-rhs, returns_void_t()) to deduce if
-</span><span class="comment">// operator- returns void or not:
-</span><span class="comment">// - operator- returns void -&gt; (-rhs, returns_void_t()) returns returns_void_t
-</span><span class="comment">// - operator- returns !=void -&gt; (-rhs, returns_void_t()) returns int
-</span><span class="keyword">struct</span> <span class="identifier">returns_void_t</span> <span class="special">{};</span>
-<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">int</span> <span class="keyword">operator</span><span class="special">,(</span><span class="identifier">T</span> <span class="keyword">const</span> <span class="special">&amp;,</span> <span class="identifier">returns_void_t</span><span class="special">);</span>
-
-<span class="comment">// this intermediate trait has member value of type bool:
-</span><span class="comment">// - value==true -&gt; operator- returns void
-</span><span class="comment">// - value==false -&gt; operator- does not return void
-</span><span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span> <span class="special">&gt;</span>
+<span class="comment">// 1. a function to have an instance of type T without requiring T to be default</span>
+<span class="comment">// constructible</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">T</span> <span class="special">&amp;</span><span class="identifier">make</span><span class="special">();</span>
+
+
+<span class="comment">// 2. checks if the operator returns void or not</span>
+<span class="comment">// conditions: Rhs!=void</span>
+
+<span class="comment">// we first redefine "operator," so that we have no compilation error if</span>
+<span class="comment">// operator- returns void and we can use the return type of</span>
+<span class="comment">// (-rhs, returns_void_t()) to deduce if operator- returns void or not:</span>
+<span class="comment">// - operator- returns void -&gt; (-rhs, returns_void_t()) returns returns_void_t</span>
+<span class="comment">// - operator- returns !=void -&gt; (-rhs, returns_void_t()) returns int</span>
+<span class="keyword">struct</span> <span class="identifier">returns_void_t</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">int</span> <span class="keyword">operator</span><span class="special">,(</span><span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="identifier">returns_void_t</span><span class="special">);</span>
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">int</span> <span class="keyword">operator</span><span class="special">,(</span><span class="keyword">const</span> <span class="keyword">volatile</span> <span class="identifier">T</span><span class="special">&amp;,</span> <span class="identifier">returns_void_t</span><span class="special">);</span>
+
+<span class="comment">// this intermediate trait has member value of type bool:</span>
+<span class="comment">// - value==true -&gt; operator- returns void</span>
+<span class="comment">// - value==false -&gt; operator- does not return void</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span> <span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">operator_returns_void</span> <span class="special">{</span>
- <span class="comment">// overloads of function returns_void make the difference
-</span> <span class="comment">// yes_type and no_type have different size by construction
-</span> <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span> <span class="identifier">returns_void</span><span class="special">(</span><span class="identifier">returns_void_t</span><span class="special">);</span>
+ <span class="comment">// overloads of function returns_void make the difference</span>
+ <span class="comment">// yes_type and no_type have different size by construction</span>
+ <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span> <span class="identifier">returns_void</span><span class="special">(</span><span class="identifier">returns_void_t</span><span class="special">);</span>
    <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">no_type</span> <span class="identifier">returns_void</span><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="special">(</span><span class="keyword">sizeof</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span><span class="special">)==</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">returns_void</span><span class="special">((-</span> <span class="identifier">make</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;(),</span><span class="identifier">returns_void_t</span><span class="special">()))));</span>
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="keyword">sizeof</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span><span class="special">)==</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">returns_void</span><span class="special">((-</span><span class="identifier">make</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;(),</span><span class="identifier">returns_void_t</span><span class="special">())));</span>
 <span class="special">};</span>
 
 
-<span class="comment">// 3. check for return type if Ret!=dont_care
-</span><span class="comment">// conditions: Rhs!=void
-</span>
+<span class="comment">// 3. checks if the return type is Ret or Ret==dont_care</span>
+<span class="comment">// conditions: Rhs!=void</span>
+
 <span class="keyword">struct</span> <span class="identifier">dont_care</span> <span class="special">{</span> <span class="special">};</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">Returns_void</span> <span class="special">&gt;</span>
@@ -823,7 +1206,7 @@
 
 <span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span> <span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">operator_returns_Ret</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">void</span><span class="special">,</span> <span class="keyword">true</span> <span class="special">&gt;</span> <span class="special">{</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
 <span class="special">};</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span> <span class="special">&gt;</span>
@@ -836,59 +1219,59 @@
    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="keyword">false</span><span class="special">;</span>
 <span class="special">};</span>
 
-<span class="comment">// when Ret!=void, checks if it is convertible to Ret using the sizeof trick
-</span><span class="comment">// based on overload resolution
-</span><span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span> <span class="special">&gt;</span>
+<span class="comment">// otherwise checks if it is convertible to Ret using the sizeof trick</span>
+<span class="comment">// based on overload resolution</span>
+<span class="comment">// condition: Ret!=void and Ret!=dont_care and the operator does not return void</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span> <span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">operator_returns_Ret</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">,</span> <span class="keyword">false</span> <span class="special">&gt;</span> <span class="special">{</span>
- <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span> <span class="identifier">is_convertible_to_Ret</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span> <span class="comment">// this version is preferred for types convertible to Ret
-</span> <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">no_type</span> <span class="identifier">is_convertible_to_Ret</span><span class="special">(...);</span> <span class="comment">// this version is used otherwise
-</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="special">(</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">is_convertible_to_Ret</span><span class="special">(-</span> <span class="identifier">make</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;()))==</span><span class="keyword">sizeof</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span><span class="special">));</span>
+ <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span> <span class="identifier">is_convertible_to_Ret</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span> <span class="comment">// this version is preferred for types convertible to Ret</span>
+ <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">no_type</span> <span class="identifier">is_convertible_to_Ret</span><span class="special">(...);</span> <span class="comment">// this version is used otherwise</span>
+
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">is_convertible_to_Ret</span><span class="special">(-</span><span class="identifier">make</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;()))==</span><span class="keyword">sizeof</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span><span class="special">);</span>
 <span class="special">};</span>
 
 
-<span class="comment">// 4. we provide our operator definition for types that do not have one already
-</span>
-<span class="comment">// a type returned from operator- when no such operator is
-</span><span class="comment">// found in the type's own namespace so that we have a means to know that our
-</span><span class="comment">// operator was used
-</span><span class="keyword">struct</span> <span class="identifier">tag</span> <span class="special">{</span> <span class="special">};</span>
-
-<span class="comment">// this class allows implicit conversions and makes the following operator
-</span><span class="comment">// definition less-preferred than any other such operators that might be found
-</span><span class="comment">// via argument-dependent name lookup
-</span><span class="keyword">struct</span> <span class="identifier">any</span> <span class="special">{</span> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">any</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;);</span> <span class="special">};</span>
-
-<span class="comment">// when operator- is not available, this one is used
-</span><span class="identifier">tag</span> <span class="keyword">operator</span> <span class="special">-</span> <span class="special">(</span><span class="keyword">const</span> <span class="identifier">any</span><span class="special">&amp;);</span>
-
-
-<span class="comment">// 5. check for operator existence
-</span><span class="comment">// condition: Rhs!=void
-</span>
-<span class="comment">// check if our definition of operator- is used or an other
-</span><span class="comment">// existing one;
-</span><span class="comment">// this is done with redefinition of "operator," that returns tag or tag2
-</span><span class="keyword">struct</span> <span class="identifier">tag2</span> <span class="special">{</span> <span class="special">};</span>
-<span class="identifier">tag</span> <span class="keyword">operator</span><span class="special">,(</span><span class="identifier">tag</span><span class="special">,</span> <span class="identifier">tag2</span><span class="special">);</span>
+<span class="comment">// 4. we provide our operator definition for types that do not have one already</span>
+
+<span class="comment">// a type returned from operator- when no such operator is</span>
+<span class="comment">// found in the type's own namespace (our own operator is used) so that we have</span>
+<span class="comment">// a means to know that our operator was used</span>
+<span class="keyword">struct</span> <span class="identifier">no_operator</span> <span class="special">{</span> <span class="special">};</span>
+
+<span class="comment">// this class allows implicit conversions and makes the following operator</span>
+<span class="comment">// definition less-preferred than any other such operators that might be found</span>
+<span class="comment">// via argument-dependent name lookup</span>
+<span class="keyword">struct</span> <span class="identifier">any</span> <span class="special">{</span> <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span> <span class="identifier">any</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&amp;);</span> <span class="special">};</span>
+
+<span class="comment">// when operator- is not available, this one is used</span>
+<span class="identifier">no_operator</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <span class="identifier">any</span><span class="special">&amp;);</span>
+
+
+<span class="comment">// 5. checks for operator existence</span>
+<span class="comment">// condition: Rhs!=void</span>
+
+<span class="comment">// checks if our definition of operator- is used or an other</span>
+<span class="comment">// existing one;</span>
+<span class="comment">// this is done with redefinition of "operator," that returns no_operator or has_operator</span>
+<span class="keyword">struct</span> <span class="identifier">has_operator</span> <span class="special">{</span> <span class="special">};</span>
+<span class="identifier">no_operator</span> <span class="keyword">operator</span><span class="special">,(</span><span class="identifier">no_operator</span><span class="special">,</span> <span class="identifier">has_operator</span><span class="special">);</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span> <span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">operator_exists</span> <span class="special">{</span>
- <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span> <span class="identifier">check</span><span class="special">(</span><span class="identifier">tag2</span><span class="special">);</span> <span class="comment">// this version is preferred when operator exists
-</span> <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">no_type</span> <span class="identifier">check</span><span class="special">(</span><span class="identifier">tag</span><span class="special">);</span> <span class="comment">// this version is used otherwise
-</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="special">(</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">check</span><span class="special">(((-</span> <span class="identifier">make</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;()),</span><span class="identifier">make</span><span class="special">&lt;</span><span class="identifier">tag2</span><span class="special">&gt;())))==</span><span class="keyword">sizeof</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span><span class="special">));</span>
+ <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span> <span class="identifier">check</span><span class="special">(</span><span class="identifier">has_operator</span><span class="special">);</span> <span class="comment">// this version is preferred when operator exists</span>
+ <span class="keyword">static</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">no_type</span> <span class="identifier">check</span><span class="special">(</span><span class="identifier">no_operator</span><span class="special">);</span> <span class="comment">// this version is used otherwise</span>
+
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">check</span><span class="special">(((-</span><span class="identifier">make</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;()),</span><span class="identifier">make</span><span class="special">&lt;</span><span class="identifier">has_operator</span><span class="special">&gt;())))==</span><span class="keyword">sizeof</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">yes_type</span><span class="special">);</span>
 <span class="special">};</span>
 
 
-<span class="comment">// 5. main trait: to avoid any compilation error, this struct behaves
-</span><span class="comment">// differently when:
-</span><span class="comment">// - operator-(Rhs) is forbidden by the standard
-</span><span class="comment">// Forbidden_if is a bool that is:
-</span><span class="comment">// - true when the operator-(Rhs) is forbidden by the standard
-</span><span class="comment">// (would yield compilation error if used)
-</span><span class="comment">// - false otherwise
-</span><span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">Forbidden_if</span> <span class="special">&gt;</span>
+<span class="comment">// 5. main trait: to avoid any compilation error, this class behaves</span>
+<span class="comment">// differently when operator-(Rhs) is forbidden by the standard.</span>
+<span class="comment">// Forbidden_if is a bool that is:</span>
+<span class="comment">// - true when the operator-(Rhs) is forbidden by the standard</span>
+<span class="comment">// (would yield compilation error if used)</span>
+<span class="comment">// - false otherwise</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">Forbidden_if</span> <span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">trait_impl1</span><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span> <span class="special">&gt;</span>
@@ -898,41 +1281,42 @@
 
 <span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span> <span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">trait_impl1</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">,</span> <span class="keyword">false</span> <span class="special">&gt;</span> <span class="special">{</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span>
- <span class="identifier">value</span> <span class="special">=</span> <span class="special">(</span>
- <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">ice_and</span><span class="special">&lt;</span>
- <span class="identifier">operator_exists</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span> <span class="special">&gt;::</span><span class="identifier">value</span><span class="special">,</span>
- <span class="identifier">operator_returns_Ret</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">,</span> <span class="identifier">operator_returns_void</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span> <span class="special">&gt;::</span><span class="identifier">value</span> <span class="special">&gt;::</span><span class="identifier">value</span>
- <span class="special">&gt;::</span><span class="identifier">value</span>
- <span class="special">);</span>
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span>
+ <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_traits</span><span class="special">::</span><span class="identifier">ice_and</span><span class="special">&lt;</span>
+ <span class="identifier">operator_exists</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span> <span class="special">&gt;::</span><span class="identifier">value</span><span class="special">,</span>
+ <span class="identifier">operator_returns_Ret</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">,</span> <span class="identifier">operator_returns_void</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span> <span class="special">&gt;::</span><span class="identifier">value</span> <span class="special">&gt;::</span><span class="identifier">value</span>
+ <span class="special">&gt;::</span><span class="identifier">value</span>
+ <span class="special">;</span>
 <span class="special">};</span>
 
-<span class="comment">// specialization needs to be declared for the special void case
-</span><span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Ret</span> <span class="special">&gt;</span>
+<span class="comment">// specialization needs to be declared for the special void case</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Ret</span> <span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">trait_impl1</span> <span class="special">&lt;</span> <span class="keyword">void</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">,</span> <span class="keyword">false</span> <span class="special">&gt;</span> <span class="special">{</span>
    <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="keyword">false</span><span class="special">;</span>
 <span class="special">};</span>
 
-<span class="comment">// defines some typedef for convenience
-</span><span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span> <span class="special">&gt;</span>
+<span class="comment">// defines some typedef for convenience</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span> <span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">trait_impl</span> <span class="special">{</span>
    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">Rhs_noref</span><span class="special">;</span>
- <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="special">(</span><span class="identifier">trait_impl1</span> <span class="special">&lt;</span> <span class="identifier">Rhs_noref</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_pointer</span><span class="special">&lt;</span> <span class="identifier">Rhs_noref</span> <span class="special">&gt;::</span><span class="identifier">value</span> <span class="special">&gt;::</span><span class="identifier">value</span><span class="special">);</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_cv</span><span class="special">&lt;</span><span class="identifier">Rhs_noref</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">Rhs_nocv</span><span class="special">;</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_cv</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_reference</span><span class="special">&lt;</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">remove_pointer</span><span class="special">&lt;</span><span class="identifier">Rhs_noref</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="special">&gt;::</span><span class="identifier">type</span> <span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">Rhs_noptr</span><span class="special">;</span>
+ <span class="keyword">static</span> <span class="keyword">const</span> <span class="keyword">bool</span> <span class="identifier">value</span> <span class="special">=</span> <span class="identifier">trait_impl1</span> <span class="special">&lt;</span> <span class="identifier">Rhs_noref</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_pointer</span><span class="special">&lt;</span> <span class="identifier">Rhs_noref</span> <span class="special">&gt;::</span><span class="identifier">value</span> <span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span>
 <span class="special">};</span>
 
-<span class="special">}</span> <span class="comment">// namespace can_call_unary_minus_impl
-</span><span class="special">}</span> <span class="comment">// namespace detail
-</span>
-<span class="comment">// this is the accessible definition of the trait to end user
-</span><span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span><span class="special">=::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">can_call_unary_minus_impl</span><span class="special">::</span><span class="identifier">dont_care</span> <span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_unary_minus</span> <span class="special">:</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">can_call_unary_minus_impl</span><span class="special">::</span><span class="identifier">trait_impl</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span> <span class="special">&gt;::</span><span class="identifier">value</span><span class="special">)&gt;</span> <span class="special">{</span> <span class="special">};</span>
+<span class="special">}</span> <span class="comment">// namespace impl</span>
+<span class="special">}</span> <span class="comment">// namespace detail</span>
 
-<span class="special">}</span> <span class="comment">// namespace boost
-</span></pre>
+<span class="comment">// this is the accessible definition of the trait to end user</span>
+<span class="keyword">template</span> <span class="special">&lt;</span> <span class="keyword">typename</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Ret</span><span class="special">=::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">has_unary_minus_impl</span><span class="special">::</span><span class="identifier">dont_care</span> <span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_unary_minus</span> <span class="special">:</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">integral_constant</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">has_unary_minus_impl</span><span class="special">::</span><span class="identifier">trait_impl</span> <span class="special">&lt;</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span> <span class="special">&gt;::</span><span class="identifier">value</span><span class="special">)&gt;</span> <span class="special">{</span> <span class="special">};</span>
+
+<span class="special">}</span> <span class="comment">// namespace boost</span>
+</pre>
 <p>
         </p>
 <a name="boost_typetraits.category.value_traits.operators.known_issues"></a><h6>
-<a name="id3316872"></a>
+<a name="boost_typetraits.category.value_traits.operators.known_issues-heading"></a>
           <a class="link" href="operators.html#boost_typetraits.category.value_traits.operators.known_issues">Known
           issues</a>
         </h6>
@@ -946,14 +1330,14 @@
           
 </p>
 <pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="identifier">A</span> <span class="keyword">operator</span><span class="special">-();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator-() is private
-</span></pre>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator-() is private</span>
+</pre>
 <p>
         </p>
 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
               There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
               is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
- In this case, the compiler will report an ambigous overload because
+ In this case, the compiler will report an ambiguous overload because
               both the existing operator and the one we provide (with argument of
               type <code class="computeroutput"><span class="identifier">any</span></code>) need type
               conversion, so that none is preferred.
@@ -964,28 +1348,32 @@
 <pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
 <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
 <span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambigous overload between
-</span> <span class="comment">// operator-(const any&amp;) and
-</span> <span class="comment">// operator-(const A&amp;)
-</span> <span class="comment">// both need type conversion
-</span></pre>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload between</span>
+ <span class="comment">// operator-(const any&amp;) and</span>
+ <span class="comment">// operator-(const A&amp;)</span>
+ <span class="comment">// both need type conversion</span>
+</pre>
 <p>
           
 </p>
 <pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="special">};</span>
 <span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="identifier">A</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">B</span><span class="special">&amp;)</span> <span class="special">{</span> <span class="special">}</span> <span class="special">};</span>
 <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambigous overload between
-</span> <span class="comment">// operator-(const any&amp;) and
-</span> <span class="comment">// operator-(const A&amp;)
-</span> <span class="comment">// both need type conversion
-</span></pre>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload between</span>
+ <span class="comment">// operator-(const any&amp;) and</span>
+ <span class="comment">// operator-(const A&amp;)</span>
+ <span class="comment">// both need type conversion</span>
+</pre>
 <p>
         </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is
+ not properly handled and would lead to undefined behavior
+ </li></ul></div>
 <a name="boost_typetraits.category.value_traits.operators.acknowledgments"></a><h6>
-<a name="id3317505"></a>
+<a name="boost_typetraits.category.value_traits.operators.acknowledgments-heading"></a>
           <a class="link" href="operators.html#boost_typetraits.category.value_traits.operators.acknowledgments">Acknowledgments</a>
         </h6>
 <p>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="boost_typetraits.category.value_traits.primary"></a><a class="link" href="primary.html" title="Categorizing a Type"> Categorizing
+<a name="boost_typetraits.category.value_traits.primary"></a><a class="link" href="primary.html" title="Categorizing a Type">Categorizing
         a Type</a>
 </h4></div></div></div>
 <p>
@@ -42,43 +42,46 @@
           <span class="bold"><strong>Synopsis:</strong></span>
         </p>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_array.html" title="is_array">is_array</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_array.html" title="is_array">is_array</a><span class="special">;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_class.html" title="is_class">is_class</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_class.html" title="is_class">is_class</a><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_complex.html" title="is_complex">is_complex</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_complex.html" title="is_complex">is_complex</a><span class="special">;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_enum.html" title="is_enum">is_enum</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_enum.html" title="is_enum">is_enum</a><span class="special">;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_floating_point.html" title="is_floating_point">is_floating_point</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_floating_point.html" title="is_floating_point">is_floating_point</a><span class="special">;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_function.html" title="is_function">is_function</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_function.html" title="is_function">is_function</a><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_integral.html" title="is_integral">is_integral</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_integral.html" title="is_integral">is_integral</a><span class="special">;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_member_function_pointer.html" title="is_member_function_pointer">is_member_function_pointer</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_member_function_pointer.html" title="is_member_function_pointer">is_member_function_pointer</a><span class="special">;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_member_object_pointer.html" title="is_member_object_pointer">is_member_object_pointer</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_member_object_pointer.html" title="is_member_object_pointer">is_member_object_pointer</a><span class="special">;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_pointer.html" title="is_pointer">is_pointer</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_pointer.html" title="is_pointer">is_pointer</a><span class="special">;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_reference.html" title="is_reference">is_reference</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_lvalue_reference.html" title="is_lvalue_reference">is_lvalue_reference</a><span class="special">;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_union.html" title="is_union">is_union</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_rvalue_reference.html" title="is_rvalue_reference">is_rvalue_reference</a><span class="special">;</span>
   
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <a class="link" href="../../reference/is_void.html" title="is_void">is_void</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_union.html" title="is_union">is_union</a><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_void.html" title="is_void">is_void</a><span class="special">;</span>
 </pre>
 <p>
           The following traits are made up of the union of one or more type categorizations.
@@ -101,6 +104,9 @@
 <span class="keyword">struct</span> <a class="link" href="../../reference/is_object.html" title="is_object">is_object</a><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_reference.html" title="is_reference">is_reference</a><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <a class="link" href="../../reference/is_scalar.html" title="is_scalar">is_scalar</a><span class="special">;</span>
 </pre>
 </div>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,8 +17,8 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="boost_typetraits.category.value_traits.properties"></a><a class="link" href="properties.html" title="General Type Properties">
- General Type Properties</a>
+<a name="boost_typetraits.category.value_traits.properties"></a><a class="link" href="properties.html" title="General Type Properties">General
+ Type Properties</a>
 </h4></div></div></div>
 <p>
           The following templates describe the general properties of a type.
@@ -30,6 +30,9 @@
 <span class="keyword">struct</span> <a class="link" href="../../reference/alignment_of.html" title="alignment_of">alignment_of</a><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/has_new_operator.html" title="has_new_operator">has_new_operator</a><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <a class="link" href="../../reference/has_nothrow_assign.html" title="has_nothrow_assign">has_nothrow_assign</a><span class="special">;</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h4 class="title">
-<a name="boost_typetraits.category.value_traits.relate"></a><a class="link" href="relate.html" title="Relationships Between Two Types"> Relationships
+<a name="boost_typetraits.category.value_traits.relate"></a><a class="link" href="relate.html" title="Relationships Between Two Types">Relationships
         Between Two Types</a>
 </h4></div></div></div>
 <p>
@@ -30,6 +30,9 @@
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Base</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <a class="link" href="../../reference/is_base_of.html" title="is_base_of">is_base_of</a><span class="special">;</span>
 
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Base</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <a class="link" href="../../reference/is_virtual_base_of.html" title="is_virtual_base_of">is_virtual_base_of</a><span class="special">;</span>
+
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">From</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">To</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <a class="link" href="../../reference/is_convertible.html" title="is_convertible">is_convertible</a><span class="special">;</span>
 

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,17 +6,17 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="prev" href="reference/type_with_alignment.html" title="type_with_alignment">
+<link rel="prev" href="history.html" title="History">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="reference/type_with_alignment.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+<a accesskey="p" href="history.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_typetraits.credits"></a><a class="link" href="credits.html" title="Credits"> Credits</a>
+<a name="boost_typetraits.credits"></a><a class="link" href="credits.html" title="Credits">Credits</a>
 </h2></div></div></div>
 <p>
       This documentation was pulled together by John Maddock, using Boost.Quickbook
@@ -67,7 +67,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="reference/type_with_alignment.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
+<a accesskey="p" href="history.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,18 +17,18 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_typetraits.examples"></a><a class="link" href="examples.html" title="Examples"> Examples</a>
+<a name="boost_typetraits.examples"></a><a class="link" href="examples.html" title="Examples">Examples</a>
 </h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"><a href="examples/copy.html"> An Optimized Version
+<dt><span class="section"><a href="examples/copy.html">An Optimized Version
       of std::copy</a></span></dt>
-<dt><span class="section"><a href="examples/fill.html"> An Optimised Version
+<dt><span class="section"><a href="examples/fill.html">An Optimised Version
       of std::fill</a></span></dt>
-<dt><span class="section"><a href="examples/destruct.html"> An Example that
- Omits Destructor Calls For Types with Trivial Destructors</a></span></dt>
-<dt><span class="section"><a href="examples/iter.html"> An improved Version
- of std::iter_swap</a></span></dt>
-<dt><span class="section"><a href="examples/to_double.html"> Convert Numeric
+<dt><span class="section"><a href="examples/destruct.html">An Example that Omits
+ Destructor Calls For Types with Trivial Destructors</a></span></dt>
+<dt><span class="section"><a href="examples/iter.html">An improved Version of
+ std::iter_swap</a></span></dt>
+<dt><span class="section"><a href="examples/to_double.html">Convert Numeric
       Types and Enums to double</a></span></dt>
 </dl></div>
 </div>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.examples.copy"></a><a class="link" href="copy.html" title="An Optimized Version of std::copy"> An Optimized Version
+<a name="boost_typetraits.examples.copy"></a><a class="link" href="copy.html" title="An Optimized Version of std::copy">An Optimized Version
       of std::copy</a>
 </h3></div></div></div>
 <p>
@@ -26,12 +26,12 @@
         to determine whether to use <code class="computeroutput"><span class="identifier">memcpy</span></code>
         to optimise the copy operation (see copy_example.cpp):
       </p>
-<pre class="programlisting"><span class="comment">//
-</span><span class="comment">// opt::copy
-</span><span class="comment">// same semantics as std::copy
-</span><span class="comment">// calls memcpy where appropriate.
-</span><span class="comment">//
-</span>
+<pre class="programlisting"><span class="comment">//</span>
+<span class="comment">// opt::copy</span>
+<span class="comment">// same semantics as std::copy</span>
+<span class="comment">// calls memcpy where appropriate.</span>
+<span class="comment">//</span>
+
 <span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
 
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">I1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I2</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">b</span><span class="special">&gt;</span>
@@ -59,12 +59,12 @@
 <span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">I1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I2</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="identifier">I2</span> <span class="identifier">copy</span><span class="special">(</span><span class="identifier">I1</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">I1</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">I2</span> <span class="identifier">out</span><span class="special">)</span>
 <span class="special">{</span>
- <span class="comment">//
-</span> <span class="comment">// We can copy with memcpy if T has a trivial assignment operator,
-</span> <span class="comment">// and if the iterator arguments are actually pointers (this last
-</span> <span class="comment">// requirement we detect with overload resolution):
-</span> <span class="comment">//
-</span> <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">I1</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="identifier">value_type</span><span class="special">;</span>
+ <span class="comment">//</span>
+ <span class="comment">// We can copy with memcpy if T has a trivial assignment operator,</span>
+ <span class="comment">// and if the iterator arguments are actually pointers (this last</span>
+ <span class="comment">// requirement we detect with overload resolution):</span>
+ <span class="comment">//</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">I1</span><span class="special">&gt;::</span><span class="identifier">value_type</span> <span class="identifier">value_type</span><span class="special">;</span>
    <span class="keyword">return</span> <span class="identifier">detail</span><span class="special">::</span><span class="identifier">copy_imp</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">out</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a><span class="special">&lt;</span><span class="identifier">value_type</span><span class="special">&gt;());</span>
 <span class="special">}</span>
 </pre>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,19 +17,19 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.examples.destruct"></a><a class="link" href="destruct.html" title="An Example that Omits Destructor Calls For Types with Trivial Destructors"> An Example that
- Omits Destructor Calls For Types with Trivial Destructors</a>
+<a name="boost_typetraits.examples.destruct"></a><a class="link" href="destruct.html" title="An Example that Omits Destructor Calls For Types with Trivial Destructors">An Example that Omits
+ Destructor Calls For Types with Trivial Destructors</a>
 </h3></div></div></div>
 <p>
         Demonstrates a simple algorithm that uses <code class="computeroutput"><span class="identifier">__has_trivial_destruct</span></code>
         to determine whether to destructors need to be called (see trivial_destructor_example.cpp):
       </p>
-<pre class="programlisting"><span class="comment">//
-</span><span class="comment">// algorithm destroy_array:
-</span><span class="comment">// The reverse of std::unitialized_copy, takes a block of
-</span><span class="comment">// initialized memory and calls destructors on all objects therein.
-</span><span class="comment">//
-</span>
+<pre class="programlisting"><span class="comment">//</span>
+<span class="comment">// algorithm destroy_array:</span>
+<span class="comment">// The reverse of std::unitialized_copy, takes a block of</span>
+<span class="comment">// initialized memory and calls destructors on all objects therein.</span>
+<span class="comment">//</span>
+
 <span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
@@ -47,8 +47,8 @@
 <span class="special">{</span>
 <span class="special">}</span>
 
-<span class="special">}</span> <span class="comment">// namespace detail
-</span>
+<span class="special">}</span> <span class="comment">// namespace detail</span>
+
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="keyword">void</span> <span class="identifier">destroy_array</span><span class="special">(</span><span class="identifier">T</span><span class="special">*</span> <span class="identifier">p1</span><span class="special">,</span> <span class="identifier">T</span><span class="special">*</span> <span class="identifier">p2</span><span class="special">)</span>
 <span class="special">{</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.examples.fill"></a><a class="link" href="fill.html" title="An Optimised Version of std::fill"> An Optimised Version
+<a name="boost_typetraits.examples.fill"></a><a class="link" href="fill.html" title="An Optimised Version of std::fill">An Optimised Version
       of std::fill</a>
 </h3></div></div></div>
 <p>
@@ -26,11 +26,11 @@
         to determine whether to use <code class="computeroutput"><span class="identifier">memset</span></code>
         to optimise the fill operation (see fill_example.cpp):
       </p>
-<pre class="programlisting"><span class="comment">//
-</span><span class="comment">// fill
-</span><span class="comment">// same as std::fill, but uses memset where appropriate
-</span><span class="comment">//
-</span><span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
+<pre class="programlisting"><span class="comment">//</span>
+<span class="comment">// fill</span>
+<span class="comment">// same as std::fill, but uses memset where appropriate</span>
+<span class="comment">//</span>
+<span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">I</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">b</span><span class="special">&gt;</span>
 <span class="keyword">void</span> <span class="identifier">do_fill</span><span class="special">(</span><span class="identifier">I</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">I</span> <span class="identifier">last</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span> <span class="identifier">b</span><span class="special">&gt;&amp;)</span>
@@ -53,11 +53,11 @@
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">I</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="keyword">void</span> <span class="identifier">fill</span><span class="special">(</span><span class="identifier">I</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">I</span> <span class="identifier">last</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">)</span>
 <span class="special">{</span>
- <span class="comment">//
-</span> <span class="comment">// We can do an optimised fill if T has a trivial assignment
-</span> <span class="comment">// operator and if it's size is one:
-</span> <span class="comment">//
-</span> <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span>
+ <span class="comment">//</span>
+ <span class="comment">// We can do an optimised fill if T has a trivial assignment </span>
+ <span class="comment">// operator and if it's size is one:</span>
+ <span class="comment">//</span>
+ <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span>
       <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span> <span class="special">&amp;&amp;</span> <span class="special">(</span><span class="keyword">sizeof</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span> <span class="special">==</span> <span class="number">1</span><span class="special">)&gt;</span> <span class="identifier">truth_type</span><span class="special">;</span>
    <span class="identifier">detail</span><span class="special">::</span><span class="identifier">do_fill</span><span class="special">(</span><span class="identifier">first</span><span class="special">,</span> <span class="identifier">last</span><span class="special">,</span> <span class="identifier">val</span><span class="special">,</span> <span class="identifier">truth_type</span><span class="special">());</span>
 <span class="special">}</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,8 +17,8 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.examples.iter"></a><a class="link" href="iter.html" title="An improved Version of std::iter_swap"> An improved Version
- of std::iter_swap</a>
+<a name="boost_typetraits.examples.iter"></a><a class="link" href="iter.html" title="An improved Version of std::iter_swap">An improved Version of
+ std::iter_swap</a>
 </h3></div></div></div>
 <p>
         Demonstrates a version of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">iter_swap</span></code>
@@ -29,12 +29,12 @@
         the swap to ensure that the algorithm works correctly for both proxying iterators,
         and even iterators of different types (see iter_swap_example.cpp):
       </p>
-<pre class="programlisting"><span class="comment">//
-</span><span class="comment">// iter_swap:
-</span><span class="comment">// tests whether iterator is a proxying iterator or not, and
-</span><span class="comment">// uses optimal form accordingly:
-</span><span class="comment">//
-</span><span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
+<pre class="programlisting"><span class="comment">//</span>
+<span class="comment">// iter_swap:</span>
+<span class="comment">// tests whether iterator is a proxying iterator or not, and</span>
+<span class="comment">// uses optimal form accordingly:</span>
+<span class="comment">//</span>
+<span class="keyword">namespace</span> <span class="identifier">detail</span><span class="special">{</span>
 
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">I</span><span class="special">&gt;</span>
 <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">do_swap</span><span class="special">(</span><span class="identifier">I</span> <span class="identifier">one</span><span class="special">,</span> <span class="identifier">I</span> <span class="identifier">two</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/integral_constant.html" title="integral_constant">false_type</a><span class="special">&amp;)</span>
@@ -56,11 +56,11 @@
 <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">I1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I2</span><span class="special">&gt;</span>
 <span class="keyword">inline</span> <span class="keyword">void</span> <span class="identifier">iter_swap</span><span class="special">(</span><span class="identifier">I1</span> <span class="identifier">one</span><span class="special">,</span> <span class="identifier">I2</span> <span class="identifier">two</span><span class="special">)</span>
 <span class="special">{</span>
- <span class="comment">//
-</span> <span class="comment">// See is both arguments are non-proxying iterators,
-</span> <span class="comment">// and if both iterator the same type:
-</span> <span class="comment">//
-</span> <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">I1</span><span class="special">&gt;::</span><span class="identifier">reference</span> <span class="identifier">r1_t</span><span class="special">;</span>
+ <span class="comment">//</span>
+ <span class="comment">// See is both arguments are non-proxying iterators, </span>
+ <span class="comment">// and if both iterator the same type:</span>
+ <span class="comment">//</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">I1</span><span class="special">&gt;::</span><span class="identifier">reference</span> <span class="identifier">r1_t</span><span class="special">;</span>
    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator_traits</span><span class="special">&lt;</span><span class="identifier">I2</span><span class="special">&gt;::</span><span class="identifier">reference</span> <span class="identifier">r2_t</span><span class="special">;</span>
 
    <span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><a class="link" href="../reference/integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">,</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.examples.to_double"></a><a class="link" href="to_double.html" title="Convert Numeric Types and Enums to double"> Convert Numeric
+<a name="boost_typetraits.examples.to_double"></a><a class="link" href="to_double.html" title="Convert Numeric Types and Enums to double">Convert Numeric
       Types and Enums to double</a>
 </h3></div></div></div>
 <p>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/history.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/history.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>History</title>
+<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="prev" href="reference/type_with_alignment.html" title="type_with_alignment">
+<link rel="next" href="credits.html" title="Credits">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference/type_with_alignment.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="credits.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_typetraits.history"></a><a class="link" href="history.html" title="History">History</a>
+</h2></div></div></div>
+<a name="boost_typetraits.history.boost_1_47_0"></a><h5>
+<a name="boost_typetraits.history.boost_1_47_0-heading"></a>
+ <a class="link" href="history.html#boost_typetraits.history.boost_1_47_0">Boost 1.47.0</a>
+ </h5>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ <span class="bold"><strong>Breaking change</strong></span>: changed <a class="link" href="reference/is_convertible.html" title="is_convertible">is_convertible</a>
+ to C++0x behaviour when possible.
+ </li>
+<li class="listitem">
+ Fixed issues #5271,
+ #4530.
+ </li>
+</ul></div>
+<a name="boost_typetraits.history.boost_1_45_0"></a><h5>
+<a name="boost_typetraits.history.boost_1_45_0-heading"></a>
+ <a class="link" href="history.html#boost_typetraits.history.boost_1_45_0">Boost 1.45.0</a>
+ </h5>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Added new traits <a class="link" href="reference/add_rvalue_reference.html" title="add_rvalue_reference">add_rvalue_reference</a>,
+ <a class="link" href="reference/add_lvalue_reference.html" title="add_lvalue_reference">add_lvalue_reference</a>
+ and <a class="link" href="reference/common_type.html" title="common_type">common_type</a>.
+ </li>
+<li class="listitem">
+ Minor fixes to <a class="link" href="reference/is_signed.html" title="is_signed">is_signed</a>,
+ <a class="link" href="reference/is_unsigned.html" title="is_unsigned">is_unsigned</a>
+ and <a class="link" href="reference/is_virtual_base_of.html" title="is_virtual_base_of">is_virtual_base_of</a>.
+ </li>
+</ul></div>
+<a name="boost_typetraits.history.boost_1_44_0"></a><h5>
+<a name="boost_typetraits.history.boost_1_44_0-heading"></a>
+ <a class="link" href="history.html#boost_typetraits.history.boost_1_44_0">Boost 1.44.0</a>
+ </h5>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ Added support for rvalue references throughout the library, plus two new
+ traits classes <a class="link" href="reference/is_rvalue_reference.html" title="is_rvalue_reference">is_rvalue_reference</a>
+ and <a class="link" href="reference/is_lvalue_reference.html" title="is_lvalue_reference">is_lvalue_reference</a>.
+ Fixes #4407
+ and #3804.
+ </li>
+<li class="listitem">
+ Fixed ticket #3621.
+ </li>
+</ul></div>
+<a name="boost_typetraits.history.boost_1_42_0"></a><h5>
+<a name="boost_typetraits.history.boost_1_42_0-heading"></a>
+ <a class="link" href="history.html#boost_typetraits.history.boost_1_42_0">Boost 1.42.0</a>
+ </h5>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
+ Fixed issue #3704.
+ </li></ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="reference/type_with_alignment.html"><img src="../images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../images/home.png" alt="Home"></a><a accesskey="n" href="credits.html"><img src="../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_typetraits.intrinsics"></a><a class="link" href="intrinsics.html" title="Support for Compiler Intrinsics"> Support for Compiler Intrinsics</a>
+<a name="boost_typetraits.intrinsics"></a><a class="link" href="intrinsics.html" title="Support for Compiler Intrinsics">Support for Compiler Intrinsics</a>
 </h2></div></div></div>
 <p>
       There are some traits that can not be implemented within the current C++ language:
@@ -92,7 +92,7 @@
       of the following macros:
     </p>
 <div class="table">
-<a name="id3320588"></a><p class="title"><b>Table&#160;1.7.&#160;Macros for Compiler Intrinsics</b></p>
+<a name="boost_typetraits.intrinsics.macros_for_compiler_intrinsics"></a><p class="title"><b>Table&#160;1.9.&#160;Macros for Compiler Intrinsics</b></p>
 <div class="table-contents"><table class="table" summary="Macros for Compiler Intrinsics">
 <colgroup>
 <col>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_typetraits.intro"></a><a class="link" href="intro.html" title="Introduction"> Introduction</a>
+<a name="boost_typetraits.intro"></a><a class="link" href="intro.html" title="Introduction">Introduction</a>
 </h2></div></div></div>
 <p>
       The Boost type-traits library contains a set of very specific traits classes,
@@ -26,8 +26,8 @@
       or a const-qualifier?
     </p>
 <p>
- The type-traits classes share a unified design: each class inherits from a
- the type <a class="link" href="reference/integral_constant.html" title="integral_constant">true_type</a>
+ The type-traits classes share a unified design: each class inherits from the
+ type <a class="link" href="reference/integral_constant.html" title="integral_constant">true_type</a>
       if the type has the specified property and inherits from <a class="link" href="reference/integral_constant.html" title="integral_constant">false_type</a>
       otherwise.
     </p>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_typetraits.mpl"></a><a class="link" href="mpl.html" title="MPL Interoperability"> MPL Interoperability</a>
+<a name="boost_typetraits.mpl"></a><a class="link" href="mpl.html" title="MPL Interoperability">MPL Interoperability</a>
 </h2></div></div></div>
 <p>
       All the value based traits in this library conform to MPL's requirements for

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,134 +17,123 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_typetraits.reference"></a><a class="link" href="reference.html" title="Alphabetical Reference"> Alphabetical Reference</a>
+<a name="boost_typetraits.reference"></a><a class="link" href="reference.html" title="Alphabetical Reference">Alphabetical Reference</a>
 </h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"> add_const</span></dt>
-<dt><span class="section"> add_cv</span></dt>
-<dt><span class="section"> add_pointer</span></dt>
-<dt><span class="section"> add_reference</span></dt>
-<dt><span class="section"> add_volatile</span></dt>
-<dt><span class="section"> aligned_storage</span></dt>
-<dt><span class="section"> alignment_of</span></dt>
-<dt><span class="section"> can_call_addition</span></dt>
-<dt><span class="section"><a href="reference/can_call_addition_assignment.html">
- can_call_addition_assignment</a></span></dt>
-<dt><span class="section"> can_call_and</span></dt>
-<dt><span class="section"> can_call_bitwise_and</span></dt>
-<dt><span class="section"><a href="reference/can_call_bitwise_and_assignment.html">
- can_call_bitwise_and_assignment</a></span></dt>
-<dt><span class="section"> can_call_bitwise_or</span></dt>
-<dt><span class="section"><a href="reference/can_call_bitwise_or_assignment.html">
- can_call_bitwise_or_assignment</a></span></dt>
-<dt><span class="section"> can_call_bitwise_xor</span></dt>
-<dt><span class="section"><a href="reference/can_call_bitwise_xor_assignment.html">
- can_call_bitwise_xor_assignment</a></span></dt>
-<dt><span class="section"> can_call_complement</span></dt>
-<dt><span class="section"> can_call_dereference</span></dt>
-<dt><span class="section"> can_call_division</span></dt>
-<dt><span class="section"><a href="reference/can_call_division_assignment.html">
- can_call_division_assignment</a></span></dt>
-<dt><span class="section"> can_call_equal</span></dt>
-<dt><span class="section"> can_call_greater</span></dt>
-<dt><span class="section"> can_call_greater_equal</span></dt>
-<dt><span class="section"> can_call_left_shift</span></dt>
-<dt><span class="section"><a href="reference/can_call_left_shift_assignment.html">
- can_call_left_shift_assignment</a></span></dt>
-<dt><span class="section"> can_call_less</span></dt>
-<dt><span class="section"> can_call_less_equal</span></dt>
-<dt><span class="section"> can_call_modulus</span></dt>
-<dt><span class="section"><a href="reference/can_call_modulus_assignment.html">
- can_call_modulus_assignment</a></span></dt>
-<dt><span class="section"><a href="reference/can_call_multiplication.html">
- can_call_multiplication</a></span></dt>
-<dt><span class="section"><a href="reference/can_call_multiplication_assignment.html">
- can_call_multiplication_assignment</a></span></dt>
-<dt><span class="section"> can_call_not</span></dt>
-<dt><span class="section"> can_call_not_equal</span></dt>
-<dt><span class="section"> can_call_or</span></dt>
-<dt><span class="section"><a href="reference/can_call_post_decrement.html">
- can_call_post_decrement</a></span></dt>
-<dt><span class="section"><a href="reference/can_call_post_increment.html">
- can_call_post_increment</a></span></dt>
-<dt><span class="section"> can_call_pre_decrement</span></dt>
-<dt><span class="section"> can_call_pre_increment</span></dt>
-<dt><span class="section"> can_call_right_shift</span></dt>
-<dt><span class="section"><a href="reference/can_call_right_shift_assignment.html">
- can_call_right_shift_assignment</a></span></dt>
-<dt><span class="section"> can_call_subtraction</span></dt>
-<dt><span class="section"><a href="reference/can_call_subtraction_assignment.html">
- can_call_subtraction_assignment</a></span></dt>
-<dt><span class="section"> can_call_unary_minus</span></dt>
-<dt><span class="section"> can_call_unary_plus</span></dt>
-<dt><span class="section"> decay</span></dt>
-<dt><span class="section"> extent</span></dt>
-<dt><span class="section"><a href="reference/floating_point_promotion.html">
- floating_point_promotion</a></span></dt>
-<dt><span class="section"> function_traits</span></dt>
-<dt><span class="section"> has_nothrow_assign</span></dt>
-<dt><span class="section"><a href="reference/has_nothrow_constructor.html">
- has_nothrow_constructor</a></span></dt>
-<dt><span class="section"> has_nothrow_copy</span></dt>
-<dt><span class="section"> has_nothrow_copy_constructor</span></dt>
-<dt><span class="section"> has_nothrow_default_constructor</span></dt>
-<dt><span class="section"> has_trivial_assign</span></dt>
-<dt><span class="section"><a href="reference/has_trivial_constructor.html">
- has_trivial_constructor</a></span></dt>
-<dt><span class="section"> has_trivial_copy</span></dt>
-<dt><span class="section"> has_trivial_copy_constructor</span></dt>
-<dt><span class="section"> has_trivial_default_constructor</span></dt>
-<dt><span class="section"> has_trivial_destructor</span></dt>
-<dt><span class="section"> has_virtual_destructor</span></dt>
-<dt><span class="section"> integral_constant</span></dt>
-<dt><span class="section"> integral_promotion</span></dt>
-<dt><span class="section"> is_abstract</span></dt>
-<dt><span class="section"> is_arithmetic</span></dt>
-<dt><span class="section"> is_array</span></dt>
-<dt><span class="section"> is_base_of</span></dt>
-<dt><span class="section"> is_class</span></dt>
-<dt><span class="section"> is_complex</span></dt>
-<dt><span class="section"> is_compound</span></dt>
-<dt><span class="section"> is_const</span></dt>
-<dt><span class="section"> is_convertible</span></dt>
-<dt><span class="section"> is_empty</span></dt>
-<dt><span class="section"> is_enum</span></dt>
-<dt><span class="section"> is_floating_point</span></dt>
-<dt><span class="section"> is_function</span></dt>
-<dt><span class="section"> is_fundamental</span></dt>
-<dt><span class="section"> is_integral</span></dt>
-<dt><span class="section"><a href="reference/is_member_function_pointer.html">
- is_member_function_pointer</a></span></dt>
-<dt><span class="section"><a href="reference/is_member_object_pointer.html">
- is_member_object_pointer</a></span></dt>
-<dt><span class="section"> is_member_pointer</span></dt>
-<dt><span class="section"> is_object</span></dt>
-<dt><span class="section"> is_pod</span></dt>
-<dt><span class="section"> is_pointer</span></dt>
-<dt><span class="section"> is_polymorphic</span></dt>
-<dt><span class="section"> is_reference</span></dt>
-<dt><span class="section"> is_same</span></dt>
-<dt><span class="section"> is_scalar</span></dt>
-<dt><span class="section"> is_signed</span></dt>
-<dt><span class="section"> is_stateless</span></dt>
-<dt><span class="section"> is_union</span></dt>
-<dt><span class="section"> is_unsigned</span></dt>
-<dt><span class="section"> is_void</span></dt>
-<dt><span class="section"> is_volatile</span></dt>
-<dt><span class="section"> make_signed</span></dt>
-<dt><span class="section"> make_unsigned</span></dt>
-<dt><span class="section"> member_object</span></dt>
-<dt><span class="section"> promote</span></dt>
-<dt><span class="section"> rank</span></dt>
-<dt><span class="section"> remove_all_extents</span></dt>
-<dt><span class="section"> remove_const</span></dt>
-<dt><span class="section"> remove_cv</span></dt>
-<dt><span class="section"> remove_extent</span></dt>
-<dt><span class="section"> remove_pointer</span></dt>
-<dt><span class="section"> remove_member_pointer</span></dt>
-<dt><span class="section"> remove_reference</span></dt>
-<dt><span class="section"> remove_volatile</span></dt>
-<dt><span class="section"> type_with_alignment</span></dt>
+<dt><span class="section">add_const</span></dt>
+<dt><span class="section">add_cv</span></dt>
+<dt><span class="section">add_lvalue_reference</span></dt>
+<dt><span class="section">add_pointer</span></dt>
+<dt><span class="section">add_reference</span></dt>
+<dt><span class="section">add_rvalue_reference</span></dt>
+<dt><span class="section">add_volatile</span></dt>
+<dt><span class="section">aligned_storage</span></dt>
+<dt><span class="section">alignment_of</span></dt>
+<dt><span class="section">conditional</span></dt>
+<dt><span class="section">common_type</span></dt>
+<dt><span class="section">decay</span></dt>
+<dt><span class="section">extent</span></dt>
+<dt><span class="section">floating_point_promotion</span></dt>
+<dt><span class="section">function_traits</span></dt>
+<dt><span class="section">has_bit_and</span></dt>
+<dt><span class="section">has_bit_and_assign</span></dt>
+<dt><span class="section">has_bit_or</span></dt>
+<dt><span class="section">has_bit_or_assign</span></dt>
+<dt><span class="section">has_bit_xor</span></dt>
+<dt><span class="section">has_bit_xor_assign</span></dt>
+<dt><span class="section">has_complement</span></dt>
+<dt><span class="section">has_dereference</span></dt>
+<dt><span class="section">has_divides</span></dt>
+<dt><span class="section">has_divides_assign</span></dt>
+<dt><span class="section">has_equal_to</span></dt>
+<dt><span class="section">has_greater</span></dt>
+<dt><span class="section">has_greater_equal</span></dt>
+<dt><span class="section">has_left_shift</span></dt>
+<dt><span class="section">has_left_shift_assign</span></dt>
+<dt><span class="section">has_less</span></dt>
+<dt><span class="section">has_less_equal</span></dt>
+<dt><span class="section">has_logical_and</span></dt>
+<dt><span class="section">has_logical_not</span></dt>
+<dt><span class="section">has_logical_or</span></dt>
+<dt><span class="section">has_minus</span></dt>
+<dt><span class="section">has_minus_assign</span></dt>
+<dt><span class="section">has_modulus</span></dt>
+<dt><span class="section">has_modulus_assign</span></dt>
+<dt><span class="section">has_multiplies</span></dt>
+<dt><span class="section">has_multiplies_assign</span></dt>
+<dt><span class="section">has_negate</span></dt>
+<dt><span class="section">has_new_operator</span></dt>
+<dt><span class="section">has_not_equal_to</span></dt>
+<dt><span class="section">has_nothrow_assign</span></dt>
+<dt><span class="section">has_nothrow_constructor</span></dt>
+<dt><span class="section">has_nothrow_copy</span></dt>
+<dt><span class="section">has_nothrow_copy_constructor</span></dt>
+<dt><span class="section">has_nothrow_default_constructor</span></dt>
+<dt><span class="section">has_plus</span></dt>
+<dt><span class="section">has_plus_assign</span></dt>
+<dt><span class="section">has_post_decrement</span></dt>
+<dt><span class="section">has_post_increment</span></dt>
+<dt><span class="section">has_pre_decrement</span></dt>
+<dt><span class="section">has_pre_increment</span></dt>
+<dt><span class="section">has_right_shift</span></dt>
+<dt><span class="section">has_right_shift_assign</span></dt>
+<dt><span class="section">has_trivial_assign</span></dt>
+<dt><span class="section">has_trivial_constructor</span></dt>
+<dt><span class="section">has_trivial_copy</span></dt>
+<dt><span class="section">has_trivial_copy_constructor</span></dt>
+<dt><span class="section">has_trivial_default_constructor</span></dt>
+<dt><span class="section">has_trivial_destructor</span></dt>
+<dt><span class="section">has_unary_minus</span></dt>
+<dt><span class="section">has_unary_plus</span></dt>
+<dt><span class="section">has_virtual_destructor</span></dt>
+<dt><span class="section">integral_constant</span></dt>
+<dt><span class="section">integral_promotion</span></dt>
+<dt><span class="section">is_abstract</span></dt>
+<dt><span class="section">is_arithmetic</span></dt>
+<dt><span class="section">is_array</span></dt>
+<dt><span class="section">is_base_of</span></dt>
+<dt><span class="section">is_class</span></dt>
+<dt><span class="section">is_complex</span></dt>
+<dt><span class="section">is_compound</span></dt>
+<dt><span class="section">is_const</span></dt>
+<dt><span class="section">is_convertible</span></dt>
+<dt><span class="section">is_empty</span></dt>
+<dt><span class="section">is_enum</span></dt>
+<dt><span class="section">is_floating_point</span></dt>
+<dt><span class="section">is_function</span></dt>
+<dt><span class="section">is_fundamental</span></dt>
+<dt><span class="section">is_integral</span></dt>
+<dt><span class="section">is_lvalue_reference</span></dt>
+<dt><span class="section">is_member_function_pointer</span></dt>
+<dt><span class="section">is_member_object_pointer</span></dt>
+<dt><span class="section">is_member_pointer</span></dt>
+<dt><span class="section">is_object</span></dt>
+<dt><span class="section">is_pod</span></dt>
+<dt><span class="section">is_pointer</span></dt>
+<dt><span class="section">is_polymorphic</span></dt>
+<dt><span class="section">is_reference</span></dt>
+<dt><span class="section">is_rvalue_reference</span></dt>
+<dt><span class="section">is_same</span></dt>
+<dt><span class="section">is_scalar</span></dt>
+<dt><span class="section">is_signed</span></dt>
+<dt><span class="section">is_stateless</span></dt>
+<dt><span class="section">is_union</span></dt>
+<dt><span class="section">is_unsigned</span></dt>
+<dt><span class="section">is_virtual_base_of</span></dt>
+<dt><span class="section">is_void</span></dt>
+<dt><span class="section">is_volatile</span></dt>
+<dt><span class="section">make_signed</span></dt>
+<dt><span class="section">make_unsigned</span></dt>
+<dt><span class="section">promote</span></dt>
+<dt><span class="section">rank</span></dt>
+<dt><span class="section">remove_all_extents</span></dt>
+<dt><span class="section">remove_const</span></dt>
+<dt><span class="section">remove_cv</span></dt>
+<dt><span class="section">remove_extent</span></dt>
+<dt><span class="section">remove_pointer</span></dt>
+<dt><span class="section">remove_reference</span></dt>
+<dt><span class="section">remove_volatile</span></dt>
+<dt><span class="section">type_with_alignment</span></dt>
 </dl></div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.add_const"></a><a class="link" href="add_const.html" title="add_const"> add_const</a>
+<a name="boost_typetraits.reference.add_const"></a><a class="link" href="add_const.html" title="add_const">add_const</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">add_const</span>
@@ -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="id3325386"></a><p class="title"><b>Table&#160;1.8.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.add_const.examples"></a><p class="title"><b>Table&#160;1.10.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="add_const.html" title="add_const">
-<link rel="next" href="add_pointer.html" title="add_pointer">
+<link rel="next" href="add_lvalue_reference.html" title="add_lvalue_reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="add_const.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="add_const.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_lvalue_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.add_cv"></a><a class="link" href="add_cv.html" title="add_cv"> add_cv</a>
+<a name="boost_typetraits.reference.add_cv"></a><a class="link" href="add_cv.html" title="add_cv">add_cv</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">add_cv</span>
@@ -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="id3325970"></a><p class="title"><b>Table&#160;1.9.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.add_cv.examples"></a><p class="title"><b>Table&#160;1.11.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -136,7 +136,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="add_const.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="add_const.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_lvalue_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_lvalue_reference.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_lvalue_reference.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,168 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>add_lvalue_reference</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="add_cv.html" title="add_cv">
+<link rel="next" href="add_pointer.html" title="add_pointer">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="add_cv.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.add_lvalue_reference"></a><a class="link" href="add_lvalue_reference.html" title="add_lvalue_reference">add_lvalue_reference</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">add_lvalue_reference</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ <span class="bold"><strong>type:</strong></span> If <code class="computeroutput"><span class="identifier">T</span></code>
+ names an object or function type then the member typedef <code class="computeroutput"><span class="identifier">type</span></code>
+ shall name <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;</span></code>;
+ otherwise, if <code class="computeroutput"><span class="identifier">T</span></code> names a type
+ <span class="emphasis"><em>rvalue reference to U</em></span> then the member typedef type shall
+ name <code class="computeroutput"><span class="identifier">U</span><span class="special">&amp;</span></code>;
+ otherwise, type shall name <code class="computeroutput"><span class="identifier">T</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>C++ Standard Reference:</strong></span> 20.7.6.2.
+ </p>
+<p>
+ <span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
+ does not support partial specialization of class-templates then this template
+ will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code>
+ will always be the same as type <code class="computeroutput"><span class="identifier">T</span></code>
+ except where <a class="link" href="../category/transform.html#boost_typetraits.category.transform.broken_compiler_workarounds_">compiler
+ workarounds</a> have been applied.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">add_lvalue_reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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="boost_typetraits.reference.add_lvalue_reference.examples"></a><p class="title"><b>Table&#160;1.12.&#160;Examples</b></p>
+<div class="table-contents"><table class="table" summary="Examples">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Result Type
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_lvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span><span class="special">&amp;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_lvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span>
+ <span class="keyword">const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_lvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span><span class="special">*&amp;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_lvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&amp;&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span><span class="special">*&amp;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_lvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&amp;&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span><span class="special">&amp;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_lvalue_reference</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="add_cv.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,18 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="add_cv.html" title="add_cv">
+<link rel="prev" href="add_lvalue_reference.html" title="add_lvalue_reference">
 <link rel="next" href="add_reference.html" title="add_reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="add_cv.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_reference.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="add_lvalue_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.add_pointer"></a><a class="link" href="add_pointer.html" title="add_pointer"> add_pointer</a>
+<a name="boost_typetraits.reference.add_pointer"></a><a class="link" href="add_pointer.html" title="add_pointer">add_pointer</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">add_pointer</span>
@@ -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="id3326622"></a><p class="title"><b>Table&#160;1.10.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.add_pointer.examples"></a><p class="title"><b>Table&#160;1.13.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -135,7 +135,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="add_cv.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_reference.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="add_lvalue_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="add_pointer.html" title="add_pointer">
-<link rel="next" href="add_volatile.html" title="add_volatile">
+<link rel="next" href="add_rvalue_reference.html" title="add_rvalue_reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="add_pointer.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_volatile.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="add_pointer.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_rvalue_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.add_reference"></a><a class="link" href="add_reference.html" title="add_reference"> add_reference</a>
+<a name="boost_typetraits.reference.add_reference"></a><a class="link" href="add_reference.html" title="add_reference">add_reference</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">add_reference</span>
@@ -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="id3327208"></a><p class="title"><b>Table&#160;1.11.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.add_reference.examples"></a><p class="title"><b>Table&#160;1.14.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -132,7 +132,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="add_pointer.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_volatile.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="add_pointer.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_rvalue_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_rvalue_reference.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/add_rvalue_reference.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,166 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>add_rvalue_reference</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="add_reference.html" title="add_reference">
+<link rel="next" href="add_volatile.html" title="add_volatile">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="add_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_volatile.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.add_rvalue_reference"></a><a class="link" href="add_rvalue_reference.html" title="add_rvalue_reference">add_rvalue_reference</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">add_rvalue_reference</span>
+<span class="special">{</span>
+ <span class="keyword">typedef</span> <em class="replaceable"><code>see-below</code></em> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ <span class="bold"><strong>type:</strong></span> If <code class="computeroutput"><span class="identifier">T</span></code>
+ names an object or function type then the member typedef type shall name
+ <code class="computeroutput"><span class="identifier">T</span><span class="special">&amp;&amp;</span></code>;
+ otherwise, type shall name <code class="computeroutput"><span class="identifier">T</span></code>.
+ <span class="emphasis"><em>[Note: This rule reflects the semantics of reference collapsing.
+ For example, when a type <code class="computeroutput"><span class="identifier">T</span></code>
+ names a type U&amp;, the type <code class="computeroutput"><span class="identifier">add_rvalue_reference</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is not an rvalue reference. -end note]</em></span>.
+ </p>
+<p>
+ <span class="bold"><strong>C++ Standard Reference:</strong></span> 20.7.6.2.
+ </p>
+<p>
+ <span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
+ does not support partial specialization of class-templates and rvalue references
+ then this template will compile, but the member <code class="computeroutput"><span class="identifier">type</span></code>
+ will always be the same as type <code class="computeroutput"><span class="identifier">T</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">add_rvalue_reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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="boost_typetraits.reference.add_rvalue_reference.examples"></a><p class="title"><b>Table&#160;1.15.&#160;Examples</b></p>
+<div class="table-contents"><table class="table" summary="Examples">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+ <p>
+ Expression
+ </p>
+ </th>
+<th>
+ <p>
+ Result Type
+ </p>
+ </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_rvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span><span class="special">&amp;&amp;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_rvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span>
+ <span class="keyword">const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_rvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span><span class="special">*&amp;&amp;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_rvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&amp;&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span><span class="special">*&amp;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_rvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&amp;&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">int</span><span class="special">&amp;&amp;</span></code>
+ </p>
+ </td>
+</tr>
+<tr>
+<td>
+ <p>
+ <code class="computeroutput"><span class="identifier">add_rvalue_reference</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ </p>
+ </td>
+<td>
+ <p>
+ <code class="computeroutput"><span class="keyword">void</span></code>
+ </p>
+ </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<br class="table-break">
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="add_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="add_volatile.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,18 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="add_reference.html" title="add_reference">
+<link rel="prev" href="add_rvalue_reference.html" title="add_rvalue_reference">
 <link rel="next" href="aligned_storage.html" title="aligned_storage">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="add_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="aligned_storage.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="add_rvalue_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="aligned_storage.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.add_volatile"></a><a class="link" href="add_volatile.html" title="add_volatile"> add_volatile</a>
+<a name="boost_typetraits.reference.add_volatile"></a><a class="link" href="add_volatile.html" title="add_volatile">add_volatile</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">add_volatile</span>
@@ -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="id3327785"></a><p class="title"><b>Table&#160;1.12.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.add_volatile.examples"></a><p class="title"><b>Table&#160;1.16.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -134,7 +134,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="add_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="aligned_storage.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="add_rvalue_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="aligned_storage.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.aligned_storage"></a><a class="link" href="aligned_storage.html" title="aligned_storage"> aligned_storage</a>
+<a name="boost_typetraits.reference.aligned_storage"></a><a class="link" href="aligned_storage.html" title="aligned_storage">aligned_storage</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Size</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">aligned_storage</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,25 +7,26 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="aligned_storage.html" title="aligned_storage">
-<link rel="next" href="can_call_addition.html" title="can_call_addition">
+<link rel="next" href="conditional.html" title="conditional">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="aligned_storage.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_addition.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="aligned_storage.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="conditional.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.alignment_of"></a><a class="link" href="alignment_of.html" title="alignment_of"> alignment_of</a>
+<a name="boost_typetraits.reference.alignment_of"></a><a class="link" href="alignment_of.html" title="alignment_of">alignment_of</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">alignment_of</span> <span class="special">:</span> <span class="keyword">public</span> <a class="link" href="integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)&gt;</span> <span class="special">{};</span>
 </pre>
 <p>
- <span class="bold"><strong>Inherits:</strong></span> Class template alignment<span class="underline">of inherits from `</span>_integral_constant&lt;std::size_t,
- ALIGNOF(T)&gt;<code class="computeroutput"><span class="special">,</span> <span class="identifier">where</span>
- </code>ALIGNOF(T)` is the alignment of type T.
+ <span class="bold"><strong>Inherits:</strong></span> Class template alignment_of inherits
+ from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)&gt;</span></code>,
+ where <code class="computeroutput"><span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span></code> is the
+ alignment of type T.
       </p>
 <p>
         <span class="emphasis"><em>Note: strictly speaking you should only rely on the value of <code class="computeroutput"><span class="identifier">ALIGNOF</span><span class="special">(</span><span class="identifier">T</span><span class="special">)</span></code> being
@@ -69,7 +70,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="aligned_storage.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_addition.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="aligned_storage.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="conditional.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_addition.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_addition.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,141 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_addition</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="alignment_of.html" title="alignment_of">
-<link rel="next" href="can_call_addition_assignment.html" title="can_call_addition_assignment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="alignment_of.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_addition_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_addition"></a><a class="link" href="can_call_addition.html" title="can_call_addition"> can_call_addition</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_addition</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">+</span><span class="identifier">rhs</span></code>, and
- (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">+</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">+</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_addition&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_addition</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_addition</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator+(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_addition</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="alignment_of.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_addition_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_addition_assignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_addition_assignment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,149 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_addition_assignment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_addition.html" title="can_call_addition">
-<link rel="next" href="can_call_and.html" title="can_call_and">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_addition.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_and.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_addition_assignment"></a><a class="link" href="can_call_addition_assignment.html" title="can_call_addition_assignment">
- can_call_addition_assignment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_addition_assignment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">+=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">+=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">+=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_addition_assignment&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_addition_assignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_addition_assignment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator+=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_addition_assignment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_addition.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_and.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_and.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_and.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_and</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_addition_assignment.html" title="can_call_addition_assignment">
-<link rel="next" href="can_call_bitwise_and.html" title="can_call_bitwise_and">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_addition_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_and.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_and"></a><a class="link" href="can_call_and.html" title="can_call_and"> can_call_and</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_and</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;&amp;</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;&amp;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;&amp;</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&amp;&amp;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_and&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_and</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;&amp;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;&amp;</span></code>
- is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code>
- then instantiating <code class="computeroutput"><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_and</span></code> cannot
- be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;&amp;</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;&amp;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&amp;&amp;(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;&amp;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_and</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_addition_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_and.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_and.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_and.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,135 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_bitwise_and</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_and.html" title="can_call_and">
-<link rel="next" href="can_call_bitwise_and_assignment.html" title="can_call_bitwise_and_assignment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_and.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_and_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_bitwise_and"></a><a class="link" href="can_call_bitwise_and.html" title="can_call_bitwise_and"> can_call_bitwise_and</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_bitwise_and</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&amp;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_bitwise_and&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_bitwise_and</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_bitwise_and</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&amp;(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_and</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_and.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_and_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_and_assignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_and_assignment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,142 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_bitwise_and_assignment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_bitwise_and.html" title="can_call_bitwise_and">
-<link rel="next" href="can_call_bitwise_or.html" title="can_call_bitwise_or">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_and.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_or.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_bitwise_and_assignment"></a><a class="link" href="can_call_bitwise_and_assignment.html" title="can_call_bitwise_and_assignment">
- can_call_bitwise_and_assignment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_bitwise_and_assignment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&amp;=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_bitwise_and_assignment&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_bitwise_and_assignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;=</span></code>
- is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code>
- then instantiating <code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_bitwise_and_assignment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&amp;=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_and_assignment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_and.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_or.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_or.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_or.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,135 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_bitwise_or</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_bitwise_and_assignment.html" title="can_call_bitwise_and_assignment">
-<link rel="next" href="can_call_bitwise_or_assignment.html" title="can_call_bitwise_or_assignment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_and_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_or_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_bitwise_or"></a><a class="link" href="can_call_bitwise_or.html" title="can_call_bitwise_or"> can_call_bitwise_or</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_bitwise_or</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">|</span><span class="identifier">rhs</span></code>, and
- (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">|</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">|</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_bitwise_or&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_bitwise_or</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_bitwise_or</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">|(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator|(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">|(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_or</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_and_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_or_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_or_assignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_or_assignment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_bitwise_or_assignment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_bitwise_or.html" title="can_call_bitwise_or">
-<link rel="next" href="can_call_bitwise_xor.html" title="can_call_bitwise_xor">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_or.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_xor.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_bitwise_or_assignment"></a><a class="link" href="can_call_bitwise_or_assignment.html" title="can_call_bitwise_or_assignment">
- can_call_bitwise_or_assignment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_bitwise_or_assignment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">|=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">|=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">|=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">|=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_bitwise_or_assignment&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_bitwise_or_assignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">|=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">|=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_bitwise_or_assignment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">|=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">|=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator|=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">|=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_or_assignment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_or.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_xor.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_xor.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_xor.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,135 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_bitwise_xor</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_bitwise_or_assignment.html" title="can_call_bitwise_or_assignment">
-<link rel="next" href="can_call_bitwise_xor_assignment.html" title="can_call_bitwise_xor_assignment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_or_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_xor_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_bitwise_xor"></a><a class="link" href="can_call_bitwise_xor.html" title="can_call_bitwise_xor"> can_call_bitwise_xor</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_bitwise_xor</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">^</span><span class="identifier">rhs</span></code>, and
- (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">^</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">^</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">^</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_bitwise_xor&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_bitwise_xor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">^</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">^</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_bitwise_xor</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">^</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">^(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator^(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">^(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_xor</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_or_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_bitwise_xor_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_xor_assignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_bitwise_xor_assignment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_bitwise_xor_assignment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_bitwise_xor.html" title="can_call_bitwise_xor">
-<link rel="next" href="can_call_complement.html" title="can_call_complement">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_xor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_complement.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_bitwise_xor_assignment"></a><a class="link" href="can_call_bitwise_xor_assignment.html" title="can_call_bitwise_xor_assignment">
- can_call_bitwise_xor_assignment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_bitwise_xor_assignment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">^=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">^=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">^=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">^=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_bitwise_xor_assignment&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_bitwise_xor_assignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">^=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">^=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_bitwise_xor_assignment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">^=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">^=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator^=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">^=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_bitwise_xor_assignment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_xor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_complement.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_complement.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_complement.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,144 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_complement</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_bitwise_xor_assignment.html" title="can_call_bitwise_xor_assignment">
-<link rel="next" href="can_call_dereference.html" title="can_call_dereference">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_xor_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_dereference.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_complement"></a><a class="link" href="can_call_complement.html" title="can_call_complement"> can_call_complement</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_complement</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
- of type <code class="computeroutput"><span class="identifier">RHS</span></code> can be used in
- expression <code class="computeroutput"><span class="special">~</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="special">~</span><span class="identifier">rhs</span></code>
- is convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then
- inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">~</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(~</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_complement&lt;RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_complement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">~</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">~</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_complement</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">~</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">~();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator~() is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">~(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_complement</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_bitwise_xor_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_dereference.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_dereference.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_dereference.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,153 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_dereference</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_complement.html" title="can_call_complement">
-<link rel="next" href="can_call_division.html" title="can_call_division">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_complement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_division.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_dereference"></a><a class="link" href="can_call_dereference.html" title="can_call_dereference"> can_call_dereference</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_dereference</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
- of type <code class="computeroutput"><span class="identifier">RHS</span></code> can be used in
- expression <code class="computeroutput"><span class="special">*</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="special">*</span><span class="identifier">rhs</span></code>
- is convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then
- inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(*</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_dereference&lt;RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_dereference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">*&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">const</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="keyword">const</span> <span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="special">*</span> <span class="keyword">const</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">const</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&amp;&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_dereference</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator*() is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_dereference</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_complement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_division.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_division.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_division.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,141 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_division</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_dereference.html" title="can_call_dereference">
-<link rel="next" href="can_call_division_assignment.html" title="can_call_division_assignment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_dereference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_division_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_division"></a><a class="link" href="can_call_division.html" title="can_call_division"> can_call_division</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_division</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">/</span><span class="identifier">rhs</span></code>, and
- (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">/</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">/</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_division&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_division</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_division</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator/(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_division</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_dereference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_division_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_division_assignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_division_assignment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,149 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_division_assignment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_division.html" title="can_call_division">
-<link rel="next" href="can_call_equal.html" title="can_call_equal">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_division.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_equal.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_division_assignment"></a><a class="link" href="can_call_division_assignment.html" title="can_call_division_assignment">
- can_call_division_assignment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_division_assignment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">/=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">/=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">/=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">/=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_division_assignment&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_division_assignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">/=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">/=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_division_assignment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">/=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator/=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_division_assignment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_division.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_equal.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_equal.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_equal</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_division_assignment.html" title="can_call_division_assignment">
-<link rel="next" href="can_call_greater.html" title="can_call_greater">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_division_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_greater.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_equal"></a><a class="link" href="can_call_equal.html" title="can_call_equal"> can_call_equal</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_equal</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">==</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">==</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">==</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_equal&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_equal</span></code> cannot
- be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator==(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_equal</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_division_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_greater.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_greater.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_greater.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_greater</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_equal.html" title="can_call_equal">
-<link rel="next" href="can_call_greater_equal.html" title="can_call_greater_equal">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_greater_equal.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_greater"></a><a class="link" href="can_call_greater.html" title="can_call_greater"> can_call_greater</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_greater</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&gt;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_greater&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_greater</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_greater</span></code> cannot
- be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&gt;(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_greater</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_greater_equal.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_greater_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_greater_equal.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,147 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_greater_equal</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_greater.html" title="can_call_greater">
-<link rel="next" href="can_call_left_shift.html" title="can_call_left_shift">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_greater.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_left_shift.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_greater_equal"></a><a class="link" href="can_call_greater_equal.html" title="can_call_greater_equal"> can_call_greater_equal</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_greater_equal</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&gt;=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_greater_equal&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_greater_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_greater_equal</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&gt;=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_greater_equal</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_greater.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_left_shift.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_left_shift.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_left_shift.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,149 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_left_shift</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_greater_equal.html" title="can_call_greater_equal">
-<link rel="next" href="can_call_left_shift_assignment.html" title="can_call_left_shift_assignment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_greater_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_left_shift_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_left_shift"></a><a class="link" href="can_call_left_shift.html" title="can_call_left_shift"> can_call_left_shift</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_left_shift</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;&lt;</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;&lt;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&lt;&lt;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_left_shift&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_left_shift</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>
- is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code>
- then instantiating <code class="computeroutput"><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_left_shift</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&lt;&lt;(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_left_shift</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_greater_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_left_shift_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_left_shift_assignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_left_shift_assignment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,142 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_left_shift_assignment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_left_shift.html" title="can_call_left_shift">
-<link rel="next" href="can_call_less.html" title="can_call_less">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_left_shift.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_less.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_left_shift_assignment"></a><a class="link" href="can_call_left_shift_assignment.html" title="can_call_left_shift_assignment">
- can_call_left_shift_assignment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_left_shift_assignment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;&lt;=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;&lt;=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&lt;&lt;=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_left_shift_assignment&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_left_shift_assignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;=</span></code>
- is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code>
- then instantiating <code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_left_shift_assignment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;&lt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&lt;&lt;=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;&lt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_left_shift_assignment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_left_shift.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_less.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_less.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_less.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_less</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_left_shift_assignment.html" title="can_call_left_shift_assignment">
-<link rel="next" href="can_call_less_equal.html" title="can_call_less_equal">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_left_shift_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_less_equal.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_less"></a><a class="link" href="can_call_less.html" title="can_call_less"> can_call_less</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_less</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&lt;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_less&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_less</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_less</span></code> cannot
- be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&lt;(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_less</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_left_shift_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_less_equal.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_less_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_less_equal.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_less_equal</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_less.html" title="can_call_less">
-<link rel="next" href="can_call_modulus.html" title="can_call_modulus">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_less.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_modulus.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_less_equal"></a><a class="link" href="can_call_less_equal.html" title="can_call_less_equal"> can_call_less_equal</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_less_equal</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&lt;=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_less_equal&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_less_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_less_equal</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&lt;=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_less_equal</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_less.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_modulus.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_modulus.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_modulus.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,134 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_modulus</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_less_equal.html" title="can_call_less_equal">
-<link rel="next" href="can_call_modulus_assignment.html" title="can_call_modulus_assignment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_less_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_modulus_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_modulus"></a><a class="link" href="can_call_modulus.html" title="can_call_modulus"> can_call_modulus</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_modulus</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">%</span><span class="identifier">rhs</span></code>, and
- (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">%</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">%</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">%</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_modulus&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_modulus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">%</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">%</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_modulus</span></code> cannot
- be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">%</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator%(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_modulus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_less_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_modulus_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_modulus_assignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_modulus_assignment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_modulus_assignment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_modulus.html" title="can_call_modulus">
-<link rel="next" href="can_call_multiplication.html" title="can_call_multiplication">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_modulus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_multiplication.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_modulus_assignment"></a><a class="link" href="can_call_modulus_assignment.html" title="can_call_modulus_assignment">
- can_call_modulus_assignment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_modulus_assignment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">%=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">%=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">%=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_modulus_assignment&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_modulus_assignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_modulus_assignment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator%=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_modulus_assignment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_modulus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_multiplication.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_multiplication.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_multiplication.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,149 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_multiplication</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_modulus_assignment.html" title="can_call_modulus_assignment">
-<link rel="next" href="can_call_multiplication_assignment.html" title="can_call_multiplication_assignment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_modulus_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_multiplication_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_multiplication"></a><a class="link" href="can_call_multiplication.html" title="can_call_multiplication">
- can_call_multiplication</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_multiplication</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">*</span><span class="identifier">rhs</span></code>, and
- (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">*</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">*</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_multiplication&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_multiplication</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_multiplication</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator*(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_multiplication</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_modulus_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_multiplication_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_multiplication_assignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_multiplication_assignment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,149 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_multiplication_assignment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_multiplication.html" title="can_call_multiplication">
-<link rel="next" href="can_call_not.html" title="can_call_not">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_multiplication.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_not.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_multiplication_assignment"></a><a class="link" href="can_call_multiplication_assignment.html" title="can_call_multiplication_assignment">
- can_call_multiplication_assignment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_multiplication_assignment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">*=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">*=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">*=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">*=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_multiplication_assignment&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_multiplication_assignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">*=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">*=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_multiplication_assignment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">*=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator*=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_multiplication_assignment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_multiplication.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_not.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_not.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_not.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_not</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_multiplication_assignment.html" title="can_call_multiplication_assignment">
-<link rel="next" href="can_call_not_equal.html" title="can_call_not_equal">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_multiplication_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_not_equal.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_not"></a><a class="link" href="can_call_not.html" title="can_call_not"> can_call_not</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_not</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
- of type <code class="computeroutput"><span class="identifier">RHS</span></code> can be used in
- expression <code class="computeroutput"><span class="special">!</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="special">!</span><span class="identifier">rhs</span></code>
- is convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then
- inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">!</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(!</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_not&lt;RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_not</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">bool</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">!</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">!</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_not</span></code> cannot
- be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">!</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">!();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator!() is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">!(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_not</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_multiplication_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_not_equal.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_not_equal.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_not_equal.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_not_equal</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_not.html" title="can_call_not">
-<link rel="next" href="can_call_or.html" title="can_call_or">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_not.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_or.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_not_equal"></a><a class="link" href="can_call_not_equal.html" title="can_call_not_equal"> can_call_not_equal</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_not_equal</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">!=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">!=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">!=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_not_equal&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_not_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_not_equal</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator!=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_not_equal</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_not.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_or.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_or.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_or.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,138 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_or</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_not_equal.html" title="can_call_not_equal">
-<link rel="next" href="can_call_post_decrement.html" title="can_call_post_decrement">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_not_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_post_decrement.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_or"></a><a class="link" href="can_call_or.html" title="can_call_or"> can_call_or</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_or</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">||</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">||</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">||</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">||</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_or&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_or</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">||</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">||</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_or</span></code> cannot
- be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">||</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">||(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator||(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">||(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_or</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_not_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_post_decrement.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_post_decrement.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_post_decrement.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,151 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_post_decrement</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_or.html" title="can_call_or">
-<link rel="next" href="can_call_post_increment.html" title="can_call_post_increment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_or.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_post_increment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_post_decrement"></a><a class="link" href="can_call_post_decrement.html" title="can_call_post_decrement">
- can_call_post_decrement</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_post_decrement</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> can be used in
- expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">--</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">--</span></code>
- is convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then
- inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">--);</span> <span class="comment">// is valid if can_call_post_decrement&lt;LHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_post_decrement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_post_decrement</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator--(int) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">int</span><span class="special">);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_post_decrement</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_or.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_post_increment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_post_increment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_post_increment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,151 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_post_increment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_post_decrement.html" title="can_call_post_decrement">
-<link rel="next" href="can_call_pre_decrement.html" title="can_call_pre_decrement">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_post_decrement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_pre_decrement.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_post_increment"></a><a class="link" href="can_call_post_increment.html" title="can_call_post_increment">
- can_call_post_increment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_post_increment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> can be used in
- expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">++</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">++</span></code>
- is convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then
- inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">++);</span> <span class="comment">// is valid if can_call_post_increment&lt;LHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_post_increment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_post_increment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator++(int) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">int</span><span class="special">);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_post_increment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_post_decrement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_pre_decrement.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_pre_decrement.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_pre_decrement.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,150 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_pre_decrement</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_post_increment.html" title="can_call_post_increment">
-<link rel="next" href="can_call_pre_increment.html" title="can_call_pre_increment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_post_increment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_pre_increment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_pre_decrement"></a><a class="link" href="can_call_pre_decrement.html" title="can_call_pre_decrement"> can_call_pre_decrement</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_pre_decrement</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
- of type <code class="computeroutput"><span class="identifier">RHS</span></code> can be used in
- expression <code class="computeroutput"><span class="special">--</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="special">--</span><span class="identifier">rhs</span></code>
- is convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then
- inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(--</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_pre_decrement&lt;RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_pre_decrement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_pre_decrement</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">--();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator--() is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_pre_decrement</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_post_increment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_pre_increment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_pre_increment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_pre_increment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,150 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_pre_increment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_pre_decrement.html" title="can_call_pre_decrement">
-<link rel="next" href="can_call_right_shift.html" title="can_call_right_shift">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_pre_decrement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_right_shift.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_pre_increment"></a><a class="link" href="can_call_pre_increment.html" title="can_call_pre_increment"> can_call_pre_increment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_pre_increment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
- of type <code class="computeroutput"><span class="identifier">RHS</span></code> can be used in
- expression <code class="computeroutput"><span class="special">++</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="special">++</span><span class="identifier">rhs</span></code>
- is convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then
- inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(++</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_pre_increment&lt;RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_pre_increment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_pre_increment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">++();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator++() is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_pre_increment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_pre_decrement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_right_shift.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_right_shift.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_right_shift.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,149 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_right_shift</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_pre_increment.html" title="can_call_pre_increment">
-<link rel="next" href="can_call_right_shift_assignment.html" title="can_call_right_shift_assignment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_pre_increment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_right_shift_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_right_shift"></a><a class="link" href="can_call_right_shift.html" title="can_call_right_shift"> can_call_right_shift</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_right_shift</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;&gt;</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;&gt;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&gt;&gt;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_right_shift&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_right_shift</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&amp;&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code>
- is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code>
- then instantiating <code class="computeroutput"><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_right_shift</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&gt;&gt;(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_right_shift</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_pre_increment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_right_shift_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_right_shift_assignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_right_shift_assignment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,142 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_right_shift_assignment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_right_shift.html" title="can_call_right_shift">
-<link rel="next" href="can_call_subtraction.html" title="can_call_subtraction">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_right_shift.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_subtraction.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_right_shift_assignment"></a><a class="link" href="can_call_right_shift_assignment.html" title="can_call_right_shift_assignment">
- can_call_right_shift_assignment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_right_shift_assignment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;&gt;=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;&gt;=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&gt;&gt;=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_right_shift_assignment&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_right_shift_assignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;=</span></code>
- is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code>
- then instantiating <code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_right_shift_assignment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;&gt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&gt;&gt;=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;&gt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_right_shift_assignment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_right_shift.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_subtraction.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_subtraction.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_subtraction.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,141 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_subtraction</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_right_shift_assignment.html" title="can_call_right_shift_assignment">
-<link rel="next" href="can_call_subtraction_assignment.html" title="can_call_subtraction_assignment">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_right_shift_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_subtraction_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_subtraction"></a><a class="link" href="can_call_subtraction.html" title="can_call_subtraction"> can_call_subtraction</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_subtraction</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">-</span><span class="identifier">rhs</span></code>, and
- (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">-</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">-</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_subtraction&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_subtraction</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_subtraction</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator-(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_subtraction</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_right_shift_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_subtraction_assignment.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_subtraction_assignment.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_subtraction_assignment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,149 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_subtraction_assignment</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_subtraction.html" title="can_call_subtraction">
-<link rel="next" href="can_call_unary_minus.html" title="can_call_unary_minus">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_subtraction.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_unary_minus.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_subtraction_assignment"></a><a class="link" href="can_call_subtraction_assignment.html" title="can_call_subtraction_assignment">
- can_call_subtraction_assignment</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">=</span><span class="identifier">LHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_subtraction_assignment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
- of type <code class="computeroutput"><span class="identifier">LHS</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">RHS</span></code>
- can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">-=</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="identifier">lhs</span><span class="special">-=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">RET</span></code>
- then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">LHS</span> <span class="identifier">lhs</span><span class="special">;</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">-=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_subtraction_assignment&lt;LHS, RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_subtraction_assignment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
- is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">,</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
- expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">LHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="identifier">LHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_subtraction_assignment</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator-=(const A&amp;) is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_subtraction_assignment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_subtraction.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_unary_minus.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_unary_minus.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_unary_minus.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_unary_minus</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_subtraction_assignment.html" title="can_call_subtraction_assignment">
-<link rel="next" href="can_call_unary_plus.html" title="can_call_unary_plus">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_subtraction_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_unary_plus.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_unary_minus"></a><a class="link" href="can_call_unary_minus.html" title="can_call_unary_minus"> can_call_unary_minus</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_unary_minus</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
- of type <code class="computeroutput"><span class="identifier">RHS</span></code> can be used in
- expression <code class="computeroutput"><span class="special">-</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="special">-</span><span class="identifier">rhs</span></code>
- is convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then
- inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(-</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_unary_minus&lt;RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_unary_minus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_unary_minus</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator-() is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_minus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_subtraction_assignment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="can_call_unary_plus.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Deleted: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_unary_plus.html
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/can_call_unary_plus.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
-<title>can_call_unary_plus</title>
-<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
-<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
-<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
-<link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_unary_minus.html" title="can_call_unary_minus">
-<link rel="next" href="decay.html" title="decay">
-</head>
-<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
-<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_unary_minus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="decay.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-<div class="section">
-<div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.can_call_unary_plus"></a><a class="link" href="can_call_unary_plus.html" title="can_call_unary_plus"> can_call_unary_plus</a>
-</h3></div></div></div>
-<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RHS</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
-<span class="keyword">struct</span> <span class="identifier">can_call_unary_plus</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
-</pre>
-<p>
- <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
- of type <code class="computeroutput"><span class="identifier">RHS</span></code> can be used in
- expression <code class="computeroutput"><span class="special">+</span><span class="identifier">rhs</span></code>,
- and (ii) <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
- <code class="computeroutput"><span class="special">+</span><span class="identifier">rhs</span></code>
- is convertible to <code class="computeroutput"><span class="identifier">RET</span></code> then
- inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
- otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
- </p>
-<p>
- The default behaviour (<code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
- is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code>. If <code class="computeroutput"><span class="identifier">RET</span></code>
- is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
- type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">RET</span></code>.
- Convertible to <code class="computeroutput"><span class="identifier">RET</span></code> means
- that the return value of the operator can be used as argument to a function
- expecting <code class="computeroutput"><span class="identifier">RET</span></code>:
-</p>
-<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">RET</span><span class="special">);</span>
-<span class="identifier">RHS</span> <span class="identifier">rhs</span><span class="special">;</span>
-<span class="identifier">f</span><span class="special">(+</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if can_call_unary_plus&lt;RHS, RET&gt;::value==true
-</span></pre>
-<p>
- If <code class="computeroutput"><span class="identifier">RET</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
- <code class="computeroutput"><span class="keyword">void</span></code>.
- </p>
-<p>
- <span class="bold"><strong>Header:</strong></span> <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">can_call_unary_plus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- 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">can_call</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
- </p>
-<p>
- <span class="bold"><strong>Examples:</strong></span>
- </p>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">,</span> <span class="identifier">RET</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
- integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
- inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
- </p></blockquote></div>
-<div class="blockquote"><blockquote class="blockquote"><p>
- <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
- </p></blockquote></div>
-<p>
- <span class="bold"><strong>Known issues:</strong></span>
- </p>
-<p>
- This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">RHS</span></code> then instantiating <code class="computeroutput"><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="identifier">RHS</span><span class="special">&gt;</span></code> will produce a compiler error. For this
- reason <code class="computeroutput"><span class="identifier">can_call_unary_plus</span></code>
- cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> or not.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator+() is private
-</span></pre>
-<p>
- </p>
-<p>
- There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code>
- and <code class="computeroutput"><span class="identifier">B</span></code> is convertible to
- <code class="computeroutput"><span class="identifier">A</span></code>. In this case, the compiler
- will report an ambiguous overload.
-</p>
-<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
-<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
-<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
-<span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine
-</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">can_call_unary_plus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload
-</span></pre>
-<p>
- </p>
-</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, 2011 Adobe Systems Inc, David Abrahams,
- Frederic 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>
- 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>
-</div></td>
-</tr></table>
-<hr>
-<div class="spirit-nav">
-<a accesskey="p" href="can_call_unary_minus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="decay.html"><img src="../../images/next.png" alt="Next"></a>
-</div>
-</body>
-</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/common_type.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,346 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>common_type</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="conditional.html" title="conditional">
+<link rel="next" href="decay.html" title="decay">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="conditional.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="decay.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.common_type"></a><a class="link" href="common_type.html" title="common_type">common_type</a>
+</h3></div></div></div>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">common_type</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="special">...</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="common_type.html" title="common_type">common_type</a><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ <a class="link" href="common_type.html" title="common_type">common_type</a>
+ is a traits class used to deduce a type common to a several types, useful
+ as the return type of functions operating on multiple input types such as
+ in mixed-mode arithmetic..
+ </p>
+<p>
+ The nested typedef <code class="computeroutput"><span class="special">::</span><span class="identifier">type</span></code>
+ could be defined as follows:
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="special">...</span><span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">common_type</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">,</span> <span class="keyword">class</span> <span class="special">...</span><span class="identifier">V</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">U</span><span class="special">,...</span><span class="identifier">V</span><span class="special">&gt;</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="keyword">typename</span> <a class="link" href="common_type.html" title="common_type">common_type</a><span class="special">&lt;</span><span class="keyword">typename</span> <a class="link" href="common_type.html" title="common_type">common_type</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">U</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">V</span><span class="special">...&gt;::</span><span class="identifier">type</span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">U</span><span class="special">&gt;</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">decltype</span><span class="special">(</span>declval<span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;()</span> <span class="special">?</span> declval<span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;()</span> <span class="special">:</span> declval<span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;())</span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<p>
+ All parameter types must be complete. This trait is permitted to be specialized
+ by a user if at least one template parameter is a user-defined type. <span class="bold"><strong>Note:</strong></span> Such specializations are required when only
+ explicit conversions are desired among the <a class="link" href="common_type.html" title="common_type">common_type</a>
+ arguments.
+ </p>
+<p>
+ Note that when the compiler does not support variadic templates (and the
+ macro BOOST_NO_VARIADIC_TEMPLATES is defined) then the maximum number of
+ template arguments is 3.
+ </p>
+<a name="boost_typetraits.reference.common_type.configuration_macros"></a><h5>
+<a name="boost_typetraits.reference.common_type.configuration_macros-heading"></a>
+ <a class="link" href="common_type.html#boost_typetraits.reference.common_type.configuration_macros">Configuration
+ macros</a>
+ </h5>
+<p>
+ When the compiler does not support static assertions then the user can select
+ the way static assertions are reported. Define
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ BOOST_COMMON_TYPE_USES_STATIC_ASSERT: define it if you want to use Boost.StaticAssert
+ </li>
+<li class="listitem">
+ BOOST_COMMON_TYPE_USES_MPL_ASSERT: define it if you want to use Boost.MPL
+ static asertions
+ </li>
+</ul></div>
+<p>
+ The default behavior is to use mpl assertions in this case, but setting BOOST_COMMON_TYPE_USES_STATIC_ASSERT
+ may reduce compile times and header dependencies somewhat.
+ </p>
+<p>
+ Depending on the static assertion used you will have an hint of the failing
+ assertion either through the symbol or through the text.
+ </p>
+<p>
+ When possible common_type is implemented using <code class="computeroutput"><span class="identifier">decltype</span></code>.
+ Otherwise when BOOST_COMMON_TYPE_DONT_USE_TYPEOF is not defined it uses Boost.TypeOf.
+ </p>
+<a name="boost_typetraits.reference.common_type.tutorial"></a><h5>
+<a name="boost_typetraits.reference.common_type.tutorial-heading"></a>
+ <a class="link" href="common_type.html#boost_typetraits.reference.common_type.tutorial">Tutorial</a>
+ </h5>
+<p>
+ In a nutshell, <a class="link" href="common_type.html" title="common_type">common_type</a>
+ is a trait that takes 1 or more types, and returns a type which all of the
+ types will convert to. The default definition demands this conversion be
+ implicit. However the trait can be specialized for user-defined types which
+ want to limit their inter-type conversions to explicit, and yet still want
+ to interoperate with the <a class="link" href="common_type.html" title="common_type">common_type</a>
+ facility.
+ </p>
+<p>
+ <span class="bold"><strong>Example:</strong></span>
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+<span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">typename</span> <a class="link" href="common_type.html" title="common_type">common_type</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">U</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;</span>
+<span class="keyword">operator</span><span class="special">+(</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;,</span> <span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;);</span>
+</pre>
+<p>
+ In the above example, "mixed-mode" complex arithmetic is allowed.
+ The return type is described by <a class="link" href="common_type.html" title="common_type">common_type</a>.
+ For example the resulting type of adding a <code class="computeroutput"><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">&gt;</span></code> and <code class="computeroutput"><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span></code> might be a <code class="computeroutput"><span class="identifier">complex</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span></code>.
+ </p>
+<p>
+ Here is how someone might produce a variadic comparison function:
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="special">...</span><span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <a class="link" href="common_type.html" title="common_type">common_type</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">...&gt;::</span><span class="identifier">type</span>
+<span class="identifier">min</span><span class="special">(</span><span class="identifier">T</span><span class="special">...</span> <span class="identifier">t</span><span class="special">);</span>
+</pre>
+<p>
+ This is a very useful and broadly applicable utility.
+ </p>
+<a name="boost_typetraits.reference.common_type.how_to_get_the_common_type_of_types_with_explicit_conversions_"></a><h5>
+<a name="boost_typetraits.reference.common_type.how_to_get_the_common_type_of_types_with_explicit_conversions_-heading"></a>
+ <a class="link" href="common_type.html#boost_typetraits.reference.common_type.how_to_get_the_common_type_of_types_with_explicit_conversions_">How
+ to get the common type of types with explicit conversions?</a>
+ </h5>
+<p>
+ Another choice for the author of the preceding operator could be
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+<span class="keyword">typename</span> <a class="link" href="common_type.html" title="common_type">common_type</a><span class="special">&lt;</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;,</span> <span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">type</span>
+<span class="keyword">operator</span><span class="special">+(</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;,</span> <span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;);</span>
+</pre>
+<p>
+ As the default definition of <a class="link" href="common_type.html" title="common_type">common_type</a>
+ demands the conversion be implicit, we need to specialize the trait for complex
+ types as follows.
+ </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <a class="link" href="common_type.html" title="common_type">common_type</a><span class="special">&lt;</span><span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;,</span> <span class="identifier">complex</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">complex</span><span class="special">&lt;</span> <a class="link" href="common_type.html" title="common_type">common_type</a><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">U</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="identifier">type</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+<a name="boost_typetraits.reference.common_type.how_important_is_the_order_of_the_common_type_lt__gt__template_arguments_"></a><h5>
+<a name="boost_typetraits.reference.common_type.how_important_is_the_order_of_the_common_type_lt__gt__template_arguments_-heading"></a>
+ <a class="link" href="common_type.html#boost_typetraits.reference.common_type.how_important_is_the_order_of_the_common_type_lt__gt__template_arguments_">How
+ important is the order of the common_type&lt;&gt; template arguments?</a>
+ </h5>
+<p>
+ The order of the template parameters is important.
+ </p>
+<p>
+ <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is not equivalent to <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">,</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">type</span></code>, but to <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">
&gt;::</span><span class="identifier">type</span><span class="special">,</span> <span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code>.
+ </p>
+<p>
+ Consider
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{};</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{};</span>
+<span class="keyword">struct</span> <span class="identifier">C</span> <span class="special">{</span>
+ <span class="identifier">C</span><span class="special">()</span> <span class="special">{}</span>
+ <span class="identifier">C</span><span class="special">(</span><span class="identifier">A</span> <span class="keyword">const</span><span class="special">&amp;)</span> <span class="special">{}</span>
+ <span class="identifier">C</span><span class="special">(</span><span class="identifier">B</span> <span class="keyword">const</span><span class="special">&amp;)</span> <span class="special">{}</span>
+ <span class="identifier">C</span><span class="special">&amp;</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">C</span> <span class="keyword">const</span><span class="special">&amp;)</span> <span class="special">{</span>
+ <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ The following doesn't compile
+ </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span> <span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">ABC</span><span class="special">;</span> <span class="comment">// Does not compile</span>
+</pre>
+<p>
+ while
+ </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">,</span> <span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">ABC</span><span class="special">;</span>
+</pre>
+<p>
+ compiles.
+ </p>
+<p>
+ Thus, as <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ is undefined, <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
+ is also undefined.
+ </p>
+<p>
+ It is intended that clients who wish for <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">B</span><span class="special">&gt;</span></code>
+ to be well defined to define it themselves:
+ </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
+<span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</span> <span class="special">{</span><span class="keyword">typedef</span> <span class="identifier">C</span> <span class="identifier">type</span><span class="special">;};</span>
+
+<span class="special">}</span>
+</pre>
+<p>
+ Now this client can ask for <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">B</span><span class="special">,</span> <span class="identifier">C</span><span class="special">&gt;</span></code> (and
+ get the same answer).
+ </p>
+<p>
+ Clients wanting to ask <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">B</span><span class="special">,</span> <span class="identifier">C</span><span class="special">&gt;</span></code> in
+ any order and get the same result need to add in addition:
+ </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
+<span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;</span>
+<span class="special">:</span> <span class="keyword">public</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</span> <span class="special">{};</span>
+
+<span class="special">}</span>
+</pre>
+<p>
+ This is needed as the specialization of <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">B</span><span class="special">&gt;</span></code>
+ is not be used implicitly for <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span>
+ <span class="identifier">A</span><span class="special">&gt;</span></code>.
+ </p>
+<a name="boost_typetraits.reference.common_type.can_the_common_type_of_two_types_be_a_third_type_"></a><h5>
+<a name="boost_typetraits.reference.common_type.can_the_common_type_of_two_types_be_a_third_type_-heading"></a>
+ <a class="link" href="common_type.html#boost_typetraits.reference.common_type.can_the_common_type_of_two_types_be_a_third_type_">Can
+ the common_type of two types be a third type?</a>
+ </h5>
+<p>
+ Given the preceding example, one might expect <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">type</span></code> to be <code class="computeroutput"><span class="identifier">C</span></code>
+ without any intervention from the user. But the default <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;&gt;</span></code> implementation doesn't grant that.
+ It is intended that clients who wish for <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">B</span><span class="special">&gt;</span></code>
+ to be well defined to define it themselves:
+ </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
+<span class="special">{</span>
+
+<span class="keyword">template</span> <span class="special">&lt;&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</span> <span class="special">{</span><span class="keyword">typedef</span> <span class="identifier">C</span> <span class="identifier">type</span><span class="special">;};</span>
+
+<span class="keyword">template</span> <span class="special">&lt;&gt;</span> <span class="keyword">struct</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span> <span class="identifier">A</span><span class="special">&gt;</span>
+<span class="special">:</span> <span class="keyword">public</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;</span> <span class="special">{};</span>
+
+<span class="special">}</span>
+</pre>
+<p>
+ Now this client can ask for <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span>
+ <span class="identifier">B</span><span class="special">&gt;</span></code>.
+ </p>
+<a name="boost_typetraits.reference.common_type.how_common_type_behaves_with_pointers_"></a><h5>
+<a name="boost_typetraits.reference.common_type.how_common_type_behaves_with_pointers_-heading"></a>
+ <a class="link" href="common_type.html#boost_typetraits.reference.common_type.how_common_type_behaves_with_pointers_">How
+ common_type behaves with pointers?</a>
+ </h5>
+<p>
+ Consider
+ </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">C</span> <span class="special">{</span> <span class="special">}:</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">:</span> <span class="identifier">C</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">:</span> <span class="identifier">C</span> <span class="special">{</span> <span class="special">};</span>
+</pre>
+<p>
+ Shouldn't <code class="computeroutput"><span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">*,</span><span class="identifier">B</span><span class="special">*&gt;::</span><span class="identifier">type</span></code>
+ be <code class="computeroutput"><span class="identifier">C</span><span class="special">*</span></code>?
+ I would say yes, but the default implementation will make it ill-formed.
+ </p>
+<p>
+ The library could add a specialization for pointers, as
+ </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span>
+<span class="special">{</span>
+
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">A</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">B</span><span class="special">&gt;</span>
+ <span class="keyword">struct</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">*,</span> <span class="identifier">B</span><span class="special">*&gt;</span> <span class="special">{</span>
+ <span class="keyword">typedef</span> <span class="identifier">common_type</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">&gt;*</span> <span class="identifier">type</span><span class="special">;</span>
+ <span class="special">};</span>
+<span class="special">}</span>
+</pre>
+<p>
+ But in the absence of a motivating use cases, we prefer not to add more than
+ the standard specifies.
+ </p>
+<p>
+ Of course the user can always make this specialization.
+ </p>
+<a name="boost_typetraits.reference.common_type.can_you_explain_the_pros_cons_of_common_type_against_boost_typeof_"></a><h5>
+<a name="boost_typetraits.reference.common_type.can_you_explain_the_pros_cons_of_common_type_against_boost_typeof_-heading"></a>
+ <a class="link" href="common_type.html#boost_typetraits.reference.common_type.can_you_explain_the_pros_cons_of_common_type_against_boost_typeof_">Can
+ you explain the pros/cons of common_type against Boost.Typeof?</a>
+ </h5>
+<p>
+ Even if they appear to be close, <code class="computeroutput"><a class="link" href="common_type.html" title="common_type">common_type</a></code>
+ and <code class="computeroutput"><span class="identifier">typeof</span></code> have different
+ purposes. You use <code class="computeroutput"><span class="identifier">typeof</span></code>
+ to get the type of an expression, while you use <a class="link" href="common_type.html" title="common_type">common_type</a>
+ to set explicitly the type returned of a template function. Both are complementary,
+ and indeed <a class="link" href="common_type.html" title="common_type">common_type</a>
+ is equivalent to <code class="computeroutput"><span class="identifier">decltype</span><span class="special">(</span>declval<span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;()</span>
+ <span class="special">?</span> declval<span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;()</span>
+ <span class="special">:</span> declval<span class="special">&lt;</span><span class="identifier">U</span><span class="special">&gt;())</span></code>
+ </p>
+<p>
+ <a class="link" href="common_type.html" title="common_type">common_type</a>
+ is also similar to promote_args&lt;class ...T&gt; in boost/math/tools/promotion.hpp,
+ though it is not exactly the same as promote_args either. <a class="link" href="common_type.html" title="common_type">common_type</a>&lt;T1,
+ T2&gt;::type simply represents the result of some operation on T1 and T2,
+ and defaults to the type obtained by putting T1 and T2 into a conditional
+ statement.
+ </p>
+<p>
+ It is meant to be customizable (via specialization) if this default is not
+ appropriate.
+ </p>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="conditional.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="decay.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/conditional.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/conditional.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,56 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>conditional</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="alignment_of.html" title="alignment_of">
+<link rel="next" href="common_type.html" title="common_type">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="alignment_of.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="common_type.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.conditional"></a><a class="link" href="conditional.html" title="conditional">conditional</a>
+</h3></div></div></div>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">conditional</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+ <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">bool</span> <span class="identifier">B</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span> <span class="keyword">struct</span> <a class="link" href="conditional.html" title="conditional">conditional</a><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ If B is true, the member typedef type shall equal T. If B is false, the member
+ typedef type shall equal F.
+ </p>
+<p>
+ This trait is really just an alias for <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_c</span></code>.
+ </p>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="alignment_of.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="common_type.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,18 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="can_call_unary_plus.html" title="can_call_unary_plus">
+<link rel="prev" href="common_type.html" title="common_type">
 <link rel="next" href="extent.html" title="extent">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="can_call_unary_plus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="extent.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="common_type.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="extent.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.decay"></a><a class="link" href="decay.html" title="decay"> decay</a>
+<a name="boost_typetraits.reference.decay"></a><a class="link" href="decay.html" title="decay">decay</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">decay</span>
@@ -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="id3390147"></a><p class="title"><b>Table&#160;1.13.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.decay.examples"></a><p class="title"><b>Table&#160;1.17.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -139,7 +139,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="can_call_unary_plus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="extent.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="common_type.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="extent.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.extent"></a><a class="link" href="extent.html" title="extent"> extent</a>
+<a name="boost_typetraits.reference.extent"></a><a class="link" href="extent.html" title="extent">extent</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">N</span> <span class="special">=</span> <span class="number">0</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">extent</span> <span class="special">:</span> <span class="keyword">public</span> <a class="link" href="integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">EXTENT</span><span class="special">(</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">N</span><span class="special">)&gt;</span> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,8 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.floating_point_promotion"></a><a class="link" href="floating_point_promotion.html" title="floating_point_promotion">
- floating_point_promotion</a>
+<a name="boost_typetraits.reference.floating_point_promotion"></a><a class="link" href="floating_point_promotion.html" title="floating_point_promotion">floating_point_promotion</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">floating_point_promotion</span>
@@ -42,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="id3391756"></a><p class="title"><b>Table&#160;1.14.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.floating_point_promotion.examples"></a><p class="title"><b>Table&#160;1.18.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="floating_point_promotion.html" title="floating_point_promotion">
-<link rel="next" href="has_nothrow_assign.html" title="has_nothrow_assign">
+<link rel="next" href="has_bit_and.html" title="has_bit_and">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="floating_point_promotion.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_nothrow_assign.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="floating_point_promotion.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_and.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.function_traits"></a><a class="link" href="function_traits.html" title="function_traits"> function_traits</a>
+<a name="boost_typetraits.reference.function_traits"></a><a class="link" href="function_traits.html" title="function_traits">function_traits</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">F</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">function_traits</span>
@@ -52,7 +52,7 @@
         </p></td></tr>
 </table></div>
 <div class="table">
-<a name="id3392201"></a><p class="title"><b>Table&#160;1.15.&#160;Function Traits Members</b></p>
+<a name="boost_typetraits.reference.function_traits.function_traits_members"></a><p class="title"><b>Table&#160;1.19.&#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="id3392459"></a><p class="title"><b>Table&#160;1.16.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.function_traits.examples"></a><p class="title"><b>Table&#160;1.20.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -272,7 +272,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="floating_point_promotion.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_nothrow_assign.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="floating_point_promotion.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_and.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_and.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_and.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,142 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_bit_and</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="function_traits.html" title="function_traits">
+<link rel="next" href="has_bit_and_assign.html" title="has_bit_and_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="function_traits.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_and_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_bit_and"></a><a class="link" href="has_bit_and.html" title="has_bit_and">has_bit_and</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_bit_and</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&amp;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_bit_and&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_bit_and</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_bit_and</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&amp;(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_and</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="function_traits.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_and_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_and_assign.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_and_assign.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,144 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_bit_and_assign</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_bit_and.html" title="has_bit_and">
+<link rel="next" href="has_bit_or.html" title="has_bit_or">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_and.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_or.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_bit_and_assign"></a><a class="link" href="has_bit_and_assign.html" title="has_bit_and_assign">has_bit_and_assign</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_bit_and_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&amp;=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_bit_and_assign&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_bit_and_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;=</span></code>
+ is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code>
+ then instantiating <code class="computeroutput"><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_bit_and_assign</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&amp;=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_and_assign</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_and.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_or.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_or.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_or.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,142 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_bit_or</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_bit_and_assign.html" title="has_bit_and_assign">
+<link rel="next" href="has_bit_or_assign.html" title="has_bit_or_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_and_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_or_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_bit_or"></a><a class="link" href="has_bit_or.html" title="has_bit_or">has_bit_or</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_bit_or</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">|</span><span class="identifier">rhs</span></code>, and
+ (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">|</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">|</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_bit_or&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_bit_or</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_bit_or</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">|(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator|(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">|(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_or</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_and_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_or_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_or_assign.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_or_assign.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,142 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_bit_or_assign</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_bit_or.html" title="has_bit_or">
+<link rel="next" href="has_bit_xor.html" title="has_bit_xor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_or.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_xor.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_bit_or_assign"></a><a class="link" href="has_bit_or_assign.html" title="has_bit_or_assign">has_bit_or_assign</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_bit_or_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">|=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">|=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">|=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">|=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_bit_or_assign&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_bit_or_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">|=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">|=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_bit_or_assign</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">|=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">|=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator|=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">|=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_or_assign</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_or.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_xor.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_xor.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_xor.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,142 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_bit_xor</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_bit_or_assign.html" title="has_bit_or_assign">
+<link rel="next" href="has_bit_xor_assign.html" title="has_bit_xor_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_or_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_xor_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_bit_xor"></a><a class="link" href="has_bit_xor.html" title="has_bit_xor">has_bit_xor</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_bit_xor</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">^</span><span class="identifier">rhs</span></code>, and
+ (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">^</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">^</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">^</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_bit_xor&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_bit_xor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">^</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">^</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_bit_xor</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">^</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">^(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator^(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">^(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_xor</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_or_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_bit_xor_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_xor_assign.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_bit_xor_assign.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,142 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_bit_xor_assign</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_bit_xor.html" title="has_bit_xor">
+<link rel="next" href="has_complement.html" title="has_complement">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_xor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_complement.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_bit_xor_assign"></a><a class="link" href="has_bit_xor_assign.html" title="has_bit_xor_assign">has_bit_xor_assign</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_bit_xor_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">^=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">^=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">^=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">^=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_bit_xor_assign&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_bit_xor_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">^=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">^=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_bit_xor_assign</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">^=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">^=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator^=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">^=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_bit_xor_assign</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_xor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_complement.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_complement.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_complement.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,150 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_complement</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_bit_xor_assign.html" title="has_bit_xor_assign">
+<link rel="next" href="has_dereference.html" title="has_dereference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_xor_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_dereference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_complement"></a><a class="link" href="has_complement.html" title="has_complement">has_complement</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_complement</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Rhs</span></code> can be used in
+ expression <code class="computeroutput"><span class="special">~</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="special">~</span><span class="identifier">rhs</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> then
+ inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">~</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(~</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_complement&lt;Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_complement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">~</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">~</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Rhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;</span></code>
+ will produce a compiler error. For this reason <code class="computeroutput"><span class="identifier">has_complement</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">~</span></code>
+ or not.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">~();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator~() is private</span>
+</pre>
+ </li>
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">~(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_complement</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_bit_xor_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_dereference.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_dereference.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_dereference.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,159 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_dereference</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_complement.html" title="has_complement">
+<link rel="next" href="has_divides.html" title="has_divides">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_complement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_divides.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_dereference"></a><a class="link" href="has_dereference.html" title="has_dereference">has_dereference</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_dereference</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Rhs</span></code> can be used in
+ expression <code class="computeroutput"><span class="special">*</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="special">*</span><span class="identifier">rhs</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> then
+ inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(*</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_dereference&lt;Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_dereference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">*&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">const</span>
+ <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="keyword">const</span> <span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="special">*</span> <span class="keyword">const</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">const</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&amp;&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Rhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;</span></code>
+ will produce a compiler error. For this reason <code class="computeroutput"><span class="identifier">has_dereference</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code>
+ or not.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator*() is private</span>
+</pre>
+ </li>
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_dereference</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_complement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_divides.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_divides.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_divides.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,148 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_divides</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_dereference.html" title="has_dereference">
+<link rel="next" href="has_divides_assign.html" title="has_divides_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_dereference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_divides_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_divides"></a><a class="link" href="has_divides.html" title="has_divides">has_divides</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_divides</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">/</span><span class="identifier">rhs</span></code>, and
+ (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">/</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">/</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_divides&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_divides</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_divides</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">/</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator/(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">/(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_divides</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_dereference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_divides_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_divides_assign.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_divides_assign.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,148 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_divides_assign</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_divides.html" title="has_divides">
+<link rel="next" href="has_equal_to.html" title="has_equal_to">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_divides.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_equal_to.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_divides_assign"></a><a class="link" href="has_divides_assign.html" title="has_divides_assign">has_divides_assign</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_divides_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">/=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">/=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">/=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">/=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_divides_assign&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_divides_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">/=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">/=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_divides_assign</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">/=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator/=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_divides_assign</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_divides.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_equal_to.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_equal_to.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_equal_to.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,147 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_equal_to</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_divides_assign.html" title="has_divides_assign">
+<link rel="next" href="has_greater.html" title="has_greater">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_divides_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_greater.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_equal_to"></a><a class="link" href="has_equal_to.html" title="has_equal_to">has_equal_to</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_equal_to</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">==</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">==</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">==</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_equal_to&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_equal_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_equal_to</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator==(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">==(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_equal_to</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_divides_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_greater.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_greater.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_greater.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,147 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_greater</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_equal_to.html" title="has_equal_to">
+<link rel="next" href="has_greater_equal.html" title="has_greater_equal">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_equal_to.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_greater_equal.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_greater"></a><a class="link" href="has_greater.html" title="has_greater">has_greater</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_greater</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&gt;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_greater&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_greater</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_greater</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&gt;(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_greater</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_equal_to.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_greater_equal.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_greater_equal.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_greater_equal.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,147 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_greater_equal</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_greater.html" title="has_greater">
+<link rel="next" href="has_left_shift.html" title="has_left_shift">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_greater.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_left_shift.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_greater_equal"></a><a class="link" href="has_greater_equal.html" title="has_greater_equal">has_greater_equal</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_greater_equal</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&gt;=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_greater_equal&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_greater_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_greater_equal</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&gt;=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_greater_equal</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_greater.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_left_shift.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_left_shift.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_left_shift.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,156 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_left_shift</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_greater_equal.html" title="has_greater_equal">
+<link rel="next" href="has_left_shift_assign.html" title="has_left_shift_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_greater_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_left_shift_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_left_shift"></a><a class="link" href="has_left_shift.html" title="has_left_shift">has_left_shift</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_left_shift</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;&lt;</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;&lt;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&lt;&lt;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_left_shift&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_left_shift</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>
+ is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code>
+ then instantiating <code class="computeroutput"><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_left_shift</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&lt;&lt;(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;&lt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_left_shift</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_greater_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_left_shift_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_left_shift_assign.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_left_shift_assign.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,144 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_left_shift_assign</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_left_shift.html" title="has_left_shift">
+<link rel="next" href="has_less.html" title="has_less">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_left_shift.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_less.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_left_shift_assign"></a><a class="link" href="has_left_shift_assign.html" title="has_left_shift_assign">has_left_shift_assign</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_left_shift_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;&lt;=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;&lt;=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&lt;&lt;=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_left_shift_assign&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_left_shift_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;=</span></code>
+ is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code>
+ then instantiating <code class="computeroutput"><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_left_shift_assign</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;&lt;=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;&lt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&lt;&lt;=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;&lt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_left_shift_assign</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_left_shift.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_less.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_less.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_less.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,147 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_less</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_left_shift_assign.html" title="has_left_shift_assign">
+<link rel="next" href="has_less_equal.html" title="has_less_equal">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_left_shift_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_less_equal.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_less"></a><a class="link" href="has_less.html" title="has_less">has_less</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_less</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&lt;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_less&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_less</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_less</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_less</span></code> cannot be
+ used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_less</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&lt;(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_less</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_less</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_left_shift_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_less_equal.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_less_equal.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_less_equal.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,147 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_less_equal</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_less.html" title="has_less">
+<link rel="next" href="has_logical_and.html" title="has_logical_and">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_less.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_logical_and.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_less_equal"></a><a class="link" href="has_less_equal.html" title="has_less_equal">has_less_equal</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_less_equal</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&lt;=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&lt;=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_less_equal&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_less_equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_less_equal</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&lt;=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&lt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_less_equal</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_less.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_logical_and.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_logical_and.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_logical_and.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,147 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_logical_and</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_less_equal.html" title="has_less_equal">
+<link rel="next" href="has_logical_not.html" title="has_logical_not">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_less_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_logical_not.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_logical_and"></a><a class="link" href="has_logical_and.html" title="has_logical_and">has_logical_and</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_logical_and</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;&amp;</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&amp;&amp;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;&amp;</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&amp;&amp;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_logical_and&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_logical_and</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;&amp;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;&amp;</span></code>
+ is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code>
+ then instantiating <code class="computeroutput"><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_logical_and</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&amp;&amp;</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;&amp;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&amp;&amp;(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&amp;&amp;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_logical_and</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_less_equal.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_logical_not.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_logical_not.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_logical_not.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,146 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_logical_not</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_logical_and.html" title="has_logical_and">
+<link rel="next" href="has_logical_or.html" title="has_logical_or">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_logical_and.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_logical_or.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_logical_not"></a><a class="link" href="has_logical_not.html" title="has_logical_not">has_logical_not</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_logical_not</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Rhs</span></code> can be used in
+ expression <code class="computeroutput"><span class="special">!</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="special">!</span><span class="identifier">rhs</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> then
+ inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">!</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(!</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_logical_not&lt;Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_logical_not</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">bool</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">!</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">!</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Rhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;</span></code>
+ will produce a compiler error. For this reason <code class="computeroutput"><span class="identifier">has_logical_not</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">!</span></code>
+ or not.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">!();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator!() is private</span>
+</pre>
+ </li>
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">!(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_logical_not</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_logical_and.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_logical_or.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_logical_or.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_logical_or.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,145 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_logical_or</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_logical_not.html" title="has_logical_not">
+<link rel="next" href="has_minus.html" title="has_minus">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_logical_not.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_minus.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_logical_or"></a><a class="link" href="has_logical_or.html" title="has_logical_or">has_logical_or</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_logical_or</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">||</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">||</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">||</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">||</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_logical_or&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_logical_or</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">||</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">||</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_logical_or</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">||</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">||(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator||(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">||(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_logical_or</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_logical_not.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_minus.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_minus.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_minus.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,148 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_minus</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_logical_or.html" title="has_logical_or">
+<link rel="next" href="has_minus_assign.html" title="has_minus_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_logical_or.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_minus_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_minus"></a><a class="link" href="has_minus.html" title="has_minus">has_minus</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_minus</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">-</span><span class="identifier">rhs</span></code>, and
+ (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">-</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">-</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_minus&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_minus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_minus</span></code> cannot be
+ used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator-(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_minus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_logical_or.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_minus_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_minus_assign.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_minus_assign.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,148 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_minus_assign</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_minus.html" title="has_minus">
+<link rel="next" href="has_modulus.html" title="has_modulus">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_minus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_modulus.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_minus_assign"></a><a class="link" href="has_minus_assign.html" title="has_minus_assign">has_minus_assign</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_minus_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">-=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">-=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">-=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_minus_assign&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_minus_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_minus_assign</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">-=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator-=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_minus_assign</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_minus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_modulus.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_modulus.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_modulus.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,141 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_modulus</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_minus_assign.html" title="has_minus_assign">
+<link rel="next" href="has_modulus_assign.html" title="has_modulus_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_minus_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_modulus_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_modulus"></a><a class="link" href="has_modulus.html" title="has_modulus">has_modulus</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_modulus</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">%</span><span class="identifier">rhs</span></code>, and
+ (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">%</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">%</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">%</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_modulus&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_modulus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">%</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">%</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_modulus</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">%</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator%(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">%(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_modulus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_minus_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_modulus_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_modulus_assign.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_modulus_assign.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,141 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_modulus_assign</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_modulus.html" title="has_modulus">
+<link rel="next" href="has_multiplies.html" title="has_multiplies">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_modulus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_multiplies.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_modulus_assign"></a><a class="link" href="has_modulus_assign.html" title="has_modulus_assign">has_modulus_assign</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_modulus_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">%=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">%=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">%=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_modulus_assign&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_modulus_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_modulus_assign</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">%=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator%=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">%=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_modulus_assign</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_modulus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_multiplies.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_multiplies.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_multiplies.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,148 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_multiplies</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_modulus_assign.html" title="has_modulus_assign">
+<link rel="next" href="has_multiplies_assign.html" title="has_multiplies_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_modulus_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_multiplies_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_multiplies"></a><a class="link" href="has_multiplies.html" title="has_multiplies">has_multiplies</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_multiplies</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">*</span><span class="identifier">rhs</span></code>, and
+ (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">*</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">*</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_multiplies&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_multiplies</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_multiplies</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">*</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator*(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_multiplies</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_modulus_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_multiplies_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_multiplies_assign.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_multiplies_assign.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,148 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_multiplies_assign</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_multiplies.html" title="has_multiplies">
+<link rel="next" href="has_negate.html" title="has_negate">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_multiplies.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_negate.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_multiplies_assign"></a><a class="link" href="has_multiplies_assign.html" title="has_multiplies_assign">has_multiplies_assign</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_multiplies_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">*=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">*=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">*=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">*=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_multiplies_assign&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_multiplies_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">*=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">*=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_multiplies_assign</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">*=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator*=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_multiplies_assign</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_multiplies.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_negate.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_negate.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_negate.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,146 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_negate</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_multiplies_assign.html" title="has_multiplies_assign">
+<link rel="next" href="has_new_operator.html" title="has_new_operator">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_multiplies_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_new_operator.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_negate"></a><a class="link" href="has_negate.html" title="has_negate">has_negate</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_negate</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Rhs</span></code> can be used in
+ expression <code class="computeroutput"><span class="special">-</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="special">-</span><span class="identifier">rhs</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> then
+ inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(-</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_negate&lt;Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_negate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Rhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;</span></code>
+ will produce a compiler error. For this reason <code class="computeroutput"><span class="identifier">has_negate</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code>
+ or not.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator-() is private</span>
+</pre>
+ </li>
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_negate</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_multiplies_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_new_operator.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_new_operator.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_new_operator.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,102 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_new_operator</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_negate.html" title="has_negate">
+<link rel="next" href="has_not_equal_to.html" title="has_not_equal_to">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_negate.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_not_equal_to.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_new_operator"></a><a class="link" href="has_new_operator.html" title="has_new_operator">has_new_operator</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_new_operator</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If T is a (possibly cv-qualified)
+ type with an overloaded new-operator then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ <span class="bold"><strong>Compiler Compatibility:</strong></span> Not usable with
+ compilers that do not support "substitution failure is not an error"
+ (in which case BOOST_NO_SFINAE will be defined), also known to be broken
+ with the Borland/Codegear compiler.
+ </p>
+<p>
+ <span class="bold"><strong>C++ Standard Reference:</strong></span> 12.5.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_new_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<p>
+ Given:
+ </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">void</span><span class="special">*</span> <span class="keyword">operator</span> <span class="keyword">new</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">);</span> <span class="special">};</span>
+<span class="keyword">class</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">void</span><span class="special">*</span> <span class="keyword">operator</span> <span class="keyword">new</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">nothrow</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="keyword">class</span> <span class="identifier">C</span> <span class="special">{</span> <span class="keyword">void</span><span class="special">*</span> <span class="keyword">operator</span> <span class="keyword">new</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="keyword">void</span><span class="special">*);</span> <span class="special">};</span>
+<span class="keyword">class</span> <span class="identifier">D</span> <span class="special">{</span> <span class="keyword">void</span><span class="special">*</span> <span class="keyword">operator</span> <span class="keyword">new</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">);</span> <span class="special">};</span>
+<span class="keyword">class</span> <span class="identifier">E</span> <span class="special">{</span> <span class="keyword">void</span><span class="special">*</span> <span class="keyword">operator</span> <span class="keyword">new</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">nothrow</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="keyword">class</span> <span class="identifier">F</span> <span class="special">{</span> <span class="keyword">void</span><span class="special">*</span> <span class="keyword">operator</span> <span class="keyword">new</span><span class="special">[](</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="keyword">void</span><span class="special">*);</span> <span class="special">};</span>
+</pre>
+<p>
+ Then:
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_new_operator</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_new_operator</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_new_operator</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_new_operator</span><span class="special">&lt;</span><span class="identifier">D</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_new_operator</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_new_operator</span><span class="special">&lt;</span><span class="identifier">F</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_negate.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_not_equal_to.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="has_nothrow_cp_cons.html" title="has_nothrow_copy_constructor">
-<link rel="next" href="has_trivial_assign.html" title="has_trivial_assign">
+<link rel="next" href="has_plus.html" title="has_plus">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_nothrow_cp_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_trivial_assign.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_nothrow_cp_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_plus.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_no_throw_def_cons"></a><a class="link" href="has_no_throw_def_cons.html" title="has_nothrow_default_constructor"> has_nothrow_default_constructor</a>
+<a name="boost_typetraits.reference.has_no_throw_def_cons"></a><a class="link" href="has_no_throw_def_cons.html" title="has_nothrow_default_constructor">has_nothrow_default_constructor</a>
 </h3></div></div></div>
 <p>
         See <a class="link" href="has_nothrow_constructor.html" title="has_nothrow_constructor">has_nothrow_constructor</a>.
@@ -37,7 +37,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_nothrow_cp_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_trivial_assign.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_nothrow_cp_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_plus.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_not_equal_to.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_not_equal_to.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,147 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_not_equal_to</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_new_operator.html" title="has_new_operator">
+<link rel="next" href="has_nothrow_assign.html" title="has_nothrow_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_new_operator.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_nothrow_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_not_equal_to"></a><a class="link" href="has_not_equal_to.html" title="has_not_equal_to">has_not_equal_to</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_not_equal_to</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">!=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">!=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">!=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_not_equal_to&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_not_equal_to</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">*,</span> <span class="keyword">double</span><span class="special">*&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_not_equal_to</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">!=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator!=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_not_equal_to</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_new_operator.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_nothrow_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,18 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="function_traits.html" title="function_traits">
+<link rel="prev" href="has_not_equal_to.html" title="has_not_equal_to">
 <link rel="next" href="has_nothrow_constructor.html" title="has_nothrow_constructor">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="function_traits.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_nothrow_constructor.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_not_equal_to.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_nothrow_constructor.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_nothrow_assign"></a><a class="link" href="has_nothrow_assign.html" title="has_nothrow_assign"> has_nothrow_assign</a>
+<a name="boost_typetraits.reference.has_nothrow_assign"></a><a class="link" href="has_nothrow_assign.html" title="has_nothrow_assign">has_nothrow_assign</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_nothrow_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -61,7 +61,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="function_traits.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_nothrow_constructor.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_not_equal_to.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_nothrow_constructor.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,8 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_nothrow_constructor"></a><a class="link" href="has_nothrow_constructor.html" title="has_nothrow_constructor">
- has_nothrow_constructor</a>
+<a name="boost_typetraits.reference.has_nothrow_constructor"></a><a class="link" href="has_nothrow_constructor.html" title="has_nothrow_constructor">has_nothrow_constructor</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_nothrow_constructor</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_nothrow_copy"></a><a class="link" href="has_nothrow_copy.html" title="has_nothrow_copy"> has_nothrow_copy</a>
+<a name="boost_typetraits.reference.has_nothrow_copy"></a><a class="link" href="has_nothrow_copy.html" title="has_nothrow_copy">has_nothrow_copy</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_nothrow_copy</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_nothrow_cp_cons"></a><a class="link" href="has_nothrow_cp_cons.html" title="has_nothrow_copy_constructor"> has_nothrow_copy_constructor</a>
+<a name="boost_typetraits.reference.has_nothrow_cp_cons"></a><a class="link" href="has_nothrow_cp_cons.html" title="has_nothrow_copy_constructor">has_nothrow_copy_constructor</a>
 </h3></div></div></div>
 <p>
         See <a class="link" href="has_nothrow_copy.html" title="has_nothrow_copy">has_nothrow_copy</a>.

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_plus.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_plus.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,148 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_plus</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_no_throw_def_cons.html" title="has_nothrow_default_constructor">
+<link rel="next" href="has_plus_assign.html" title="has_plus_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_no_throw_def_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_plus_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_plus"></a><a class="link" href="has_plus.html" title="has_plus">has_plus</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_plus</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">+</span><span class="identifier">rhs</span></code>, and
+ (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">+</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">+</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_plus&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_plus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_plus</span></code> cannot be
+ used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator+(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_plus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_no_throw_def_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_plus_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_plus_assign.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_plus_assign.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,148 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_plus_assign</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_plus.html" title="has_plus">
+<link rel="next" href="has_post_decrement.html" title="has_post_decrement">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_plus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_post_decrement.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_plus_assign"></a><a class="link" href="has_plus_assign.html" title="has_plus_assign">has_plus_assign</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_plus_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">+=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">+=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">+=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_plus_assign&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_plus_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_plus_assign</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">+=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator+=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_plus_assign</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_plus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_post_decrement.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_post_decrement.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_post_decrement.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,155 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_post_decrement</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_plus_assign.html" title="has_plus_assign">
+<link rel="next" href="has_post_increment.html" title="has_post_increment">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_plus_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_post_increment.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_post_decrement"></a><a class="link" href="has_post_decrement.html" title="has_post_decrement">has_post_decrement</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_post_decrement</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> can be used in
+ expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">--</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">--</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> then
+ inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">--);</span> <span class="comment">// is valid if has_post_decrement&lt;Lhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_post_decrement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_post_decrement</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator--(int) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">int</span><span class="special">);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_post_decrement</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_plus_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_post_increment.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_post_increment.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_post_increment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,155 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_post_increment</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_post_decrement.html" title="has_post_decrement">
+<link rel="next" href="has_pre_decrement.html" title="has_pre_decrement">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_post_decrement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_pre_decrement.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_post_increment"></a><a class="link" href="has_post_increment.html" title="has_post_increment">has_post_increment</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_post_increment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> can be used in
+ expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">++</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">++</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> then
+ inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">++);</span> <span class="comment">// is valid if has_post_increment&lt;Lhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_post_increment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether postfix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_post_increment</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator++(int) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">int</span><span class="special">);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_post_increment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_post_decrement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_pre_decrement.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_pre_decrement.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_pre_decrement.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,156 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_pre_decrement</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_post_increment.html" title="has_post_increment">
+<link rel="next" href="has_pre_increment.html" title="has_pre_increment">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_post_increment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_pre_increment.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_pre_decrement"></a><a class="link" href="has_pre_decrement.html" title="has_pre_decrement">has_pre_decrement</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_pre_decrement</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Rhs</span></code> can be used in
+ expression <code class="computeroutput"><span class="special">--</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="special">--</span><span class="identifier">rhs</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> then
+ inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(--</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_pre_decrement&lt;Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_pre_decrement</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code>
+ is defined as a private member of <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ then instantiating <code class="computeroutput"><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;</span></code> will produce a compiler error. For
+ this reason <code class="computeroutput"><span class="identifier">has_pre_decrement</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">--</span></code>
+ or not.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">--();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator--() is private</span>
+</pre>
+ </li>
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_decrement</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_post_increment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_pre_increment.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_pre_increment.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_pre_increment.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,156 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_pre_increment</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_pre_decrement.html" title="has_pre_decrement">
+<link rel="next" href="has_right_shift.html" title="has_right_shift">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_pre_decrement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_right_shift.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_pre_increment"></a><a class="link" href="has_pre_increment.html" title="has_pre_increment">has_pre_increment</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_pre_increment</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Rhs</span></code> can be used in
+ expression <code class="computeroutput"><span class="special">++</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="special">++</span><span class="identifier">rhs</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> then
+ inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(++</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_pre_increment&lt;Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_pre_increment</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">*&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code>
+ is defined as a private member of <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ then instantiating <code class="computeroutput"><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;</span></code> will produce a compiler error. For
+ this reason <code class="computeroutput"><span class="identifier">has_pre_increment</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">++</span></code>
+ or not.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">++();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator++() is private</span>
+</pre>
+ </li>
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_pre_increment</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_pre_decrement.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_right_shift.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_right_shift.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_right_shift.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,156 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_right_shift</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_pre_increment.html" title="has_pre_increment">
+<link rel="next" href="has_right_shift_assign.html" title="has_right_shift_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_pre_increment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_right_shift_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_right_shift"></a><a class="link" href="has_right_shift.html" title="has_right_shift">has_right_shift</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_right_shift</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;&gt;</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;&gt;</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&gt;&gt;</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_right_shift&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_right_shift</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&amp;&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span><span class="special">,</span> <span class="keyword">char</span><span class="special">*,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&amp;&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code>
+ is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code>
+ then instantiating <code class="computeroutput"><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_right_shift</span></code> cannot
+ be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&gt;&gt;(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;&gt;(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_right_shift</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_pre_increment.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_right_shift_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_right_shift_assign.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_right_shift_assign.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,148 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_right_shift_assign</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_right_shift.html" title="has_right_shift">
+<link rel="next" href="has_trivial_assign.html" title="has_trivial_assign">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_right_shift.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_trivial_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_right_shift_assign"></a><a class="link" href="has_right_shift_assign.html" title="has_right_shift_assign">has_right_shift_assign</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">=</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_right_shift_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">lhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Lhs</span></code> and <code class="computeroutput"><span class="identifier">rhs</span></code> of type <code class="computeroutput"><span class="identifier">Rhs</span></code>
+ can be used in expression <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;&gt;=</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="identifier">lhs</span><span class="special">&gt;&gt;=</span><span class="identifier">rhs</span></code> is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;=</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Lhs</span> <span class="identifier">lhs</span><span class="special">;</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(</span><span class="identifier">lhs</span><span class="special">&gt;&gt;=</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_right_shift_assign&lt;Lhs, Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_right_shift_assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
+ is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">,</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
+ is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
+ expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code>
+ is a <code class="computeroutput"><span class="keyword">bool</span></code> integral constant
+ expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
+ <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">double</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<p>
+ This trait cannot detect whether binary <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;=</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;=</span></code>
+ is defined as a private member of <code class="computeroutput"><span class="identifier">Lhs</span></code>
+ then instantiating <code class="computeroutput"><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="identifier">Lhs</span><span class="special">&gt;</span></code> will produce a compiler error. For this
+ reason <code class="computeroutput"><span class="identifier">has_right_shift_assign</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">&gt;&gt;=</span></code> or not.
+</p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;&gt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator&gt;&gt;=(const A&amp;) is private</span>
+</pre>
+<p>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">&gt;&gt;=(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;,</span> <span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_right_shift_assign</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_right_shift.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_trivial_assign.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,18 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="has_no_throw_def_cons.html" title="has_nothrow_default_constructor">
+<link rel="prev" href="has_right_shift_assign.html" title="has_right_shift_assign">
 <link rel="next" href="has_trivial_constructor.html" title="has_trivial_constructor">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_no_throw_def_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_trivial_constructor.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_right_shift_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_trivial_constructor.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_trivial_assign"></a><a class="link" href="has_trivial_assign.html" title="has_trivial_assign"> has_trivial_assign</a>
+<a name="boost_typetraits.reference.has_trivial_assign"></a><a class="link" href="has_trivial_assign.html" title="has_trivial_assign">has_trivial_assign</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_trivial_assign</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -88,7 +88,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_no_throw_def_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_trivial_constructor.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_right_shift_assign.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_trivial_constructor.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,8 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_trivial_constructor"></a><a class="link" href="has_trivial_constructor.html" title="has_trivial_constructor">
- has_trivial_constructor</a>
+<a name="boost_typetraits.reference.has_trivial_constructor"></a><a class="link" href="has_trivial_constructor.html" title="has_trivial_constructor">has_trivial_constructor</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_trivial_constructor</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_trivial_copy"></a><a class="link" href="has_trivial_copy.html" title="has_trivial_copy"> has_trivial_copy</a>
+<a name="boost_typetraits.reference.has_trivial_copy"></a><a class="link" href="has_trivial_copy.html" title="has_trivial_copy">has_trivial_copy</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_trivial_copy</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_trivial_cp_cons"></a><a class="link" href="has_trivial_cp_cons.html" title="has_trivial_copy_constructor"> has_trivial_copy_constructor</a>
+<a name="boost_typetraits.reference.has_trivial_cp_cons"></a><a class="link" href="has_trivial_cp_cons.html" title="has_trivial_copy_constructor">has_trivial_copy_constructor</a>
 </h3></div></div></div>
 <p>
         See <a class="link" href="has_trivial_copy.html" title="has_trivial_copy">has_trivial_copy</a>.

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_trivial_def_cons"></a><a class="link" href="has_trivial_def_cons.html" title="has_trivial_default_constructor"> has_trivial_default_constructor</a>
+<a name="boost_typetraits.reference.has_trivial_def_cons"></a><a class="link" href="has_trivial_def_cons.html" title="has_trivial_default_constructor">has_trivial_default_constructor</a>
 </h3></div></div></div>
 <p>
         See <a class="link" href="has_trivial_constructor.html" title="has_trivial_constructor">has_trivial_constructor</a>.

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="has_trivial_def_cons.html" title="has_trivial_default_constructor">
-<link rel="next" href="has_virtual_destructor.html" title="has_virtual_destructor">
+<link rel="next" href="has_unary_minus.html" title="has_unary_minus">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_trivial_def_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_virtual_destructor.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_trivial_def_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_unary_minus.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_trivial_destructor"></a><a class="link" href="has_trivial_destructor.html" title="has_trivial_destructor"> has_trivial_destructor</a>
+<a name="boost_typetraits.reference.has_trivial_destructor"></a><a class="link" href="has_trivial_destructor.html" title="has_trivial_destructor">has_trivial_destructor</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_trivial_destructor</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -91,7 +91,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_trivial_def_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_virtual_destructor.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_trivial_def_cons.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_unary_minus.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_unary_minus.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_unary_minus.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,146 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_unary_minus</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_trivial_destructor.html" title="has_trivial_destructor">
+<link rel="next" href="has_unary_plus.html" title="has_unary_plus">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_trivial_destructor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_unary_plus.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_unary_minus"></a><a class="link" href="has_unary_minus.html" title="has_unary_minus">has_unary_minus</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_unary_minus</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Rhs</span></code> can be used in
+ expression <code class="computeroutput"><span class="special">-</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="special">-</span><span class="identifier">rhs</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> then
+ inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(-</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_unary_minus&lt;Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_unary_minus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Rhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;</span></code>
+ will produce a compiler error. For this reason <code class="computeroutput"><span class="identifier">has_unary_minus</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">-</span></code>
+ or not.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator-() is private</span>
+</pre>
+ </li>
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">-(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_minus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_trivial_destructor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_unary_plus.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_unary_plus.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/has_unary_plus.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,146 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_unary_plus</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="has_unary_minus.html" title="has_unary_minus">
+<link rel="next" href="has_virtual_destructor.html" title="has_virtual_destructor">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_unary_minus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_virtual_destructor.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.has_unary_plus"></a><a class="link" href="has_unary_plus.html" title="has_unary_plus">has_unary_plus</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Rhs</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">has_unary_plus</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If (i) <code class="computeroutput"><span class="identifier">rhs</span></code>
+ of type <code class="computeroutput"><span class="identifier">Rhs</span></code> can be used in
+ expression <code class="computeroutput"><span class="special">+</span><span class="identifier">rhs</span></code>,
+ and (ii) <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code> or the result of expression
+ <code class="computeroutput"><span class="special">+</span><span class="identifier">rhs</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> then
+ inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ The default behaviour (<code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="identifier">dont_care</span></code>)
+ is to not check for the return value of prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code>. If <code class="computeroutput"><span class="identifier">Ret</span></code>
+ is different from the default <code class="computeroutput"><span class="identifier">dont_care</span></code>
+ type, the return value is checked to be convertible to <code class="computeroutput"><span class="identifier">Ret</span></code>.
+ Convertible to <code class="computeroutput"><span class="identifier">Ret</span></code> means
+ that the return value of the operator can be used as argument to a function
+ expecting <code class="computeroutput"><span class="identifier">Ret</span></code>:
+</p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">f</span><span class="special">(</span><span class="identifier">Ret</span><span class="special">);</span>
+<span class="identifier">Rhs</span> <span class="identifier">rhs</span><span class="special">;</span>
+<span class="identifier">f</span><span class="special">(+</span><span class="identifier">rhs</span><span class="special">);</span> <span class="comment">// is valid if has_unary_plus&lt;Rhs, Ret&gt;::value==true</span>
+</pre>
+<p>
+ If <code class="computeroutput"><span class="identifier">Ret</span><span class="special">=</span><span class="keyword">void</span></code>, the return type is checked to be exactly
+ <code class="computeroutput"><span class="keyword">void</span></code>.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">has_unary_plus</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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">has_operator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ </p>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">,</span> <span class="identifier">Ret</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is a <code class="computeroutput"><span class="keyword">bool</span></code>
+ integral constant expression that evaluates to <code class="computeroutput"><span class="keyword">true</span></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="keyword">long</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">long</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">double</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="keyword">int</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span></code> inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<p>
+ <span class="bold"><strong>See also:</strong></span> <a class="link" href="../category/value_traits/operators.html" title="Operator Type Traits">Operator
+ Type Traits</a>
+ </p>
+<p>
+ <span class="bold"><strong>Known issues:</strong></span>
+ </p>
+<div class="itemizedlist"><ul class="itemizedlist" type="disc">
+<li class="listitem">
+ This trait cannot detect whether prefix <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> is public or not: if <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code> is defined as a private member of <code class="computeroutput"><span class="identifier">Rhs</span></code> then instantiating <code class="computeroutput"><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="identifier">Rhs</span><span class="special">&gt;</span></code>
+ will produce a compiler error. For this reason <code class="computeroutput"><span class="identifier">has_unary_plus</span></code>
+ cannot be used to determine whether a type has a public <code class="computeroutput"><span class="keyword">operator</span><span class="special">+</span></code>
+ or not.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="keyword">private</span><span class="special">:</span> <span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: A::operator+() is private</span>
+</pre>
+ </li>
+<li class="listitem">
+ There is an issue if the operator exists only for type <code class="computeroutput"><span class="identifier">A</span></code> and <code class="computeroutput"><span class="identifier">B</span></code>
+ is convertible to <code class="computeroutput"><span class="identifier">A</span></code>.
+ In this case, the compiler will report an ambiguous overload.
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">A</span> <span class="special">{</span> <span class="special">};</span>
+<span class="keyword">void</span> <span class="keyword">operator</span><span class="special">+(</span><span class="keyword">const</span> <span class="identifier">A</span><span class="special">&amp;);</span>
+<span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">{</span> <span class="keyword">operator</span> <span class="identifier">A</span><span class="special">();</span> <span class="special">};</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// this is fine</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">has_unary_plus</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">;</span> <span class="comment">// error: ambiguous overload</span>
+</pre>
+ </li>
+<li class="listitem">
+ <code class="computeroutput"><span class="keyword">volatile</span></code> qualifier is not
+ properly handled and would lead to undefined behavior
+ </li>
+</ul></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="has_unary_minus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="has_virtual_destructor.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,18 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="has_trivial_destructor.html" title="has_trivial_destructor">
+<link rel="prev" href="has_unary_plus.html" title="has_unary_plus">
 <link rel="next" href="integral_constant.html" title="integral_constant">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_trivial_destructor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="integral_constant.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_unary_plus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="integral_constant.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.has_virtual_destructor"></a><a class="link" href="has_virtual_destructor.html" title="has_virtual_destructor"> has_virtual_destructor</a>
+<a name="boost_typetraits.reference.has_virtual_destructor"></a><a class="link" href="has_virtual_destructor.html" title="has_virtual_destructor">has_virtual_destructor</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">has_virtual_destructor</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -60,7 +60,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="has_trivial_destructor.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="integral_constant.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="has_unary_plus.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="integral_constant.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.integral_constant"></a><a class="link" href="integral_constant.html" title="integral_constant"> integral_constant</a>
+<a name="boost_typetraits.reference.integral_constant"></a><a class="link" href="integral_constant.html" title="integral_constant">integral_constant</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">val</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">integral_constant</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.integral_promotion"></a><a class="link" href="integral_promotion.html" title="integral_promotion"> integral_promotion</a>
+<a name="boost_typetraits.reference.integral_promotion"></a><a class="link" href="integral_promotion.html" title="integral_promotion">integral_promotion</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">integral_promotion</span>
@@ -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="id3397390"></a><p class="title"><b>Table&#160;1.17.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.integral_promotion.examples"></a><p class="title"><b>Table&#160;1.21.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_abstract"></a><a class="link" href="is_abstract.html" title="is_abstract"> is_abstract</a>
+<a name="boost_typetraits.reference.is_abstract"></a><a class="link" href="is_abstract.html" title="is_abstract">is_abstract</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_abstract</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_arithmetic"></a><a class="link" href="is_arithmetic.html" title="is_arithmetic"> is_arithmetic</a>
+<a name="boost_typetraits.reference.is_arithmetic"></a><a class="link" href="is_arithmetic.html" title="is_arithmetic">is_arithmetic</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_arithmetic</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_array"></a><a class="link" href="is_array.html" title="is_array"> is_array</a>
+<a name="boost_typetraits.reference.is_array"></a><a class="link" href="is_array.html" title="is_array">is_array</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_array</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_base_of"></a><a class="link" href="is_base_of.html" title="is_base_of"> is_base_of</a>
+<a name="boost_typetraits.reference.is_base_of"></a><a class="link" href="is_base_of.html" title="is_base_of">is_base_of</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Base</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_base_of</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_class"></a><a class="link" href="is_class.html" title="is_class"> is_class</a>
+<a name="boost_typetraits.reference.is_class"></a><a class="link" href="is_class.html" title="is_class">is_class</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_class</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_complex"></a><a class="link" href="is_complex.html" title="is_complex"> is_complex</a>
+<a name="boost_typetraits.reference.is_complex"></a><a class="link" href="is_complex.html" title="is_complex">is_complex</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_complex</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_compound"></a><a class="link" href="is_compound.html" title="is_compound"> is_compound</a>
+<a name="boost_typetraits.reference.is_compound"></a><a class="link" href="is_compound.html" title="is_compound">is_compound</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_compound</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_const"></a><a class="link" href="is_const.html" title="is_const"> is_const</a>
+<a name="boost_typetraits.reference.is_const"></a><a class="link" href="is_const.html" title="is_const">is_const</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_const</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_convertible"></a><a class="link" href="is_convertible.html" title="is_convertible"> is_convertible</a>
+<a name="boost_typetraits.reference.is_convertible"></a><a class="link" href="is_convertible.html" title="is_convertible">is_convertible</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">From</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">To</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_convertible</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -55,8 +55,8 @@
 <span class="keyword">struct</span> <span class="identifier">B</span> <span class="special">:</span> <span class="identifier">A</span> <span class="special">{};</span>
 <span class="keyword">struct</span> <span class="identifier">C</span> <span class="special">:</span> <span class="identifier">A</span> <span class="special">{};</span>
 <span class="keyword">struct</span> <span class="identifier">D</span> <span class="special">:</span> <span class="identifier">B</span><span class="special">,</span> <span class="identifier">C</span> <span class="special">{};</span>
-<span class="comment">// This produces a compiler error, the conversion is ambiguous:
-</span><span class="keyword">bool</span> <span class="keyword">const</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="identifier">D</span><span class="special">*,</span><span class="identifier">A</span><span class="special">*&gt;::</span><span class="identifier">value</span><span class="special">;</span>
+<span class="comment">// This produces a compiler error, the conversion is ambiguous:</span>
+<span class="keyword">bool</span> <span class="keyword">const</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_convertible</span><span class="special">&lt;</span><span class="identifier">D</span><span class="special">*,</span><span class="identifier">A</span><span class="special">*&gt;::</span><span class="identifier">value</span><span class="special">;</span>
 </pre>
 <p>
         <span class="bold"><strong>C++ Standard Reference:</strong></span> 4 and 8.5.

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_empty"></a><a class="link" href="is_empty.html" title="is_empty"> is_empty</a>
+<a name="boost_typetraits.reference.is_empty"></a><a class="link" href="is_empty.html" title="is_empty">is_empty</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_empty</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_enum"></a><a class="link" href="is_enum.html" title="is_enum"> is_enum</a>
+<a name="boost_typetraits.reference.is_enum"></a><a class="link" href="is_enum.html" title="is_enum">is_enum</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_enum</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_floating_point"></a><a class="link" href="is_floating_point.html" title="is_floating_point"> is_floating_point</a>
+<a name="boost_typetraits.reference.is_floating_point"></a><a class="link" href="is_floating_point.html" title="is_floating_point">is_floating_point</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_floating_point</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_function"></a><a class="link" href="is_function.html" title="is_function"> is_function</a>
+<a name="boost_typetraits.reference.is_function"></a><a class="link" href="is_function.html" title="is_function">is_function</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_function</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -29,10 +29,10 @@
         Note that this template does not detect <span class="emphasis"><em>pointers to functions</em></span>,
         or <span class="emphasis"><em>references to functions</em></span>, these are detected by <a class="link" href="is_pointer.html" title="is_pointer">is_pointer</a> and <a class="link" href="is_reference.html" title="is_reference">is_reference</a> respectively:
       </p>
-<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">f1</span><span class="special">();</span> <span class="comment">// f1 is of function type.
-</span><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">f2</span><span class="special">*)();</span> <span class="comment">// f2 is a pointer to a function.
-</span><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">f3</span><span class="special">&amp;)();</span> <span class="comment">// f3 is a reference to a function.
-</span></pre>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">f1</span><span class="special">();</span> <span class="comment">// f1 is of function type.</span>
+<span class="keyword">typedef</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">f2</span><span class="special">*)();</span> <span class="comment">// f2 is a pointer to a function.</span>
+<span class="keyword">typedef</span> <span class="keyword">int</span> <span class="special">(</span><span class="identifier">f3</span><span class="special">&amp;)();</span> <span class="comment">// f3 is a reference to a function.</span>
+</pre>
 <p>
         <span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2p1 and 8.3.5.
       </p>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_fundamental"></a><a class="link" href="is_fundamental.html" title="is_fundamental"> is_fundamental</a>
+<a name="boost_typetraits.reference.is_fundamental"></a><a class="link" href="is_fundamental.html" title="is_fundamental">is_fundamental</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_fundamental</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="is_fundamental.html" title="is_fundamental">
-<link rel="next" href="is_member_function_pointer.html" title="is_member_function_pointer">
+<link rel="next" href="is_lvalue_reference.html" title="is_lvalue_reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_fundamental.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_member_function_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_fundamental.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_lvalue_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_integral"></a><a class="link" href="is_integral.html" title="is_integral"> is_integral</a>
+<a name="boost_typetraits.reference.is_integral"></a><a class="link" href="is_integral.html" title="is_integral">is_integral</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_integral</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -68,7 +68,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_fundamental.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_member_function_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_fundamental.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_lvalue_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_lvalue_reference.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_lvalue_reference.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_lvalue_reference</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="is_integral.html" title="is_integral">
+<link rel="next" href="is_member_function_pointer.html" title="is_member_function_pointer">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_integral.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_member_function_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.is_lvalue_reference"></a><a class="link" href="is_lvalue_reference.html" title="is_lvalue_reference">is_lvalue_reference</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">is_lvalue_reference</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If T is an lvalue reference type
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ <span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2 and 8.3.2.
+ </p>
+<p>
+ <span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
+ does not support partial-specialization of class templates, then this template
+ may report the wrong result for function types, and for types that are both
+ const and volatile qualified.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">is_lvalue_reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_lvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_lvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code>
+ is the type <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_lvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;&amp;&gt;::</span><span class="identifier">type</span></code>
+ is the type <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_lvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="special">(&amp;)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant expression
+ that evaluates to <span class="emphasis"><em>true</em></span> (the argument in this case
+ is a reference to a function).
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_lvalue_reference</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_integral.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_member_function_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,19 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="is_integral.html" title="is_integral">
+<link rel="prev" href="is_lvalue_reference.html" title="is_lvalue_reference">
 <link rel="next" href="is_member_object_pointer.html" title="is_member_object_pointer">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_integral.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_member_object_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_lvalue_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_member_object_pointer.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_member_function_pointer"></a><a class="link" href="is_member_function_pointer.html" title="is_member_function_pointer">
- is_member_function_pointer</a>
+<a name="boost_typetraits.reference.is_member_function_pointer"></a><a class="link" href="is_member_function_pointer.html" title="is_member_function_pointer">is_member_function_pointer</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_member_function_pointer</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -76,7 +75,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_integral.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_member_object_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_lvalue_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_member_object_pointer.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,8 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_member_object_pointer"></a><a class="link" href="is_member_object_pointer.html" title="is_member_object_pointer">
- is_member_object_pointer</a>
+<a name="boost_typetraits.reference.is_member_object_pointer"></a><a class="link" href="is_member_object_pointer.html" title="is_member_object_pointer">is_member_object_pointer</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_member_object_pointer</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_member_pointer"></a><a class="link" href="is_member_pointer.html" title="is_member_pointer"> is_member_pointer</a>
+<a name="boost_typetraits.reference.is_member_pointer"></a><a class="link" href="is_member_pointer.html" title="is_member_pointer">is_member_pointer</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_member_pointer</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_object"></a><a class="link" href="is_object.html" title="is_object"> is_object</a>
+<a name="boost_typetraits.reference.is_object"></a><a class="link" href="is_object.html" title="is_object">is_object</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_object</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_pod"></a><a class="link" href="is_pod.html" title="is_pod"> is_pod</a>
+<a name="boost_typetraits.reference.is_pod"></a><a class="link" href="is_pod.html" title="is_pod">is_pod</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_pod</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -46,10 +46,10 @@
         can not be used with function types.
       </p>
 <p>
- Without some (as yet unspecified) help from the compiler, is<span class="underline">pod
- will never report that a class or struct is a POD; this is always safe, if
- possibly sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have
- the necessary compiler-</span>_intrinsics.
+ Without some (as yet unspecified) help from the compiler, is_pod will never
+ report that a class or struct is a POD; this is always safe, if possibly
+ sub-optimal. Currently (May 2005) only MWCW 9 and Visual C++ 8 have the necessary
+ compiler-<a class="link" href="../intrinsics.html" title="Support for Compiler Intrinsics">intrinsics</a>.
       </p>
 <p>
         <span class="bold"><strong>Header:</strong></span> <code class="computeroutput"> <span class="preprocessor">#include</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_pointer"></a><a class="link" href="is_pointer.html" title="is_pointer"> is_pointer</a>
+<a name="boost_typetraits.reference.is_pointer"></a><a class="link" href="is_pointer.html" title="is_pointer">is_pointer</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_pointer</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_polymorphic"></a><a class="link" href="is_polymorphic.html" title="is_polymorphic"> is_polymorphic</a>
+<a name="boost_typetraits.reference.is_polymorphic"></a><a class="link" href="is_polymorphic.html" title="is_polymorphic">is_polymorphic</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_polymorphic</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="is_polymorphic.html" title="is_polymorphic">
-<link rel="next" href="is_same.html" title="is_same">
+<link rel="next" href="is_rvalue_reference.html" title="is_rvalue_reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_polymorphic.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_same.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_polymorphic.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_rvalue_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_reference"></a><a class="link" href="is_reference.html" title="is_reference"> is_reference</a>
+<a name="boost_typetraits.reference.is_reference"></a><a class="link" href="is_reference.html" title="is_reference">is_reference</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_reference</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -75,7 +75,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_polymorphic.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_same.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_polymorphic.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_rvalue_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_rvalue_reference.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_rvalue_reference.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_rvalue_reference</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="is_reference.html" title="is_reference">
+<link rel="next" href="is_same.html" title="is_same">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_same.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.is_rvalue_reference"></a><a class="link" href="is_rvalue_reference.html" title="is_rvalue_reference">is_rvalue_reference</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">is_rvalue_reference</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If T is an rvalue reference type
+ then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ <span class="bold"><strong>C++ Standard Reference:</strong></span> 3.9.2 and 8.3.2.
+ </p>
+<p>
+ <span class="bold"><strong>Compiler Compatibility:</strong></span> If the compiler
+ does not support partial-specialization of class templates, then this template
+ may report the wrong result for function types, and for types that are both
+ const and volatile qualified.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">is_rvalue_reference</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_rvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&amp;&amp;&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_rvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;&amp;&gt;::</span><span class="identifier">type</span></code>
+ is the type <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_rvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="keyword">const</span><span class="special">&amp;&gt;::</span><span class="identifier">type</span></code>
+ is the type <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_rvalue_reference</span><span class="special">&lt;</span><span class="keyword">int</span> <span class="special">(&amp;&amp;)(</span><span class="keyword">long</span><span class="special">)&gt;::</span><span class="identifier">value</span></code> is an integral constant expression
+ that evaluates to <span class="emphasis"><em>true</em></span> (the argument in this case
+ is an rvalue reference to a function).
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_rvalue_reference</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_same.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,18 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="is_reference.html" title="is_reference">
+<link rel="prev" href="is_rvalue_reference.html" title="is_rvalue_reference">
 <link rel="next" href="is_scalar.html" title="is_scalar">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_scalar.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_rvalue_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_scalar.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_same"></a><a class="link" href="is_same.html" title="is_same"> is_same</a>
+<a name="boost_typetraits.reference.is_same"></a><a class="link" href="is_same.html" title="is_same">is_same</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">U</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_same</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -77,7 +77,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_scalar.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_rvalue_reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_scalar.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_scalar"></a><a class="link" href="is_scalar.html" title="is_scalar"> is_scalar</a>
+<a name="boost_typetraits.reference.is_scalar"></a><a class="link" href="is_scalar.html" title="is_scalar">is_scalar</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_scalar</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_signed"></a><a class="link" href="is_signed.html" title="is_signed"> is_signed</a>
+<a name="boost_typetraits.reference.is_signed"></a><a class="link" href="is_signed.html" title="is_signed">is_signed</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_signed</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_stateless"></a><a class="link" href="is_stateless.html" title="is_stateless"> is_stateless</a>
+<a name="boost_typetraits.reference.is_stateless"></a><a class="link" href="is_stateless.html" title="is_stateless">is_stateless</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_stateless</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_union"></a><a class="link" href="is_union.html" title="is_union"> is_union</a>
+<a name="boost_typetraits.reference.is_union"></a><a class="link" href="is_union.html" title="is_union">is_union</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_union</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="is_union.html" title="is_union">
-<link rel="next" href="is_void.html" title="is_void">
+<link rel="next" href="is_virtual_base_of.html" title="is_virtual_base_of">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_union.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_void.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_union.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_virtual_base_of.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_unsigned"></a><a class="link" href="is_unsigned.html" title="is_unsigned"> is_unsigned</a>
+<a name="boost_typetraits.reference.is_unsigned"></a><a class="link" href="is_unsigned.html" title="is_unsigned">is_unsigned</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_unsigned</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -81,7 +81,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_union.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_void.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_union.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_virtual_base_of.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_virtual_base_of.html
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/html/boost_typetraits/reference/is_virtual_base_of.html 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,110 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_virtual_base_of</title>
+<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
+<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
+<link rel="up" href="../reference.html" title="Alphabetical Reference">
+<link rel="prev" href="is_unsigned.html" title="is_unsigned">
+<link rel="next" href="is_void.html" title="is_void">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_unsigned.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_void.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_typetraits.reference.is_virtual_base_of"></a><a class="link" href="is_virtual_base_of.html" title="is_virtual_base_of">is_virtual_base_of</a>
+</h3></div></div></div>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Base</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Derived</span><span class="special">&gt;</span>
+<span class="keyword">struct</span> <span class="identifier">is_virtual_base_of</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
+</pre>
+<p>
+ <span class="bold"><strong>Inherits:</strong></span> If Base is a virtual base class
+ of type Derived then inherits from <a class="link" href="integral_constant.html" title="integral_constant">true_type</a>,
+ otherwise inherits from <a class="link" href="integral_constant.html" title="integral_constant">false_type</a>.
+ </p>
+<p>
+ Types <code class="computeroutput"><span class="identifier">Base</span></code> and <code class="computeroutput"><span class="identifier">Derived</span></code> must not be incomplete types.
+ </p>
+<p>
+ <span class="bold"><strong>C++ Standard Reference:</strong></span> 10.
+ </p>
+<p>
+ <span class="bold"><strong>Header:</strong></span> <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">is_virtual_base_of</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
+ 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>
+<p>
+ <span class="bold"><strong>Compiler Compatibility:</strong></span> this trait also
+ requires a working <a class="link" href="is_base_of.html" title="is_base_of">is_base_of</a>
+ trait.
+ </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+ There are a small number of cases where it's simply not possible for this
+ trait to work, and where attempting to instantiate the trait will cause
+ compiler errors (see bug report #3730).
+ Further more the issues may well be compiler specific. In this situation
+ the user should supply a full specialization of the trait to work around
+ the problem.
+ </p></td></tr>
+</table></div>
+<p>
+ <span class="bold"><strong>Examples:</strong></span>
+ </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ Given: <code class="computeroutput"> <span class="keyword">class</span> <span class="identifier">Base</span><span class="special">{};</span> <span class="keyword">class</span> <span class="identifier">Derived</span> <span class="special">:</span> <span class="keyword">public</span> <span class="keyword">virtual</span>
+ <span class="identifier">Base</span><span class="special">{};</span></code>
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">,</span> <span class="identifier">Derived</span><span class="special">&gt;</span></code>
+ inherits from <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">,</span> <span class="identifier">Derived</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the type <code class="computeroutput"><a class="link" href="integral_constant.html" title="integral_constant">true_type</a></code>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special">&lt;</span><span class="identifier">Base</span><span class="special">,</span> <span class="identifier">Derived</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant expression
+ that evaluates to <span class="emphasis"><em>true</em></span>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special">&lt;</span><span class="identifier">SomeClassType</span><span class="special">,</span>
+ <span class="identifier">SomeClassType</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant expression
+ that evaluates to <span class="emphasis"><em>true</em></span>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special">&lt;</span><span class="identifier">NotAClassType</span><span class="special">,</span>
+ <span class="identifier">NotAClassType</span><span class="special">&gt;::</span><span class="identifier">value</span></code> is an integral constant expression
+ that evaluates to <span class="emphasis"><em>false</em></span>.
+ </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+ <code class="computeroutput"><span class="identifier">is_virtual_base_of</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">U</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code>
+ is the type <code class="computeroutput"><span class="keyword">bool</span></code>.
+ </p></blockquote></div>
+</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, 2011 Adobe Systems Inc, David Abrahams,
+ Frederic 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>
+ 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>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_unsigned.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_void.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,18 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="is_unsigned.html" title="is_unsigned">
+<link rel="prev" href="is_virtual_base_of.html" title="is_virtual_base_of">
 <link rel="next" href="is_volatile.html" title="is_volatile">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_unsigned.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_volatile.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_virtual_base_of.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_volatile.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_void"></a><a class="link" href="is_void.html" title="is_void"> is_void</a>
+<a name="boost_typetraits.reference.is_void"></a><a class="link" href="is_void.html" title="is_void">is_void</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_void</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>
@@ -72,7 +72,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="is_unsigned.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_volatile.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="is_virtual_base_of.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_volatile.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.is_volatile"></a><a class="link" href="is_volatile.html" title="is_volatile"> is_volatile</a>
+<a name="boost_typetraits.reference.is_volatile"></a><a class="link" href="is_volatile.html" title="is_volatile">is_volatile</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">is_volatile</span> <span class="special">:</span> <span class="keyword">public</span> <em class="replaceable"><code><a class="link" href="integral_constant.html" title="integral_constant">true_type</a>-or-<a class="link" href="integral_constant.html" title="integral_constant">false_type</a></code></em> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.make_signed"></a><a class="link" href="make_signed.html" title="make_signed"> make_signed</a>
+<a name="boost_typetraits.reference.make_signed"></a><a class="link" href="make_signed.html" title="make_signed">make_signed</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">make_signed</span>
@@ -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="id3415307"></a><p class="title"><b>Table&#160;1.18.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.make_signed.examples"></a><p class="title"><b>Table&#160;1.22.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="make_signed.html" title="make_signed">
-<link rel="next" href="member_object.html" title="member_object">
+<link rel="next" href="promote.html" title="promote">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="make_signed.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="member_object.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="make_signed.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="promote.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.make_unsigned"></a><a class="link" href="make_unsigned.html" title="make_unsigned"> make_unsigned</a>
+<a name="boost_typetraits.reference.make_unsigned"></a><a class="link" href="make_unsigned.html" title="make_unsigned">make_unsigned</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">make_unsigned</span>
@@ -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="id3415887"></a><p class="title"><b>Table&#160;1.19.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.make_unsigned.examples"></a><p class="title"><b>Table&#160;1.23.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -149,7 +149,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="make_signed.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="member_object.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="make_signed.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="promote.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,18 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="member_object.html" title="member_object">
+<link rel="prev" href="make_unsigned.html" title="make_unsigned">
 <link rel="next" href="rank.html" title="rank">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="member_object.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="rank.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="make_unsigned.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="rank.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.promote"></a><a class="link" href="promote.html" title="promote"> promote</a>
+<a name="boost_typetraits.reference.promote"></a><a class="link" href="promote.html" title="promote">promote</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">promote</span>
@@ -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="id3417251"></a><p class="title"><b>Table&#160;1.21.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.promote.examples"></a><p class="title"><b>Table&#160;1.24.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -118,7 +118,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="member_object.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="rank.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="make_unsigned.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="rank.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.rank"></a><a class="link" href="rank.html" title="rank"> rank</a>
+<a name="boost_typetraits.reference.rank"></a><a class="link" href="rank.html" title="rank">rank</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">rank</span> <span class="special">:</span> <span class="keyword">public</span> <a class="link" href="integral_constant.html" title="integral_constant">integral_constant</a><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">,</span> <span class="identifier">RANK</span><span class="special">(</span><span class="identifier">T</span><span class="special">)&gt;</span> <span class="special">{};</span>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.remove_all_extents"></a><a class="link" href="remove_all_extents.html" title="remove_all_extents"> remove_all_extents</a>
+<a name="boost_typetraits.reference.remove_all_extents"></a><a class="link" href="remove_all_extents.html" title="remove_all_extents">remove_all_extents</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_all_extents</span>
@@ -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="id3418538"></a><p class="title"><b>Table&#160;1.22.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.remove_all_extents.examples"></a><p class="title"><b>Table&#160;1.25.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.remove_const"></a><a class="link" href="remove_const.html" title="remove_const"> remove_const</a>
+<a name="boost_typetraits.reference.remove_const"></a><a class="link" href="remove_const.html" title="remove_const">remove_const</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_const</span>
@@ -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="id3419200"></a><p class="title"><b>Table&#160;1.23.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.remove_const.examples"></a><p class="title"><b>Table&#160;1.26.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.remove_cv"></a><a class="link" href="remove_cv.html" title="remove_cv"> remove_cv</a>
+<a name="boost_typetraits.reference.remove_cv"></a><a class="link" href="remove_cv.html" title="remove_cv">remove_cv</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_cv</span>
@@ -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="id3419845"></a><p class="title"><b>Table&#160;1.24.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.remove_cv.examples"></a><p class="title"><b>Table&#160;1.27.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.remove_extent"></a><a class="link" href="remove_extent.html" title="remove_extent"> remove_extent</a>
+<a name="boost_typetraits.reference.remove_extent"></a><a class="link" href="remove_extent.html" title="remove_extent">remove_extent</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_extent</span>
@@ -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="id3420491"></a><p class="title"><b>Table&#160;1.25.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.remove_extent.examples"></a><p class="title"><b>Table&#160;1.28.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="remove_extent.html" title="remove_extent">
-<link rel="next" href="remove_member_pointer.html" title="remove_member_pointer">
+<link rel="next" href="remove_reference.html" title="remove_reference">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="remove_extent.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="remove_member_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="remove_extent.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="remove_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.remove_pointer"></a><a class="link" href="remove_pointer.html" title="remove_pointer"> remove_pointer</a>
+<a name="boost_typetraits.reference.remove_pointer"></a><a class="link" href="remove_pointer.html" title="remove_pointer">remove_pointer</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_pointer</span>
@@ -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="id3421167"></a><p class="title"><b>Table&#160;1.26.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.remove_pointer.examples"></a><p class="title"><b>Table&#160;1.29.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -146,7 +146,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="remove_extent.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="remove_member_pointer.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="remove_extent.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="remove_reference.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,18 +6,18 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
-<link rel="prev" href="remove_member_pointer.html" title="remove_member_pointer">
+<link rel="prev" href="remove_pointer.html" title="remove_pointer">
 <link rel="next" href="remove_volatile.html" title="remove_volatile">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="remove_member_pointer.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="remove_volatile.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="remove_pointer.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="remove_volatile.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.remove_reference"></a><a class="link" href="remove_reference.html" title="remove_reference"> remove_reference</a>
+<a name="boost_typetraits.reference.remove_reference"></a><a class="link" href="remove_reference.html" title="remove_reference">remove_reference</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_reference</span>
@@ -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="id3422549"></a><p class="title"><b>Table&#160;1.28.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.remove_reference.examples"></a><p class="title"><b>Table&#160;1.30.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>
@@ -133,7 +133,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="remove_member_pointer.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="remove_volatile.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="remove_pointer.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="remove_volatile.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.remove_volatile"></a><a class="link" href="remove_volatile.html" title="remove_volatile"> remove_volatile</a>
+<a name="boost_typetraits.reference.remove_volatile"></a><a class="link" href="remove_volatile.html" title="remove_volatile">remove_volatile</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">remove_volatile</span>
@@ -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="id3423104"></a><p class="title"><b>Table&#160;1.29.&#160;Examples</b></p>
+<a name="boost_typetraits.reference.remove_volatile.examples"></a><p class="title"><b>Table&#160;1.31.&#160;Examples</b></p>
 <div class="table-contents"><table class="table" summary="Examples">
 <colgroup>
 <col>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -7,17 +7,17 @@
 <link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Boost.TypeTraits">
 <link rel="up" href="../reference.html" title="Alphabetical Reference">
 <link rel="prev" href="remove_volatile.html" title="remove_volatile">
-<link rel="next" href="../credits.html" title="Credits">
+<link rel="next" href="../history.html" title="History">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
 <table cellpadding="2" width="100%"><tr><td valign="top"></td></tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="remove_volatile.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../credits.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="remove_volatile.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../history.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_typetraits.reference.type_with_alignment"></a><a class="link" href="type_with_alignment.html" title="type_with_alignment"> type_with_alignment</a>
+<a name="boost_typetraits.reference.type_with_alignment"></a><a class="link" href="type_with_alignment.html" title="type_with_alignment">type_with_alignment</a>
 </h3></div></div></div>
 <pre class="programlisting"><span class="keyword">template</span> <span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">Align</span><span class="special">&gt;</span>
 <span class="keyword">struct</span> <span class="identifier">type_with_alignment</span>
@@ -49,7 +49,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="remove_volatile.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../credits.html"><img src="../../images/next.png" alt="Next"></a>
+<a accesskey="p" href="remove_volatile.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="../history.html"><img src="../../images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -17,7 +17,7 @@
 </div>
 <div class="section">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_typetraits.user_defined"></a><a class="link" href="user_defined.html" title="User Defined Specializations"> User Defined Specializations</a>
+<a name="boost_typetraits.user_defined"></a><a class="link" href="user_defined.html" title="User Defined Specializations">User Defined Specializations</a>
 </h2></div></div></div>
 <p>
       Occationally the end user may need to provide their own specialization for

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -24,7 +24,7 @@
       Ottosen, Roman Perepelitsa, Robert Ramey, Jeremy Siek, Robert Stewart and Steven
       Watanabe</p></div>
 <div><div class="legalnotice">
-<a name="id3294202"></a><p>
+<a name="id3153094"></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>
@@ -33,183 +33,173 @@
 <div class="toc">
 <p><b>Table of Contents</b></p>
 <dl>
-<dt><span class="section"> Introduction</span></dt>
-<dt><span class="section"> Background and Tutorial</span></dt>
-<dt><span class="section"> Type Traits by Category</span></dt>
+<dt><span class="section">Introduction</span></dt>
+<dt><span class="section">Background and Tutorial</span></dt>
+<dt><span class="section">Type Traits by Category</span></dt>
 <dd><dl>
-<dt><span class="section"><a href="boost_typetraits/category/value_traits.html"> Type Traits
- that Describe the Properties of a Type</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/category/value_traits.html">Type Traits that
+ Describe the Properties of a Type</a></span></dt>
 <dd><dl>
-<dt><span class="section"><a href="boost_typetraits/category/value_traits/primary.html"> Categorizing
+<dt><span class="section"><a href="boost_typetraits/category/value_traits/primary.html">Categorizing
         a Type</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/category/value_traits/properties.html">
- General Type Properties</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/category/value_traits/relate.html"> Relationships
+<dt><span class="section"><a href="boost_typetraits/category/value_traits/properties.html">General
+ Type Properties</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/category/value_traits/relate.html">Relationships
         Between Two Types</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/category/value_traits/operators.html">
- Operator Type Traits</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/category/value_traits/operators.html">Operator
+ Type Traits</a></span></dt>
 </dl></dd>
-<dt><span class="section"><a href="boost_typetraits/category/transform.html"> Type Traits that
+<dt><span class="section"><a href="boost_typetraits/category/transform.html">Type Traits that
       Transform One Type to Another</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/category/alignment.html"> Synthesizing Types
+<dt><span class="section"><a href="boost_typetraits/category/alignment.html">Synthesizing Types
       with Specific Alignments</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/category/function.html"> Decomposing Function
+<dt><span class="section"><a href="boost_typetraits/category/function.html">Decomposing Function
       Types</a></span></dt>
 </dl></dd>
-<dt><span class="section"> User Defined Specializations</span></dt>
-<dt><span class="section"> Support for Compiler Intrinsics</span></dt>
-<dt><span class="section"> MPL Interoperability</span></dt>
-<dt><span class="section"> Examples</span></dt>
+<dt><span class="section">User Defined Specializations</span></dt>
+<dt><span class="section">Support for Compiler Intrinsics</span></dt>
+<dt><span class="section">MPL Interoperability</span></dt>
+<dt><span class="section">Examples</span></dt>
 <dd><dl>
-<dt><span class="section"><a href="boost_typetraits/examples/copy.html"> An Optimized Version
+<dt><span class="section"><a href="boost_typetraits/examples/copy.html">An Optimized Version
       of std::copy</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/examples/fill.html"> An Optimised Version
+<dt><span class="section"><a href="boost_typetraits/examples/fill.html">An Optimised Version
       of std::fill</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/examples/destruct.html"> An Example that
- Omits Destructor Calls For Types with Trivial Destructors</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/examples/iter.html"> An improved Version
- of std::iter_swap</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/examples/to_double.html"> Convert Numeric
+<dt><span class="section"><a href="boost_typetraits/examples/destruct.html">An Example that Omits
+ Destructor Calls For Types with Trivial Destructors</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/examples/iter.html">An improved Version of
+ std::iter_swap</a></span></dt>
+<dt><span class="section"><a href="boost_typetraits/examples/to_double.html">Convert Numeric
       Types and Enums to double</a></span></dt>
 </dl></dd>
-<dt><span class="section"> Alphabetical Reference</span></dt>
+<dt><span class="section">Alphabetical Reference</span></dt>
 <dd><dl>
-<dt><span class="section"> add_const</span></dt>
-<dt><span class="section"> add_cv</span></dt>
-<dt><span class="section"> add_pointer</span></dt>
-<dt><span class="section"> add_reference</span></dt>
-<dt><span class="section"> add_volatile</span></dt>
-<dt><span class="section"> aligned_storage</span></dt>
-<dt><span class="section"> alignment_of</span></dt>
-<dt><span class="section"> can_call_addition</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_addition_assignment.html">
- can_call_addition_assignment</a></span></dt>
-<dt><span class="section"> can_call_and</span></dt>
-<dt><span class="section"> can_call_bitwise_and</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_bitwise_and_assignment.html">
- can_call_bitwise_and_assignment</a></span></dt>
-<dt><span class="section"> can_call_bitwise_or</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_bitwise_or_assignment.html">
- can_call_bitwise_or_assignment</a></span></dt>
-<dt><span class="section"> can_call_bitwise_xor</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_bitwise_xor_assignment.html">
- can_call_bitwise_xor_assignment</a></span></dt>
-<dt><span class="section"> can_call_complement</span></dt>
-<dt><span class="section"> can_call_dereference</span></dt>
-<dt><span class="section"> can_call_division</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_division_assignment.html">
- can_call_division_assignment</a></span></dt>
-<dt><span class="section"> can_call_equal</span></dt>
-<dt><span class="section"> can_call_greater</span></dt>
-<dt><span class="section"> can_call_greater_equal</span></dt>
-<dt><span class="section"> can_call_left_shift</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_left_shift_assignment.html">
- can_call_left_shift_assignment</a></span></dt>
-<dt><span class="section"> can_call_less</span></dt>
-<dt><span class="section"> can_call_less_equal</span></dt>
-<dt><span class="section"> can_call_modulus</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_modulus_assignment.html">
- can_call_modulus_assignment</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_multiplication.html">
- can_call_multiplication</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_multiplication_assignment.html">
- can_call_multiplication_assignment</a></span></dt>
-<dt><span class="section"> can_call_not</span></dt>
-<dt><span class="section"> can_call_not_equal</span></dt>
-<dt><span class="section"> can_call_or</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_post_decrement.html">
- can_call_post_decrement</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_post_increment.html">
- can_call_post_increment</a></span></dt>
-<dt><span class="section"> can_call_pre_decrement</span></dt>
-<dt><span class="section"> can_call_pre_increment</span></dt>
-<dt><span class="section"> can_call_right_shift</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_right_shift_assignment.html">
- can_call_right_shift_assignment</a></span></dt>
-<dt><span class="section"> can_call_subtraction</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/can_call_subtraction_assignment.html">
- can_call_subtraction_assignment</a></span></dt>
-<dt><span class="section"> can_call_unary_minus</span></dt>
-<dt><span class="section"> can_call_unary_plus</span></dt>
-<dt><span class="section"> decay</span></dt>
-<dt><span class="section"> extent</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/floating_point_promotion.html">
- floating_point_promotion</a></span></dt>
-<dt><span class="section"> function_traits</span></dt>
-<dt><span class="section"> has_nothrow_assign</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/has_nothrow_constructor.html">
- has_nothrow_constructor</a></span></dt>
-<dt><span class="section"> has_nothrow_copy</span></dt>
-<dt><span class="section"> has_nothrow_copy_constructor</span></dt>
-<dt><span class="section"> has_nothrow_default_constructor</span></dt>
-<dt><span class="section"> has_trivial_assign</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/has_trivial_constructor.html">
- has_trivial_constructor</a></span></dt>
-<dt><span class="section"> has_trivial_copy</span></dt>
-<dt><span class="section"> has_trivial_copy_constructor</span></dt>
-<dt><span class="section"> has_trivial_default_constructor</span></dt>
-<dt><span class="section"> has_trivial_destructor</span></dt>
-<dt><span class="section"> has_virtual_destructor</span></dt>
-<dt><span class="section"> integral_constant</span></dt>
-<dt><span class="section"> integral_promotion</span></dt>
-<dt><span class="section"> is_abstract</span></dt>
-<dt><span class="section"> is_arithmetic</span></dt>
-<dt><span class="section"> is_array</span></dt>
-<dt><span class="section"> is_base_of</span></dt>
-<dt><span class="section"> is_class</span></dt>
-<dt><span class="section"> is_complex</span></dt>
-<dt><span class="section"> is_compound</span></dt>
-<dt><span class="section"> is_const</span></dt>
-<dt><span class="section"> is_convertible</span></dt>
-<dt><span class="section"> is_empty</span></dt>
-<dt><span class="section"> is_enum</span></dt>
-<dt><span class="section"> is_floating_point</span></dt>
-<dt><span class="section"> is_function</span></dt>
-<dt><span class="section"> is_fundamental</span></dt>
-<dt><span class="section"> is_integral</span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/is_member_function_pointer.html">
- is_member_function_pointer</a></span></dt>
-<dt><span class="section"><a href="boost_typetraits/reference/is_member_object_pointer.html">
- is_member_object_pointer</a></span></dt>
-<dt><span class="section"> is_member_pointer</span></dt>
-<dt><span class="section"> is_object</span></dt>
-<dt><span class="section"> is_pod</span></dt>
-<dt><span class="section"> is_pointer</span></dt>
-<dt><span class="section"> is_polymorphic</span></dt>
-<dt><span class="section"> is_reference</span></dt>
-<dt><span class="section"> is_same</span></dt>
-<dt><span class="section"> is_scalar</span></dt>
-<dt><span class="section"> is_signed</span></dt>
-<dt><span class="section"> is_stateless</span></dt>
-<dt><span class="section"> is_union</span></dt>
-<dt><span class="section"> is_unsigned</span></dt>
-<dt><span class="section"> is_void</span></dt>
-<dt><span class="section"> is_volatile</span></dt>
-<dt><span class="section"> make_signed</span></dt>
-<dt><span class="section"> make_unsigned</span></dt>
-<dt><span class="section"> member_object</span></dt>
-<dt><span class="section"> promote</span></dt>
-<dt><span class="section"> rank</span></dt>
-<dt><span class="section"> remove_all_extents</span></dt>
-<dt><span class="section"> remove_const</span></dt>
-<dt><span class="section"> remove_cv</span></dt>
-<dt><span class="section"> remove_extent</span></dt>
-<dt><span class="section"> remove_pointer</span></dt>
-<dt><span class="section"> remove_member_pointer</span></dt>
-<dt><span class="section"> remove_reference</span></dt>
-<dt><span class="section"> remove_volatile</span></dt>
-<dt><span class="section"> type_with_alignment</span></dt>
+<dt><span class="section">add_const</span></dt>
+<dt><span class="section">add_cv</span></dt>
+<dt><span class="section">add_lvalue_reference</span></dt>
+<dt><span class="section">add_pointer</span></dt>
+<dt><span class="section">add_reference</span></dt>
+<dt><span class="section">add_rvalue_reference</span></dt>
+<dt><span class="section">add_volatile</span></dt>
+<dt><span class="section">aligned_storage</span></dt>
+<dt><span class="section">alignment_of</span></dt>
+<dt><span class="section">conditional</span></dt>
+<dt><span class="section">common_type</span></dt>
+<dt><span class="section">decay</span></dt>
+<dt><span class="section">extent</span></dt>
+<dt><span class="section">floating_point_promotion</span></dt>
+<dt><span class="section">function_traits</span></dt>
+<dt><span class="section">has_bit_and</span></dt>
+<dt><span class="section">has_bit_and_assign</span></dt>
+<dt><span class="section">has_bit_or</span></dt>
+<dt><span class="section">has_bit_or_assign</span></dt>
+<dt><span class="section">has_bit_xor</span></dt>
+<dt><span class="section">has_bit_xor_assign</span></dt>
+<dt><span class="section">has_complement</span></dt>
+<dt><span class="section">has_dereference</span></dt>
+<dt><span class="section">has_divides</span></dt>
+<dt><span class="section">has_divides_assign</span></dt>
+<dt><span class="section">has_equal_to</span></dt>
+<dt><span class="section">has_greater</span></dt>
+<dt><span class="section">has_greater_equal</span></dt>
+<dt><span class="section">has_left_shift</span></dt>
+<dt><span class="section">has_left_shift_assign</span></dt>
+<dt><span class="section">has_less</span></dt>
+<dt><span class="section">has_less_equal</span></dt>
+<dt><span class="section">has_logical_and</span></dt>
+<dt><span class="section">has_logical_not</span></dt>
+<dt><span class="section">has_logical_or</span></dt>
+<dt><span class="section">has_minus</span></dt>
+<dt><span class="section">has_minus_assign</span></dt>
+<dt><span class="section">has_modulus</span></dt>
+<dt><span class="section">has_modulus_assign</span></dt>
+<dt><span class="section">has_multiplies</span></dt>
+<dt><span class="section">has_multiplies_assign</span></dt>
+<dt><span class="section">has_negate</span></dt>
+<dt><span class="section">has_new_operator</span></dt>
+<dt><span class="section">has_not_equal_to</span></dt>
+<dt><span class="section">has_nothrow_assign</span></dt>
+<dt><span class="section">has_nothrow_constructor</span></dt>
+<dt><span class="section">has_nothrow_copy</span></dt>
+<dt><span class="section">has_nothrow_copy_constructor</span></dt>
+<dt><span class="section">has_nothrow_default_constructor</span></dt>
+<dt><span class="section">has_plus</span></dt>
+<dt><span class="section">has_plus_assign</span></dt>
+<dt><span class="section">has_post_decrement</span></dt>
+<dt><span class="section">has_post_increment</span></dt>
+<dt><span class="section">has_pre_decrement</span></dt>
+<dt><span class="section">has_pre_increment</span></dt>
+<dt><span class="section">has_right_shift</span></dt>
+<dt><span class="section">has_right_shift_assign</span></dt>
+<dt><span class="section">has_trivial_assign</span></dt>
+<dt><span class="section">has_trivial_constructor</span></dt>
+<dt><span class="section">has_trivial_copy</span></dt>
+<dt><span class="section">has_trivial_copy_constructor</span></dt>
+<dt><span class="section">has_trivial_default_constructor</span></dt>
+<dt><span class="section">has_trivial_destructor</span></dt>
+<dt><span class="section">has_unary_minus</span></dt>
+<dt><span class="section">has_unary_plus</span></dt>
+<dt><span class="section">has_virtual_destructor</span></dt>
+<dt><span class="section">integral_constant</span></dt>
+<dt><span class="section">integral_promotion</span></dt>
+<dt><span class="section">is_abstract</span></dt>
+<dt><span class="section">is_arithmetic</span></dt>
+<dt><span class="section">is_array</span></dt>
+<dt><span class="section">is_base_of</span></dt>
+<dt><span class="section">is_class</span></dt>
+<dt><span class="section">is_complex</span></dt>
+<dt><span class="section">is_compound</span></dt>
+<dt><span class="section">is_const</span></dt>
+<dt><span class="section">is_convertible</span></dt>
+<dt><span class="section">is_empty</span></dt>
+<dt><span class="section">is_enum</span></dt>
+<dt><span class="section">is_floating_point</span></dt>
+<dt><span class="section">is_function</span></dt>
+<dt><span class="section">is_fundamental</span></dt>
+<dt><span class="section">is_integral</span></dt>
+<dt><span class="section">is_lvalue_reference</span></dt>
+<dt><span class="section">is_member_function_pointer</span></dt>
+<dt><span class="section">is_member_object_pointer</span></dt>
+<dt><span class="section">is_member_pointer</span></dt>
+<dt><span class="section">is_object</span></dt>
+<dt><span class="section">is_pod</span></dt>
+<dt><span class="section">is_pointer</span></dt>
+<dt><span class="section">is_polymorphic</span></dt>
+<dt><span class="section">is_reference</span></dt>
+<dt><span class="section">is_rvalue_reference</span></dt>
+<dt><span class="section">is_same</span></dt>
+<dt><span class="section">is_scalar</span></dt>
+<dt><span class="section">is_signed</span></dt>
+<dt><span class="section">is_stateless</span></dt>
+<dt><span class="section">is_union</span></dt>
+<dt><span class="section">is_unsigned</span></dt>
+<dt><span class="section">is_virtual_base_of</span></dt>
+<dt><span class="section">is_void</span></dt>
+<dt><span class="section">is_volatile</span></dt>
+<dt><span class="section">make_signed</span></dt>
+<dt><span class="section">make_unsigned</span></dt>
+<dt><span class="section">promote</span></dt>
+<dt><span class="section">rank</span></dt>
+<dt><span class="section">remove_all_extents</span></dt>
+<dt><span class="section">remove_const</span></dt>
+<dt><span class="section">remove_cv</span></dt>
+<dt><span class="section">remove_extent</span></dt>
+<dt><span class="section">remove_pointer</span></dt>
+<dt><span class="section">remove_reference</span></dt>
+<dt><span class="section">remove_volatile</span></dt>
+<dt><span class="section">type_with_alignment</span></dt>
 </dl></dd>
-<dt><span class="section"> Credits</span></dt>
+<dt><span class="section">History</span></dt>
+<dt><span class="section">Credits</span></dt>
 </dl>
 </div>
 <p>
- A printer-friendly <a href="http://svn.boost.org/svn/boost/sandbox/pdf/type_traits/release/type_traits.pdf" target="_top">PDF
+ A printer-friendly <a href="http://sourceforge.net/projects/boost/files/boost-docs/" target="_top">PDF
     version of this manual is also available</a>.
   </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: February 26, 2011 at 22:36:25 +0100</small></p></td>
+<td align="left"><p><small>Last revised: January 01, 2011 at 13:00:16 -0500</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>

Added: sandbox/type_traits/libs/type_traits/doc/is_lvalue_reference.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/is_lvalue_reference.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,40 @@
+[/
+ Copyright 2010 John Maddock.
+ 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).
+]
+
+[section:is_lvalue_reference is_lvalue_reference]
+ template <class T>
+ struct is_lvalue_reference : public __tof {};
+
+__inherit If T is an lvalue reference type
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+__std_ref 3.9.2 and 8.3.2.
+
+__compat If the compiler does not
+support partial-specialization of class templates,
+then this template may report the wrong result for function types,
+and for types that are both const and volatile qualified.
+
+__header ` #include <boost/type_traits/is_lvalue_reference.hpp>` or ` #include <boost/type_traits.hpp>`
+
+__examples
+
+[:`is_lvalue_reference<int&>` inherits from `__true_type`.]
+
+[:`is_lvalue_reference<int const&>::type` is the type `__true_type`.]
+
+[:`is_lvalue_reference<int const&&>::type` is the type `__false_type`.]
+
+[:`is_lvalue_reference<int (&)(long)>::value` is an integral constant
+expression that evaluates to /true/ (the argument in this case is
+a reference to a function).]
+
+[:`is_lvalue_reference<T>::value_type` is the type `bool`.]
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/is_rvalue_reference.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/is_rvalue_reference.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,40 @@
+[/
+ Copyright 2010 John Maddock.
+ 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).
+]
+
+[section:is_rvalue_reference is_rvalue_reference]
+ template <class T>
+ struct is_rvalue_reference : public __tof {};
+
+__inherit If T is an rvalue reference type
+then inherits from __true_type,
+otherwise inherits from __false_type.
+
+__std_ref 3.9.2 and 8.3.2.
+
+__compat If the compiler does not
+support partial-specialization of class templates,
+then this template may report the wrong result for function types,
+and for types that are both const and volatile qualified.
+
+__header ` #include <boost/type_traits/is_rvalue_reference.hpp>` or ` #include <boost/type_traits.hpp>`
+
+__examples
+
+[:`is_rvalue_reference<int&&>` inherits from `__true_type`.]
+
+[:`is_rvalue_reference<int const&&>::type` is the type `__true_type`.]
+
+[:`is_rvalue_reference<int const&>::type` is the type `__false_type`.]
+
+[:`is_rvalue_reference<int (&&)(long)>::value` is an integral constant
+expression that evaluates to /true/ (the argument in this case is
+an rvalue reference to a function).]
+
+[:`is_rvalue_reference<T>::value_type` is the type `bool`.]
+
+[endsect]
+

Added: sandbox/type_traits/libs/type_traits/doc/is_virtual_base_of.qbk
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/doc/is_virtual_base_of.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,50 @@
+[/
+ Copyright 2009 John Maddock.
+ 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).
+]
+
+[section:is_virtual_base_of is_virtual_base_of]
+ template <class Base, class Derived>
+ struct is_virtual_base_of : public __tof {};
+
+__inherit If Base is a virtual base class of type Derived then inherits from __true_type,
+otherwise inherits from __false_type.
+
+Types `Base` and `Derived` must not be incomplete types.
+
+__std_ref 10.
+
+__header ` #include <boost/type_traits/is_virtual_base_of.hpp>` or ` #include <boost/type_traits.hpp>`
+
+__compat this trait also requires a working __is_base_of trait.
+
+[note
+There are a small number of cases where it's simply not possible for this trait to work, and
+where attempting to instantiate the trait will cause compiler errors (see bug report
+[@https://svn.boost.org/trac/boost/ticket/3730 #3730]). Further more the issues may well
+be compiler specific. In this situation the user should supply a full specialization of
+the trait to work around the problem.]
+
+__examples
+
+[:Given: ` class Base{}; class Derived : public virtual Base{};` ]
+
+[:`is_virtual_base_of<Base, Derived>` inherits from `__true_type`.]
+
+[:`is_virtual_base_of<Base, Derived>::type` is the type `__true_type`.]
+
+[:`is_virtual_base_of<Base, Derived>::value` is an integral constant
+expression that evaluates to /true/.]
+
+[:`is_virtual_base_of<SomeClassType, SomeClassType>::value` is an integral constant
+expression that evaluates to /true/.]
+
+[:`is_virtual_base_of<NotAClassType, NotAClassType>::value` is an integral constant
+expression that evaluates to /false/.]
+
+[:`is_virtual_base_of<T, U>::value_type` is the type `bool`.]
+
+[endsect]
+

Modified: sandbox/type_traits/libs/type_traits/doc/operators.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/operators.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/operators.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -14,31 +14,112 @@
 [heading Introduction]
 
 These traits are all /value traits/ inheriting from __integral_constant
-and providing a simple `true` or `false` boolean value which reflects the fact
-that given types can or not be used with given operators.
+and providing a simple `true` or `false` boolean `value` which reflects the fact
+that given types can or cannot be used with given operators.
 
-For example, `can_call_addition<int, double>::value` is a `bool`
+For example, `has_plus<int, double>::value` is a `bool`
 which value is `true` because it is possible to add a `double` to an `int` like
 in the following code:
 ``
 int i;
 double d;
-d+i;
+i+d;
 ``
-It is also possible to know if the result of the operator is convertible or not
-to a given type:
+It is also possible to know if the result of the operator can be used as function argument
+of a given type.
+For example, `has_plus<int, double, float>::value` is `true`
+because it is possible to add a `double` to an `int` and
+the result (`double`) can be converted to a `float` argument like in the following code:
 ``
-can_call_addition<int, double, double>::value; // true: int+double is convertible to double
-can_call_addition<int, double, char*>::value; // false: int+double is not convertible to char*
-can_call_subtraction<int, double, bool>::value; // true: int<double is convertible to bool
+void f(float) { };
+int i;
+double d;
+f(i+d);
+``
+
+[heading Example of application]
+
+These traits can be useful to optimize the code for types supporting given operations.
+For example a function `std::advance` that increases an iterator of a given number of steps
+could be implemented as follows:
+
+``
+#include <boost/type_traits/has_plus_assign.hpp>
+
+namespace detail {
+template < class Iterator, class Distance, bool has_plus_assign >
+struct advance_impl;
+
+// this is used if += exists (efficient)
+template < class Iterator, class Distance >
+struct advance_impl<Iterator, Distance, true> {
+ void operator()(Iterator &i, Distance n) {
+ i+=n;
+ }
+};
+
+// this is use if += does not exists (less efficient but cannot do better)
+template < class Iterator, class Distance >
+struct advance_impl<Iterator, Distance, false> {
+ void operator()(Iterator &i, Distance n) {
+ if (n>0) {
+ while (n--) ++i;
+ } else {
+ while (n++) --i;
+ }
+ }
+};
+} // namespace detail
+
+template < class Iterator, class Distance >
+inline void advance(Iterator &i, Distance n) {
+ detail::advance_impl< Iterator, Distance, ::boost::has_plus_assign<Iterator>::value >()(i, n);
+}
 ``
 
-The syntax for binary operators is the following:
+Then the compiler chooses the most efficient implementation according to the type's ability to perform `+=` operation:
+
 ``
-template __binary_temp can_call_op;
+#include <iostream>
+
+class with {
+ int m_i;
+ public:
+ with(int i=0) : m_i(i) { }
+ with &operator+=(int rhs) { m_i+=rhs; return *this; }
+ operator int const () { return m_i; }
+};
+
+class without {
+ int m_i;
+ public:
+ without(int i=0) : m_i(i) { }
+ without &operator++() { ++m_i; return *this; }
+ without &operator--() { --m_i; return *this; }
+ operator int const () { return m_i; }
+};
+
+int main() {
+ with i=0;
+ advance(i, 10); // uses +=
+ std::cout<<"with: "<<i<<'\n';
+ without j=0;
+ advance(j, 10); // uses ++
+ std::cout<<"without: "<<j<<'\n';
+ return 0;
+}
+``
+
+[heading Description]
+The syntax is the following:
+``
+template __prefix_temp has_op; // prefix operator
+template __postfix_temp has_op; // postfix operator
+template __binary_temp has_op; // binary operator
 ``
 where:
 
+* op represents the operator name
 * `Lhs` is the type used at the left hand side of `operator op`,
 * `Rhs` is the type used at the right hand side of `operator op`,
 * `Ret` is the type for which we want to know if the result of `operator op` can
@@ -53,110 +134,147 @@
 void f(Ret);
 Lhs lhs;
 Rhs rhs;
-f(lhs+rhs); // is valid if can_call_addition<Lhs, Rhs, Ret>::value==true
+f(lhs+rhs); // is valid if has_plus<Lhs, Rhs, Ret>::value==true
 ``
 If `Ret=void`, the return type is checked to be exactly `void`.
 
-Similarly, the syntax for postfix and prefix operators is the following:
-``
-template __prefix_temp can_call_prefixop;
-template __postfix_temp can_call_postfixop;
-``
-
 The following tables give the list of supported binary, prefix and postfix
 operators.
 
-[table Supported binary operators
+[table Supported prefix operators
    [[operator] [trait name]]
- [[`+`] [[link boost_typetraits.reference.can_call_addition `can_call_addition __binary_temp`]]]
- [[`-`] [[link boost_typetraits.reference.can_call_subtraction `can_call_subtraction __binary_temp`]]]
- [[`*`] [[link boost_typetraits.reference.can_call_multiplication `can_call_multiplication __binary_temp`]]]
- [[`/`] [[link boost_typetraits.reference.can_call_division `can_call_division __binary_temp`]]]
- [[`%`] [[link boost_typetraits.reference.can_call_modulus `can_call_modulus __binary_temp`]]]
- [[`+=`] [[link boost_typetraits.reference.can_call_addition_assignment `can_call_addition_assignment __binary_temp`]]]
- [[`-=`] [[link boost_typetraits.reference.can_call_subtraction_assignment `can_call_subtraction_assignment __binary_temp`]]]
- [[`*=`] [[link boost_typetraits.reference.can_call_multiplication_assignment `can_call_multiplication_assignment __binary_temp`]]]
- [[`/=`] [[link boost_typetraits.reference.can_call_division_assignment `can_call_division_assignment __binary_temp`]]]
- [[`%=`] [[link boost_typetraits.reference.can_call_modulus_assignment `can_call_modulus_assignment __binary_temp`]]]
- [[`&`] [[link boost_typetraits.reference.can_call_bitwise_and `can_call_bitwise_and __binary_temp`]]]
- [[`|`] [[link boost_typetraits.reference.can_call_bitwise_or `can_call_bitwise_or __binary_temp`]]]
- [[`^`] [[link boost_typetraits.reference.can_call_bitwise_xor `can_call_bitwise_xor __binary_temp`]]]
- [[`&=`] [[link boost_typetraits.reference.can_call_bitwise_and_assignment `can_call_bitwise_and_assignment __binary_temp`]]]
- [[`|=`] [[link boost_typetraits.reference.can_call_bitwise_or_assignment `can_call_bitwise_or_assignment __binary_temp`]]]
- [[`^=`] [[link boost_typetraits.reference.can_call_bitwise_xor_assignment `can_call_bitwise_xor_assignment __binary_temp`]]]
- [[`<<`] [[link boost_typetraits.reference.can_call_left_shift `can_call_left_shift __binary_temp`]]]
- [[`>>`] [[link boost_typetraits.reference.can_call_right_shift `can_call_right_shift __binary_temp`]]]
- [[`<<=`] [[link boost_typetraits.reference.can_call_left_shift_assignment `can_call_left_shift_assignment __binary_temp`]]]
- [[`>>=`] [[link boost_typetraits.reference.can_call_right_shift_assignment `can_call_right_shift_assignment __binary_temp`]]]
- [[`==`] [[link boost_typetraits.reference.can_call_equal `can_call_equal __binary_temp`]]]
- [[`!=`] [[link boost_typetraits.reference.can_call_not_equal `can_call_not_equal __binary_temp`]]]
- [[`<`] [[link boost_typetraits.reference.can_call_less `can_call_less __binary_temp`]]]
- [[`<=`] [[link boost_typetraits.reference.can_call_less_equal `can_call_less_equal __binary_temp`]]]
- [[`>`] [[link boost_typetraits.reference.can_call_greater `can_call_greater __binary_temp`]]]
- [[`>=`] [[link boost_typetraits.reference.can_call_greater_equal `can_call_greater_equal __binary_temp`]]]
- [[`&&`] [[link boost_typetraits.reference.can_call_and `can_call_and __binary_temp`]]]
- [[`||`] [[link boost_typetraits.reference.can_call_or `can_call_or __binary_temp`]]]
+ [[`!`] [[link boost_typetraits.reference.has_logical_not `has_logical_not`] __prefix_temp]]
+ [[`+`] [[link boost_typetraits.reference.has_unary_plus `has_unary_plus`]]]
+ [[`-`] [[link boost_typetraits.reference.has_unary_minus `has_unary_minus`] and [link boost_typetraits.reference.has_negate `has_negate`]]]
+ [[`~`] [[link boost_typetraits.reference.has_complement `has_complement`]]]
+ [[`*`] [[link boost_typetraits.reference.has_dereference `has_dereference`]]]
+ [[`++`] [[link boost_typetraits.reference.has_pre_increment `has_pre_increment`]]]
+ [[`--`] [[link boost_typetraits.reference.has_pre_decrement `has_pre_decrement`]]]
 ]
 
-[table Supported prefix operators
+[table Supported postfix operators
    [[operator] [trait name]]
- [[`!`] [[link boost_typetraits.reference.can_call_not `can_call_not __prefix_temp`]]]
- [[`+`] [[link boost_typetraits.reference.can_call_unary_plus `can_call_unary_plus __prefix_temp`]]]
- [[`-`] [[link boost_typetraits.reference.can_call_unary_minus `can_call_unary_minus __prefix_temp`]]]
- [[`~`] [[link boost_typetraits.reference.can_call_complement `can_call_complement __prefix_temp`]]]
- [[`*`] [[link boost_typetraits.reference.can_call_dereference `can_call_dereference __prefix_temp`]]]
- [[`++`] [[link boost_typetraits.reference.can_call_pre_increment `can_call_pre_increment __prefix_temp`]]]
- [[`--`] [[link boost_typetraits.reference.can_call_pre_decrement `can_call_pre_decrement __prefix_temp`]]]
+ [[`++`] [[link boost_typetraits.reference.has_post_increment `has_post_increment`] __postfix_temp]]
+ [[`--`] [[link boost_typetraits.reference.has_post_decrement `has_post_decrement`]]]
 ]
 
-[table Supported postfix operators
+[table Supported binary operators
    [[operator] [trait name]]
- [[`++`] [[link boost_typetraits.reference.can_call_post_increment `can_call_post_increment __postfix_temp`]]]
- [[`--`] [[link boost_typetraits.reference.can_call_post_decrement `can_call_post_decrement __postfix_temp`]]]
+ [[`+`] [[link boost_typetraits.reference.has_plus `has_plus`] __binary_temp]]
+ [[`-`] [[link boost_typetraits.reference.has_minus `has_minus`]]]
+ [[`*`] [[link boost_typetraits.reference.has_multiplies `has_multiplies`]]]
+ [[`/`] [[link boost_typetraits.reference.has_divides `has_divides`]]]
+ [[`%`] [[link boost_typetraits.reference.has_modulus `has_modulus`]]]
+ [[`+=`] [[link boost_typetraits.reference.has_plus_assign `has_plus_assign`]]]
+ [[`-=`] [[link boost_typetraits.reference.has_minus_assign `has_minus_assign`]]]
+ [[`*=`] [[link boost_typetraits.reference.has_multiplies_assign `has_multiplies_assign`]]]
+ [[`/=`] [[link boost_typetraits.reference.has_divides_assign `has_divides_assign`]]]
+ [[`%=`] [[link boost_typetraits.reference.has_modulus_assign `has_modulus_assign`]]]
+ [[`&`] [[link boost_typetraits.reference.has_bit_and `has_bit_and`]]]
+ [[`|`] [[link boost_typetraits.reference.has_bit_or `has_bit_or`]]]
+ [[`^`] [[link boost_typetraits.reference.has_bit_xor `has_bit_xor`]]]
+ [[`&=`] [[link boost_typetraits.reference.has_bit_and_assign `has_bit_and_assign`]]]
+ [[`|=`] [[link boost_typetraits.reference.has_bit_or_assign `has_bit_or_assign`]]]
+ [[`^=`] [[link boost_typetraits.reference.has_bit_xor_assign `has_bit_xor_assign`]]]
+ [[`<<`] [[link boost_typetraits.reference.has_left_shift `has_left_shift`]]]
+ [[`>>`] [[link boost_typetraits.reference.has_right_shift `has_right_shift`]]]
+ [[`<<=`] [[link boost_typetraits.reference.has_left_shift_assign `has_left_shift_assign`]]]
+ [[`>>=`] [[link boost_typetraits.reference.has_right_shift_assign `has_right_shift_assign`]]]
+ [[`==`] [[link boost_typetraits.reference.has_equal_to `has_equal_to`]]]
+ [[`!=`] [[link boost_typetraits.reference.has_not_equal_to `has_not_equal_to`]]]
+ [[`<`] [[link boost_typetraits.reference.has_less `has_less`]]]
+ [[`<=`] [[link boost_typetraits.reference.has_less_equal `has_less_equal`]]]
+ [[`>`] [[link boost_typetraits.reference.has_greater `has_greater`]]]
+ [[`>=`] [[link boost_typetraits.reference.has_greater_equal `has_greater_equal`]]]
+ [[`&&`] [[link boost_typetraits.reference.has_logical_and `has_logical_and`]]]
+ [[`||`] [[link boost_typetraits.reference.has_logical_or `has_logical_or`]]]
 ]
 
+The following operators are not supported because they could not be implemented using the same technique:
+`operator=`, `operator->`, `operator&`, `operator[]`, `operator,`, `operator()`, `operator new`.
+
+
+[heading cv qualifiers and references]
+
+A reference sign `&` in the operator argument is ignored so that `has_plus< int&, double& >::value==has_plus< int, double >::value`.
+This has been chosen because if the following code works (does not work):
+``
+int i;
+double d;
+i+d;
+``
+the following code also works (does not work):
+``
+int &ir=i;
+double &dr=d;
+ir+dr;
+``
+
+It was not possible to handle properly the `volatile` qualifier so that any construct using this qualifier has undefined behavior.
+
+As a help, the following tables give the necessary conditions over each trait template argument for the trait `value` to be `true`.
+They are non sufficient conditions because the conditions must be `true` for all arguments and return type for `value` to be `true`.
+
+[table necessary and non sufficient condition on operator argument for value to be true
+ [[operator declaration] [`has_op< void >`] [`has_op< Arg >` and `has_op< Arg& >`] [`has_op< Arg const >` and `has_op< Arg const& >`]]
+ [[`operator`@`(Arg)`] [false] [true] [true]]
+ [[`operator`@`(Arg const)`] [false] [true] [true]]
+ [[`operator`@`(Arg &)`] [false] [true] [false]]
+ [[`operator`@`(Arg const &)`] [false] [true] [true]]
+]
+
+[table necessary and non sufficient condition on operator return type for value to be true
+ [[operator declaration] [`has_op< ..., void >`] [`has_op< ..., Ret >`] [`has_op< ..., Ret const >`] [`has_op< ..., Ret & >`] [`has_op< ..., Ret const & >`]]
+ [[`void operator`@`(...)`] [true] [false] [false] [false] [false]]
+ [[`Ret operator`@`(...)`] [false] [true] [true] [false] [true]]
+ [[`Ret const operator`@`(...)`] [false] [true] [true] [false] [true]]
+ [[`Ret & operator`@`(...)`] [false] [true] [true] [true] [true]]
+ [[`Ret const & operator`@`(...)`] [false] [true] [true] [false] [true]]
+]
+
+
 [heading Implementation]
 
-The implementation consists in only header files. The following headers should
-included first:
-``#include <boost/type_traits/can_call.hpp>``
+The implementation consists in only header files.
+The following headers should included first:
+``#include <boost/type_traits/has_operator.hpp>``
 or
-``#include <boost/type_traits/can_call_name.hpp>``
-where [^name] is the textual name chosen for the wanted operator. The first
-method includes all operator traits.
+``#include <boost/type_traits/has_op.hpp>``
+where [^op] is the textual name chosen for the wanted operator.
+The first method includes all operator traits.
 
 All traits are implemented the same way using preprocessor macros to avoid code
 duplication.
-The main files are in [^boost/type_traits/detail]: [^can_call_binary_operator.hpp],
-[^can_call_prefix_operator.hpp] and [^can_call_postfix_operator.hpp].
+The main files are in [^boost/type_traits/detail]: [^has_binary_operator.hpp],
+[^has_prefix_operator.hpp] and [^has_postfix_operator.hpp].
 The example of prefix `operator-` is presented below:
 
 ``
 namespace boost {
 namespace detail {
 
-// This namespace ensures that ADL does not mess things up.
-namespace can_call_unary_minus_impl {
+// This namespace ensures that argument-dependent name lookup does not mess things up.
+namespace has_unary_minus_impl {
 
 // 1. a function to have an instance of type T without requiring T to be default
 // constructible
 template <typename T> T &make();
 
 
-// 2. checks if operator- returns void or not
+// 2. checks if the operator returns void or not
 // conditions: Rhs!=void
 
 // we first redefine "operator," so that we have no compilation error if
 // operator- returns void and we can use the return type of
-// (-rhs, returns_void_t()) to deduce if
-// operator- returns void or not:
+// (-rhs, returns_void_t()) to deduce if operator- returns void or not:
 // - operator- returns void -> (-rhs, returns_void_t()) returns returns_void_t
 // - operator- returns !=void -> (-rhs, returns_void_t()) returns int
-struct returns_void_t {};
-template <typename T> int operator,(T const &, returns_void_t);
+struct returns_void_t { };
+template <typename T> int operator,(const T&, returns_void_t);
+template <typename T> int operator,(const volatile T&, returns_void_t);
 
 // this intermediate trait has member value of type bool:
-// - value==true -> operator- returns void
+// - value==true -> operator- returns void
 // - value==false -> operator- does not return void
 template < typename Rhs >
 struct operator_returns_void {
@@ -164,11 +282,11 @@
    // yes_type and no_type have different size by construction
    static ::boost::type_traits::yes_type returns_void(returns_void_t);
    static ::boost::type_traits::no_type returns_void(int);
- static const bool value = (sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((- make<Rhs>(),returns_void_t()))));
+ static const bool value = sizeof(::boost::type_traits::yes_type)==sizeof(returns_void((-make<Rhs>(),returns_void_t())));
 };
 
 
-// 3. check for return type if Ret!=dont_care
+// 3. checks if the return type is Ret or Ret==dont_care
 // conditions: Rhs!=void
 
 struct dont_care { };
@@ -188,7 +306,7 @@
 
 template < typename Rhs >
 struct operator_returns_Ret < Rhs, void, true > {
- static const bool value = true;
+ static const bool bool value = true;
 };
 
 template < typename Rhs >
@@ -201,23 +319,24 @@
    static const bool value = false;
 };
 
-// when Ret!=void, checks if it is convertible to Ret using the sizeof trick
+// otherwise checks if it is convertible to Ret using the sizeof trick
 // based on overload resolution
+// condition: Ret!=void and Ret!=dont_care and the operator does not return void
 template < typename Rhs, typename Ret >
 struct operator_returns_Ret < Rhs, Ret, false > {
    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>()))==sizeof(::boost::type_traits::yes_type));
+ static const bool value = sizeof(is_convertible_to_Ret(-make<Rhs>()))==sizeof(::boost::type_traits::yes_type);
 };
 
 
 // 4. we provide our operator definition for types that do not have one already
 
 // a type returned from operator- when no such operator is
-// found in the type's own namespace so that we have a means to know that our
-// operator was used
-struct tag { };
+// found in the type's own namespace (our own operator is used) so that we have
+// a means to know that our operator was used
+struct no_operator { };
 
 // this class allows implicit conversions and makes the following operator
 // definition less-preferred than any other such operators that might be found
@@ -225,30 +344,29 @@
 struct any { template <class T> any(T const&); };
 
 // when operator- is not available, this one is used
-tag operator - (const any&);
+no_operator operator-(const any&);
 
 
-// 5. check for operator existence
+// 5. checks for operator existence
 // condition: Rhs!=void
 
-// check if our definition of operator- is used or an other
+// checks if our definition of operator- is used or an other
 // existing one;
-// this is done with redefinition of "operator," that returns tag or tag2
-struct tag2 { };
-tag operator,(tag, tag2);
+// this is done with redefinition of "operator," that returns no_operator or has_operator
+struct has_operator { };
+no_operator operator,(no_operator, has_operator);
 
 template < typename Rhs >
 struct operator_exists {
- static ::boost::type_traits::yes_type check(tag2); // this version is preferred when operator exists
- static ::boost::type_traits::no_type check(tag); // this version is used otherwise
+ static ::boost::type_traits::yes_type check(has_operator); // this version is preferred when operator exists
+ static ::boost::type_traits::no_type check(no_operator); // this version is used otherwise
 
- static const bool value = (sizeof(check(((- make<Rhs>()),make<tag2>())))==sizeof(::boost::type_traits::yes_type));
+ static const bool value = sizeof(check(((-make<Rhs>()),make<has_operator>())))==sizeof(::boost::type_traits::yes_type);
 };
 
 
-// 5. main trait: to avoid any compilation error, this struct behaves
-// differently when:
-// - operator-(Rhs) is forbidden by the standard
+// 5. main trait: to avoid any compilation error, this class behaves
+// differently when operator-(Rhs) is forbidden by the standard.
 // Forbidden_if is a bool that is:
 // - true when the operator-(Rhs) is forbidden by the standard
 // (would yield compilation error if used)
@@ -263,13 +381,12 @@
 
 template < typename Rhs, typename Ret >
 struct trait_impl1 < Rhs, Ret, false > {
- static const bool
- value = (
- ::boost::type_traits::ice_and<
- operator_exists < Rhs >::value,
- operator_returns_Ret < Rhs, Ret, operator_returns_void < Rhs >::value >::value
- >::value
- );
+ static const bool value =
+ ::boost::type_traits::ice_and<
+ operator_exists < Rhs >::value,
+ operator_returns_Ret < Rhs, Ret, operator_returns_void < Rhs >::value >::value
+ >::value
+ ;
 };
 
 // specialization needs to be declared for the special void case
@@ -282,15 +399,17 @@
 template < typename Rhs, typename Ret >
 struct trait_impl {
    typedef typename ::boost::remove_reference<Rhs>::type Rhs_noref;
- static const bool value = (trait_impl1 < Rhs_noref, Ret, ::boost::is_pointer< Rhs_noref >::value >::value);
+ typedef typename ::boost::remove_cv<Rhs_noref>::type Rhs_nocv;
+ typedef typename ::boost::remove_cv< typename ::boost::remove_reference< typename ::boost::remove_pointer<Rhs_noref>::type >::type >::type Rhs_noptr;
+ static const bool value = trait_impl1 < Rhs_noref, Ret, ::boost::is_pointer< Rhs_noref >::value >::value;
 };
 
-} // namespace can_call_unary_minus_impl
+} // namespace impl
 } // namespace detail
 
 // this is the accessible definition of the trait to end user
-template < typename Rhs, typename Ret=::boost::detail::can_call_unary_minus_impl::dont_care >
-struct can_call_unary_minus : ::boost::integral_constant<bool,(::boost::detail::can_call_unary_minus_impl::trait_impl < Rhs, Ret >::value)> { };
+template < typename Rhs, typename Ret=::boost::detail::has_unary_minus_impl::dont_care >
+struct has_unary_minus : ::boost::integral_constant<bool,(::boost::detail::has_unary_minus_impl::trait_impl < Rhs, Ret >::value)> { };
 
 } // namespace boost
 ``
@@ -305,7 +424,7 @@
 
 ``
 struct A { private: A operator-(); };
-boost::can_call_unary_minus<A>::value; // error: A::operator-() is private
+boost::has_unary_minus<A>::value; // error: A::operator-() is private
 ``
 
 * There is an issue if the operator exists only for type `A` and `B` is
@@ -317,8 +436,8 @@
 struct A { };
 void operator-(const A&);
 struct B { operator A(); };
-boost::can_call_unary_minus<A>::value; // this is fine
-boost::can_call_unary_minus<B>::value; // error: ambiguous overload between
+boost::has_unary_minus<A>::value; // this is fine
+boost::has_unary_minus<B>::value; // error: ambiguous overload between
                                            // operator-(const any&) and
                                            // operator-(const A&)
                                            // both need type conversion
@@ -327,13 +446,16 @@
 struct B { };
 struct A { A(const B&) { } };
 void operator-(const A&);
-boost::can_call_unary_minus<A>::value; // this is fine
-boost::can_call_unary_minus<B>::value; // error: ambiguous overload between
+boost::has_unary_minus<A>::value; // this is fine
+boost::has_unary_minus<B>::value; // error: ambiguous overload between
                                            // operator-(const any&) and
                                            // operator-(const A&)
                                            // both need type conversion
 ``
 
+* `volatile` qualifier is not properly handled and would lead to undefined behavior
+
+
 [heading Acknowledgments]
 
 Frédéric Bron is very thankful to numerous people from the boost mailing list for their kind help and patience.

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-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -6,7 +6,7 @@
 ]
 
 [library Boost.TypeTraits
- [quickbook 1.4]
+ [quickbook 1.5]
     [copyright 2000 2011 Adobe Systems Inc, David Abrahams, Frederic Bron,
     Steve Cleary, Beman Dawes, Aleksey Gurtovoy, Howard Hinnant, Jesse Jones,
     Mat Marcus, Itay Maman, John Maddock, Alexander Nasonov, Thorsten Ottosen,
@@ -44,6 +44,8 @@
 [def __is_floating_point [link boost_typetraits.reference.is_floating_point is_floating_point]]
 [def __is_pointer [link boost_typetraits.reference.is_pointer is_pointer]]
 [def __is_reference [link boost_typetraits.reference.is_reference is_reference]]
+[def __is_lvalue_reference [link boost_typetraits.reference.is_lvalue_reference is_lvalue_reference]]
+[def __is_rvalue_reference [link boost_typetraits.reference.is_rvalue_reference is_rvalue_reference]]
 [def __is_member_pointer [link boost_typetraits.reference.is_member_pointer is_member_pointer]]
 [def __is_array [link boost_typetraits.reference.is_array is_array]]
 [def __is_union [link boost_typetraits.reference.is_union is_union]]
@@ -73,6 +75,7 @@
 [def __has_virtual_destructor [link boost_typetraits.reference.has_virtual_destructor has_virtual_destructor]]
 [def __is_pod [link boost_typetraits.reference.is_pod is_pod]]
 [def __has_trivial_constructor [link boost_typetraits.reference.has_trivial_constructor has_trivial_constructor]]
+[def __has_new_operator [link boost_typetraits.reference.has_new_operator has_new_operator]]
 [def __has_trivial_copy [link boost_typetraits.reference.has_trivial_copy has_trivial_copy]]
 [def __has_trivial_default_constructor [link boost_typetraits.reference.has_trivial_constructor has_trivial_default_constructor]]
 [def __has_trivial_copy_constructor [link boost_typetraits.reference.has_trivial_copy has_trivial_copy_constructor]]
@@ -86,6 +89,7 @@
 [def __has_nothrow_assign [link boost_typetraits.reference.has_nothrow_assign has_nothrow_assign]]
 
 [def __is_base_of [link boost_typetraits.reference.is_base_of is_base_of]]
+[def __is_virtual_base_of [link boost_typetraits.reference.is_virtual_base_of is_virtual_base_of]]
 [def __is_convertible [link boost_typetraits.reference.is_convertible is_convertible]]
 [def __is_same [link boost_typetraits.reference.is_same is_same]]
 
@@ -96,13 +100,15 @@
 [def __remove_extent [link boost_typetraits.reference.remove_extent remove_extent]]
 [def __remove_all_extents [link boost_typetraits.reference.remove_all_extents remove_all_extents]]
 [def __remove_pointer [link boost_typetraits.reference.remove_pointer remove_pointer]]
-[def __remove_member_pointer [link boost_typetraits.reference.remove_member_pointer remove_member_pointer]]
 [def __add_reference [link boost_typetraits.reference.add_reference add_reference]]
+[def __add_lvalue_reference [link boost_typetraits.reference.add_lvalue_reference add_lvalue_reference]]
+[def __add_rvalue_reference [link boost_typetraits.reference.add_rvalue_reference add_rvalue_reference]]
 [def __add_pointer [link boost_typetraits.reference.add_pointer add_pointer]]
 [def __add_const [link boost_typetraits.reference.add_const add_const]]
 [def __add_volatile [link boost_typetraits.reference.add_volatile add_volatile]]
 [def __add_cv [link boost_typetraits.reference.add_cv add_cv]]
-[def __member_object [link boost_typetraits.reference.member_object member_object]]
+[def __common_type [link boost_typetraits.reference.common_type common_type]]
+[def __conditional [link boost_typetraits.reference.conditional conditional]]
 
 [def __type_with_alignment [link boost_typetraits.reference.type_with_alignment type_with_alignment]]
 [def __aligned_storage [link boost_typetraits.reference.aligned_storage aligned_storage]]
@@ -118,7 +124,7 @@
 [def __decay [link boost_typetraits.reference.decay decay]]
 [def __is_complex [link boost_typetraits.reference.is_complex is_complex]]
 
-A printer-friendly [@http://svn.boost.org/svn/boost/sandbox/pdf/type_traits/release/type_traits.pdf
+A printer-friendly [@http://sourceforge.net/projects/boost/files/boost-docs/
  PDF version of this manual is also available].
 
 [section:intro Introduction]
@@ -128,7 +134,7 @@
 from the C++ type system; for example, is a type a pointer or a reference type?
 Or does a type have a trivial constructor, or a const-qualifier?
  
-The type-traits classes share a unified design: each class inherits from a
+The type-traits classes share a unified design: each class inherits from
 the type __true_type if the type has the specified property and inherits from
 __false_type otherwise.
 
@@ -160,53 +166,49 @@
 
 [include add_const.qbk]
 [include add_cv.qbk]
+[include add_lvalue_reference.qbk]
 [include add_pointer.qbk]
 [include add_reference.qbk]
+[include add_rvalue_reference.qbk]
 [include add_volatile.qbk]
 [include aligned_storage.qbk]
 [include alignment_of.qbk]
-[include can_call_addition.qbk]
-[include can_call_addition_assignment.qbk]
-[include can_call_and.qbk]
-[include can_call_bitwise_and.qbk]
-[include can_call_bitwise_and_assignment.qbk]
-[include can_call_bitwise_or.qbk]
-[include can_call_bitwise_or_assignment.qbk]
-[include can_call_bitwise_xor.qbk]
-[include can_call_bitwise_xor_assignment.qbk]
-[include can_call_complement.qbk]
-[include can_call_dereference.qbk]
-[include can_call_division.qbk]
-[include can_call_division_assignment.qbk]
-[include can_call_equal.qbk]
-[include can_call_greater.qbk]
-[include can_call_greater_equal.qbk]
-[include can_call_left_shift.qbk]
-[include can_call_left_shift_assignment.qbk]
-[include can_call_less.qbk]
-[include can_call_less_equal.qbk]
-[include can_call_modulus.qbk]
-[include can_call_modulus_assignment.qbk]
-[include can_call_multiplication.qbk]
-[include can_call_multiplication_assignment.qbk]
-[include can_call_not.qbk]
-[include can_call_not_equal.qbk]
-[include can_call_or.qbk]
-[include can_call_post_decrement.qbk]
-[include can_call_post_increment.qbk]
-[include can_call_pre_decrement.qbk]
-[include can_call_pre_increment.qbk]
-[include can_call_right_shift.qbk]
-[include can_call_right_shift_assignment.qbk]
-[include can_call_subtraction.qbk]
-[include can_call_subtraction_assignment.qbk]
-[include can_call_unary_minus.qbk]
-[include can_call_unary_plus.qbk]
+[include conditional.qbk]
+[include common_type.qbk]
 [include decay.qbk]
 [include extent.qbk]
 [include floating_point_promotion.qbk]
 [include function_traits.qbk]
 
+[include has_bit_and.qbk]
+[include has_bit_and_assign.qbk]
+[include has_bit_or.qbk]
+[include has_bit_or_assign.qbk]
+[include has_bit_xor.qbk]
+[include has_bit_xor_assign.qbk]
+[include has_complement.qbk]
+[include has_dereference.qbk]
+[include has_divides.qbk]
+[include has_divides_assign.qbk]
+[include has_equal_to.qbk]
+[include has_greater.qbk]
+[include has_greater_equal.qbk]
+[include has_left_shift.qbk]
+[include has_left_shift_assign.qbk]
+[include has_less.qbk]
+[include has_less_equal.qbk]
+[include has_logical_and.qbk]
+[include has_logical_not.qbk]
+[include has_logical_or.qbk]
+[include has_minus.qbk]
+[include has_minus_assign.qbk]
+[include has_modulus.qbk]
+[include has_modulus_assign.qbk]
+[include has_multiplies.qbk]
+[include has_multiplies_assign.qbk]
+[include has_negate.qbk]
+[include has_new_operator.qbk]
+[include has_not_equal_to.qbk]
 [include has_nothrow_assign.qbk]
 [include has_nothrow_constructor.qbk]
 [include has_nothrow_copy.qbk]
@@ -216,6 +218,14 @@
 [section:has_no_throw_def_cons has_nothrow_default_constructor]
 See __has_nothrow_constructor.
 [endsect]
+[include has_plus.qbk]
+[include has_plus_assign.qbk]
+[include has_post_decrement.qbk]
+[include has_post_increment.qbk]
+[include has_pre_decrement.qbk]
+[include has_pre_increment.qbk]
+[include has_right_shift.qbk]
+[include has_right_shift_assign.qbk]
 [include has_trivial_assign.qbk]
 [include has_trivial_constructor.qbk]
 [include has_trivial_copy.qbk]
@@ -226,6 +236,8 @@
 See __has_trivial_constructor.
 [endsect]
 [include has_trivial_destructor.qbk]
+[include has_unary_minus.qbk]
+[include has_unary_plus.qbk]
 [include has_virtual_destructor.qbk]
 
 [include integral_constant.qbk]
@@ -246,6 +258,7 @@
 [include is_function.qbk]
 [include is_fundamental.qbk]
 [include is_integral.qbk]
+[include is_lvalue_reference.qbk]
 [include is_member_function_pointer.qbk]
 [include is_member_object_pointer.qbk]
 [include is_member_pointer.qbk]
@@ -254,18 +267,19 @@
 [include is_pointer.qbk]
 [include is_polymorphic.qbk]
 [include is_reference.qbk]
+[include is_rvalue_reference.qbk]
 [include is_same.qbk]
 [include is_scalar.qbk]
 [include is_signed.qbk]
 [include is_stateless.qbk]
 [include is_union.qbk]
 [include is_unsigned.qbk]
+[include is_virtual_base_of.qbk]
 [include is_void.qbk]
 [include is_volatile.qbk]
 
 [include make_signed.qbk]
 [include make_unsigned.qbk]
-[include member_object.qbk]
 
 [include promote.qbk]
 [include rank.qbk]
@@ -275,11 +289,28 @@
 [include remove_cv.qbk]
 [include remove_extent.qbk]
 [include remove_pointer.qbk]
-[include remove_mem_pointer.qbk]
 [include remove_reference.qbk]
 [include remove_volatile.qbk]
 [include type_with_alignment.qbk]
 
 [endsect]
 
+[include history.qbk]
 [include credits.qbk]
+
+[? enable_index
+'''
+ <index type="class_name">
+ <title>Class Index</title>
+ </index>
+ <index type="typedef_name">
+ <title>Typedef Index</title>
+ </index>
+ <index type="macro_name">
+ <title>Macro Index</title>
+ </index>
+ <index/>
+'''
+]
+
+

Modified: sandbox/type_traits/libs/type_traits/doc/value_traits.qbk
==============================================================================
--- sandbox/type_traits/libs/type_traits/doc/value_traits.qbk (original)
+++ sandbox/type_traits/libs/type_traits/doc/value_traits.qbk 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -31,43 +31,46 @@
 [*Synopsis:]
 
    template <class T>
- struct __is_array<T>;
+ struct __is_array;
      
    template <class T>
- struct __is_class<T>;
+ struct __is_class;
    
    template <class T>
- struct __is_complex<T>;
+ struct __is_complex;
      
    template <class T>
- struct __is_enum<T>;
+ struct __is_enum;
      
    template <class T>
- struct __is_floating_point<T>;
+ struct __is_floating_point;
      
    template <class T>
- struct __is_function<T>;
+ struct __is_function;
 
    template <class T>
- struct __is_integral<T>;
+ struct __is_integral;
      
    template <class T>
- struct __is_member_function_pointer<T>;
+ struct __is_member_function_pointer;
      
    template <class T>
- struct __is_member_object_pointer<T>;
+ struct __is_member_object_pointer;
      
    template <class T>
- struct __is_pointer<T>;
+ struct __is_pointer;
      
    template <class T>
- struct __is_reference<T>;
+ struct __is_lvalue_reference;
      
    template <class T>
- struct __is_union<T>;
+ struct __is_rvalue_reference;
      
    template <class T>
- struct __is_void<T>;
+ struct __is_union;
+
+ template <class T>
+ struct __is_void;
      
 The following traits are made up of the union of one or more type
 categorizations. A type may belong to more than one of these categories,
@@ -89,6 +92,9 @@
    struct __is_object;
    
    template <class T>
+ struct __is_reference;
+
+ template <class T>
    struct __is_scalar;
    
 [endsect]
@@ -103,6 +109,9 @@
    struct __alignment_of;
 
    template <class T>
+ struct __has_new_operator;
+
+ template <class T>
    struct __has_nothrow_assign;
 
    template <class T>
@@ -183,6 +192,9 @@
    template <class Base, class Derived>
    struct __is_base_of;
 
+ template <class Base, class Derived>
+ struct __is_virtual_base_of;
+
    template <class From, class To>
    struct __is_convertible;
 

Modified: sandbox/type_traits/libs/type_traits/test/Jamfile.v2
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/Jamfile.v2 (original)
+++ sandbox/type_traits/libs/type_traits/test/Jamfile.v2 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -1,6 +1,6 @@
 # copyright John Maddock 2004
-# Use, modification and distribution are subject to the
-# Boost Software License, Version 1.0. (See accompanying file
+# 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)
 
 # bring in the rules for testing
@@ -8,26 +8,26 @@
 
 # type_traits in V1 seem to have two modes: standalone, triggered
 # by a command line option, and a regular. For now, just imitate
-# regular
+# regular
 
-rule non-operator-tests {
- local result ;
- for local source in [ glob *_test.cpp : can_call_*_test.cpp ] udt_specialisations.cpp
- {
- result += [ run $(source) ] ;
- }
- return $(result) ;
-}
+project : requirements
+ # default to all warnings on:
+ <warnings>all
+ # set warnings as errors for those compilers we know we get warning free:
+ <toolset>gcc:<cxxflags>-Wextra
+ <toolset>gcc:<warnings-as-errors>on
+ <toolset>intel:<warnings-as-errors>on
+ <toolset>sun:<warnings-as-errors>on
+ <toolset>msvc:<warnings-as-errors>on
+;
 
-rule operator-tests {
+rule all-tests {
      local result ;
- for local source in [ glob can_call_*_test.cpp ]
+ for local source in [ glob *_test.cpp ]
      {
          result += [ run $(source) ] ;
      }
- return $(result) ;
+ return $(result) ;
 }
-
-test-suite type_traits : [ non-operator-tests operator-tests ] ;
-
-test-suite operators : [ operator-tests ] ;
+
+test-suite type_traits : [ all-tests ] ;

Deleted: sandbox/type_traits/libs/type_traits/test/add_const_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/add_const_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,53 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/add_const.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(add_const_test_1, ::tt::add_const, const, const)
-BOOST_DECL_TRANSFORM_TEST(add_const_test_2, ::tt::add_const, volatile, volatile const)
-BOOST_DECL_TRANSFORM_TEST(add_const_test_3, ::tt::add_const, *, *const)
-BOOST_DECL_TRANSFORM_TEST2(add_const_test_4, ::tt::add_const, const)
-BOOST_DECL_TRANSFORM_TEST(add_const_test_7, ::tt::add_const, *volatile, *volatile const)
-BOOST_DECL_TRANSFORM_TEST(add_const_test_10, ::tt::add_const, const*, const*const)
-BOOST_DECL_TRANSFORM_TEST(add_const_test_11, ::tt::add_const, volatile*, volatile*const)
-BOOST_DECL_TRANSFORM_TEST(add_const_test_5, ::tt::add_const, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(add_const_test_6, ::tt::add_const, &, &)
-BOOST_DECL_TRANSFORM_TEST(add_const_test_8, ::tt::add_const, const [2], const [2])
-BOOST_DECL_TRANSFORM_TEST(add_const_test_9, ::tt::add_const, volatile &, volatile&)
-BOOST_DECL_TRANSFORM_TEST(add_const_test_12, ::tt::add_const, [2][3], const[2][3])
-BOOST_DECL_TRANSFORM_TEST(add_const_test_13, ::tt::add_const, (&)[2], (&)[2])
-
-TT_TEST_BEGIN(add_const)
-
- add_const_test_1();
- add_const_test_2();
- add_const_test_3();
- add_const_test_4();
- add_const_test_7();
- add_const_test_10();
- add_const_test_11();
- add_const_test_5();
- add_const_test_6();
- add_const_test_8();
- add_const_test_9();
- add_const_test_12();
- add_const_test_13();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/add_cv_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/add_cv_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,53 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/add_cv.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_1, ::tt::add_cv, const, const volatile)
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_2, ::tt::add_cv, volatile, volatile const)
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_3, ::tt::add_cv, *, *const volatile)
-BOOST_DECL_TRANSFORM_TEST2(add_cv_test_4, ::tt::add_cv, const volatile)
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_7, ::tt::add_cv, *volatile, *volatile const)
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_10, ::tt::add_cv, const*, const*const volatile)
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_11, ::tt::add_cv, volatile*, volatile*const volatile )
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_5, ::tt::add_cv, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_6, ::tt::add_cv, &, &)
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_8, ::tt::add_cv, const [2], const volatile [2])
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_9, ::tt::add_cv, volatile &, volatile&)
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_12, ::tt::add_cv, [2][3], const volatile[2][3])
-BOOST_DECL_TRANSFORM_TEST(add_cv_test_13, ::tt::add_cv, (&)[2], (&)[2])
-
-TT_TEST_BEGIN(add_const)
-
- add_cv_test_1();
- add_cv_test_2();
- add_cv_test_3();
- add_cv_test_4();
- add_cv_test_7();
- add_cv_test_10();
- add_cv_test_11();
- add_cv_test_5();
- add_cv_test_6();
- add_cv_test_8();
- add_cv_test_9();
- add_cv_test_12();
- add_cv_test_13();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/add_pointer_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/add_pointer_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,41 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/add_pointer.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_1, ::tt::add_pointer, const, const*)
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_2, ::tt::add_pointer, volatile, volatile*)
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_3, ::tt::add_pointer, *, **)
-BOOST_DECL_TRANSFORM_TEST2(add_pointer_test_4, ::tt::add_pointer, *)
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_7, ::tt::add_pointer, *volatile, *volatile*)
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_10, ::tt::add_pointer, const*, const**)
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_11, ::tt::add_pointer, volatile*, volatile**)
-
-TT_TEST_BEGIN(add_pointer)
-
- add_pointer_test_1();
- add_pointer_test_2();
- add_pointer_test_3();
- add_pointer_test_4();
- add_pointer_test_7();
- add_pointer_test_10();
- add_pointer_test_11();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/add_reference_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/add_reference_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,53 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/add_reference.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_1, ::tt::add_reference, const, const&)
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_2, ::tt::add_reference, volatile, volatile&)
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_3, ::tt::add_reference, *, *&)
-BOOST_DECL_TRANSFORM_TEST2(add_reference_test_4, ::tt::add_reference, &)
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_5, ::tt::add_reference, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_6, ::tt::add_reference, &, &)
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_7, ::tt::add_reference, *volatile, *volatile&)
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_8, ::tt::add_reference, const [2], const (&)[2])
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_9, ::tt::add_reference, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_10, ::tt::add_reference, const*, const*&)
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_11, ::tt::add_reference, volatile*, volatile*&)
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_12, ::tt::add_reference, const[2][3], const (&)[2][3])
-BOOST_DECL_TRANSFORM_TEST(add_reference_test_13, ::tt::add_reference, (&)[2], (&)[2])
-
-TT_TEST_BEGIN(add_reference)
-
- add_reference_test_1();
- add_reference_test_2();
- add_reference_test_3();
- add_reference_test_4();
- add_reference_test_5();
- add_reference_test_6();
- add_reference_test_7();
- add_reference_test_8();
- add_reference_test_9();
- add_reference_test_10();
- add_reference_test_11();
- add_reference_test_12();
- add_reference_test_13();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/add_volatile_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/add_volatile_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,53 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/add_volatile.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_1, ::tt::add_volatile, const, const volatile)
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_2, ::tt::add_volatile, volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_3, ::tt::add_volatile, *, *volatile)
-BOOST_DECL_TRANSFORM_TEST2(add_volatile_test_4, ::tt::add_volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_7, ::tt::add_volatile, *volatile, *volatile)
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_10, ::tt::add_volatile, const*, const*volatile)
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_11, ::tt::add_volatile, volatile*, volatile*volatile)
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_5, ::tt::add_volatile, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_6, ::tt::add_volatile, &, &)
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_8, ::tt::add_volatile, const [2], const volatile [2])
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_9, ::tt::add_volatile, volatile &, volatile&)
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_12, ::tt::add_volatile, [2][3], volatile[2][3])
-BOOST_DECL_TRANSFORM_TEST(add_volatile_test_13, ::tt::add_volatile, (&)[2], (&)[2])
-
-TT_TEST_BEGIN(add_volatile)
-
- add_volatile_test_1();
- add_volatile_test_2();
- add_volatile_test_3();
- add_volatile_test_4();
- add_volatile_test_7();
- add_volatile_test_10();
- add_volatile_test_11();
- add_volatile_test_5();
- add_volatile_test_6();
- add_volatile_test_8();
- add_volatile_test_9();
- add_volatile_test_12();
- add_volatile_test_13();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/aligned_storage_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/aligned_storage_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,109 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-# include <boost/type_traits/type_with_alignment.hpp> // max_align and long_long_type
-#else
-# include <boost/type_traits/alignment_of.hpp>
-# include <boost/type_traits/aligned_storage.hpp>
-# include <boost/type_traits/is_pod.hpp>
-#endif
-
-template <class T>
-union must_be_pod
-{
- int i;
- T t;
-};
-
-template <class T>
-inline void no_unused_warning(const volatile T&)
-{
-}
-
-template <class T>
-void check(const T&)
-{
- typedef typename tt::aligned_storage<T::value,T::value>::type t1;
- t1 as1 = { 0, };
- must_be_pod<t1> pod1;
- no_unused_warning(as1);
- no_unused_warning(pod1);
- BOOST_MESSAGE(typeid(t1).name());
- BOOST_CHECK(::tt::alignment_of<t1>::value == T::value);
- BOOST_CHECK(sizeof(t1) == T::value);
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_CHECK(::tt::is_pod<t1>::value == true);
-#endif
- typedef typename tt::aligned_storage<T::value*2,T::value>::type t2;
- t2 as2 = { 0, };
- must_be_pod<t2> pod2;
- no_unused_warning(as2);
- no_unused_warning(pod2);
- BOOST_MESSAGE(typeid(t2).name());
- BOOST_CHECK(::tt::alignment_of<t2>::value == T::value);
- BOOST_CHECK(sizeof(t2) == T::value*2);
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_CHECK(::tt::is_pod<t2>::value == true);
-#endif
-
-#ifndef TEST_STD
- // Non-Tr1 behaviour:
- typedef typename tt::aligned_storage<T::value,-1L>::type t3;
- t3 as3 = { 0, };
- must_be_pod<t3> pod3;
- no_unused_warning(as3);
- no_unused_warning(pod3);
- BOOST_MESSAGE(typeid(t3).name());
- BOOST_CHECK(::tt::alignment_of<t3>::value == ::tt::alignment_of< ::boost::detail::max_align>::value);
- BOOST_CHECK((sizeof(t3) % T::value) == 0);
-#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
- BOOST_CHECK(::tt::is_pod<t3>::value == true);
-#endif
-#endif
-}
-
-TT_TEST_BEGIN(type_with_alignment)
-
-check(tt::integral_constant<std::size_t,::tt::alignment_of<char>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<short>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<int>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<long>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<float>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<double>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<long double>::value>());
-
-#ifdef BOOST_HAS_LONG_LONG
-check(tt::integral_constant<std::size_t,::tt::alignment_of< ::boost::long_long_type>::value>());
-#endif
-#ifdef BOOST_HAS_MS_INT64
-check(tt::integral_constant<std::size_t,::tt::alignment_of<__int64>::value>());
-#endif
-check(tt::integral_constant<std::size_t,::tt::alignment_of<int[4]>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<int(*)(int)>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<int*>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<VB>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<VD>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<enum_UDT>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<mf2>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<POD_UDT>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<empty_UDT>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<union_UDT>::value>());
-check(tt::integral_constant<std::size_t,::tt::alignment_of<boost::detail::max_align>::value>());
-
-TT_TEST_END
-
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/alignment_of_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/alignment_of_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,109 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/alignment_of.hpp>
-#endif
-
-//
-// VC++ emits an awful lot of warnings unless we define these:
-#ifdef BOOST_MSVC
-# pragma warning(disable:4244)
-//
-// What follows here is the test case for issue 1946.
-//
-#include <boost/function.hpp>
-// This kind of packing is set within MSVC 9.0 headers.
-// E.g. std::ostream has it.
-#pragma pack(push,8)
-
-// The issue is gone if Root has no data members
-struct Root { int a; };
-// The issue is gone if Root is inherited non-virtually
-struct A : virtual public Root {};
-
-#pragma pack(pop)
-//
-// This class has 8-byte alignment but is 44 bytes in size, which means
-// that elements in an array of this type will not actually be 8 byte
-// aligned. This appears to be an MSVC bug, and throws off our
-// alignment calculations: causing us to report a non-sensical 12-byte
-// alignment for this type. This is fixed by using the native __alignof
-// operator.
-//
-class issue1946 :
- public A
-{
-public:
- // The issue is gone if the type is not a boost::function. The signature doesn't matter.
- typedef boost::function0< void > function_type;
- function_type m_function;
-};
-
-#endif
-
-
-template <class T>
-struct align_calc
-{
- char padding;
- T instance;
- static std::ptrdiff_t get()
- {
- static align_calc<T> a;
- return reinterpret_cast<const char*>(&(a.instance)) - reinterpret_cast<const char*>(&(a.padding));
- }
-};
-
-#define ALIGNOF(x) align_calc< x>::get()
-
-TT_TEST_BEGIN(alignment_of)
-
-#ifndef TEST_STD
-// This test is not required to work for non-boost implementations:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<void>::value, 0);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<char>::value, ALIGNOF(char));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<short>::value, ALIGNOF(short));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<int>::value, ALIGNOF(int));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<long>::value, ALIGNOF(long));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<float>::value, ALIGNOF(float));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<double>::value, ALIGNOF(double));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<long double>::value, ALIGNOF(long double));
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of< ::boost::long_long_type>::value, ALIGNOF(::boost::long_long_type));
-#endif
-#ifdef BOOST_HAS_MS_INT64
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<__int64>::value, ALIGNOF(__int64));
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<int[4]>::value, ALIGNOF(int[4]));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<int(*)(int)>::value, ALIGNOF(int(*)(int)));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<int*>::value, ALIGNOF(int*));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<VB>::value, ALIGNOF(VB));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<VD>::value, ALIGNOF(VD));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<enum_UDT>::value, ALIGNOF(enum_UDT));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<mf2>::value, ALIGNOF(mf2));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<POD_UDT>::value, ALIGNOF(POD_UDT));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<empty_UDT>::value, ALIGNOF(empty_UDT));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<union_UDT>::value, ALIGNOF(union_UDT));
-
-#if defined(BOOST_MSVC) && (BOOST_MSVC >= 1400)
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<issue1946>::value, ALIGNOF(issue1946));
-#endif
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_addition_assignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_addition_assignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_addition_assignment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_addition_assignment
-#define BOOST_TT_TRAIT_OP +=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double &, bool volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool volatile &, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_addition_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_addition_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_addition.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_addition
-#define BOOST_TT_TRAIT_OP +
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_and_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_and_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_and.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_and
-#define BOOST_TT_TRAIT_OP &&
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void*, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, void* volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void*, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const volatile &, int & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,1731 +0,0 @@
-struct ret { };
-ret ret_val;
-
-class C000 { C000(); public: C000(int) { } };
-void operator+(C000, C000) { }
-
-class C001 { C001(); public: C001(int) { } };
-ret operator+(C001, C001) { return ret_val; }
-
-class C002 { C002(); public: C002(int) { } };
-ret const operator+(C002, C002) { return ret_val; }
-
-class C003 { C003(); public: C003(int) { } };
-ret volatile operator+(C003, C003) { return ret_val; }
-
-class C004 { C004(); public: C004(int) { } };
-ret const volatile operator+(C004, C004) { return ret_val; }
-
-class C005 { C005(); public: C005(int) { } };
-ret & operator+(C005, C005) { return ret_val; }
-
-class C006 { C006(); public: C006(int) { } };
-ret const & operator+(C006, C006) { return ret_val; }
-
-class C007 { C007(); public: C007(int) { } };
-ret volatile & operator+(C007, C007) { return ret_val; }
-
-class C008 { C008(); public: C008(int) { } };
-ret const volatile & operator+(C008, C008) { return ret_val; }
-
-class C009 { C009(); public: C009(int) { } };
-void operator+(C009, C009 const) { }
-
-class C010 { C010(); public: C010(int) { } };
-ret operator+(C010, C010 const) { return ret_val; }
-
-class C011 { C011(); public: C011(int) { } };
-ret const operator+(C011, C011 const) { return ret_val; }
-
-class C012 { C012(); public: C012(int) { } };
-ret volatile operator+(C012, C012 const) { return ret_val; }
-
-class C013 { C013(); public: C013(int) { } };
-ret const volatile operator+(C013, C013 const) { return ret_val; }
-
-class C014 { C014(); public: C014(int) { } };
-ret & operator+(C014, C014 const) { return ret_val; }
-
-class C015 { C015(); public: C015(int) { } };
-ret const & operator+(C015, C015 const) { return ret_val; }
-
-class C016 { C016(); public: C016(int) { } };
-ret volatile & operator+(C016, C016 const) { return ret_val; }
-
-class C017 { C017(); public: C017(int) { } };
-ret const volatile & operator+(C017, C017 const) { return ret_val; }
-
-class C018 { C018(); public: C018(int) { } };
-void operator+(C018, C018 volatile) { }
-
-class C019 { C019(); public: C019(int) { } };
-ret operator+(C019, C019 volatile) { return ret_val; }
-
-class C020 { C020(); public: C020(int) { } };
-ret const operator+(C020, C020 volatile) { return ret_val; }
-
-class C021 { C021(); public: C021(int) { } };
-ret volatile operator+(C021, C021 volatile) { return ret_val; }
-
-class C022 { C022(); public: C022(int) { } };
-ret const volatile operator+(C022, C022 volatile) { return ret_val; }
-
-class C023 { C023(); public: C023(int) { } };
-ret & operator+(C023, C023 volatile) { return ret_val; }
-
-class C024 { C024(); public: C024(int) { } };
-ret const & operator+(C024, C024 volatile) { return ret_val; }
-
-class C025 { C025(); public: C025(int) { } };
-ret volatile & operator+(C025, C025 volatile) { return ret_val; }
-
-class C026 { C026(); public: C026(int) { } };
-ret const volatile & operator+(C026, C026 volatile) { return ret_val; }
-
-class C027 { C027(); public: C027(int) { } };
-void operator+(C027, C027 const volatile) { }
-
-class C028 { C028(); public: C028(int) { } };
-ret operator+(C028, C028 const volatile) { return ret_val; }
-
-class C029 { C029(); public: C029(int) { } };
-ret const operator+(C029, C029 const volatile) { return ret_val; }
-
-class C030 { C030(); public: C030(int) { } };
-ret volatile operator+(C030, C030 const volatile) { return ret_val; }
-
-class C031 { C031(); public: C031(int) { } };
-ret const volatile operator+(C031, C031 const volatile) { return ret_val; }
-
-class C032 { C032(); public: C032(int) { } };
-ret & operator+(C032, C032 const volatile) { return ret_val; }
-
-class C033 { C033(); public: C033(int) { } };
-ret const & operator+(C033, C033 const volatile) { return ret_val; }
-
-class C034 { C034(); public: C034(int) { } };
-ret volatile & operator+(C034, C034 const volatile) { return ret_val; }
-
-class C035 { C035(); public: C035(int) { } };
-ret const volatile & operator+(C035, C035 const volatile) { return ret_val; }
-
-class C036 { C036(); public: C036(int) { } };
-void operator+(C036, C036 &) { }
-
-class C037 { C037(); public: C037(int) { } };
-ret operator+(C037, C037 &) { return ret_val; }
-
-class C038 { C038(); public: C038(int) { } };
-ret const operator+(C038, C038 &) { return ret_val; }
-
-class C039 { C039(); public: C039(int) { } };
-ret volatile operator+(C039, C039 &) { return ret_val; }
-
-class C040 { C040(); public: C040(int) { } };
-ret const volatile operator+(C040, C040 &) { return ret_val; }
-
-class C041 { C041(); public: C041(int) { } };
-ret & operator+(C041, C041 &) { return ret_val; }
-
-class C042 { C042(); public: C042(int) { } };
-ret const & operator+(C042, C042 &) { return ret_val; }
-
-class C043 { C043(); public: C043(int) { } };
-ret volatile & operator+(C043, C043 &) { return ret_val; }
-
-class C044 { C044(); public: C044(int) { } };
-ret const volatile & operator+(C044, C044 &) { return ret_val; }
-
-class C045 { C045(); public: C045(int) { } };
-void operator+(C045, C045 const &) { }
-
-class C046 { C046(); public: C046(int) { } };
-ret operator+(C046, C046 const &) { return ret_val; }
-
-class C047 { C047(); public: C047(int) { } };
-ret const operator+(C047, C047 const &) { return ret_val; }
-
-class C048 { C048(); public: C048(int) { } };
-ret volatile operator+(C048, C048 const &) { return ret_val; }
-
-class C049 { C049(); public: C049(int) { } };
-ret const volatile operator+(C049, C049 const &) { return ret_val; }
-
-class C050 { C050(); public: C050(int) { } };
-ret & operator+(C050, C050 const &) { return ret_val; }
-
-class C051 { C051(); public: C051(int) { } };
-ret const & operator+(C051, C051 const &) { return ret_val; }
-
-class C052 { C052(); public: C052(int) { } };
-ret volatile & operator+(C052, C052 const &) { return ret_val; }
-
-class C053 { C053(); public: C053(int) { } };
-ret const volatile & operator+(C053, C053 const &) { return ret_val; }
-
-class C054 { C054(); public: C054(int) { } };
-void operator+(C054, C054 volatile &) { }
-
-class C055 { C055(); public: C055(int) { } };
-ret operator+(C055, C055 volatile &) { return ret_val; }
-
-class C056 { C056(); public: C056(int) { } };
-ret const operator+(C056, C056 volatile &) { return ret_val; }
-
-class C057 { C057(); public: C057(int) { } };
-ret volatile operator+(C057, C057 volatile &) { return ret_val; }
-
-class C058 { C058(); public: C058(int) { } };
-ret const volatile operator+(C058, C058 volatile &) { return ret_val; }
-
-class C059 { C059(); public: C059(int) { } };
-ret & operator+(C059, C059 volatile &) { return ret_val; }
-
-class C060 { C060(); public: C060(int) { } };
-ret const & operator+(C060, C060 volatile &) { return ret_val; }
-
-class C061 { C061(); public: C061(int) { } };
-ret volatile & operator+(C061, C061 volatile &) { return ret_val; }
-
-class C062 { C062(); public: C062(int) { } };
-ret const volatile & operator+(C062, C062 volatile &) { return ret_val; }
-
-class C063 { C063(); public: C063(int) { } };
-void operator+(C063, C063 const volatile &) { }
-
-class C064 { C064(); public: C064(int) { } };
-ret operator+(C064, C064 const volatile &) { return ret_val; }
-
-class C065 { C065(); public: C065(int) { } };
-ret const operator+(C065, C065 const volatile &) { return ret_val; }
-
-class C066 { C066(); public: C066(int) { } };
-ret volatile operator+(C066, C066 const volatile &) { return ret_val; }
-
-class C067 { C067(); public: C067(int) { } };
-ret const volatile operator+(C067, C067 const volatile &) { return ret_val; }
-
-class C068 { C068(); public: C068(int) { } };
-ret & operator+(C068, C068 const volatile &) { return ret_val; }
-
-class C069 { C069(); public: C069(int) { } };
-ret const & operator+(C069, C069 const volatile &) { return ret_val; }
-
-class C070 { C070(); public: C070(int) { } };
-ret volatile & operator+(C070, C070 const volatile &) { return ret_val; }
-
-class C071 { C071(); public: C071(int) { } };
-ret const volatile & operator+(C071, C071 const volatile &) { return ret_val; }
-
-class C072 { C072(); public: C072(int) { } };
-void operator+(C072 const, C072) { }
-
-class C073 { C073(); public: C073(int) { } };
-ret operator+(C073 const, C073) { return ret_val; }
-
-class C074 { C074(); public: C074(int) { } };
-ret const operator+(C074 const, C074) { return ret_val; }
-
-class C075 { C075(); public: C075(int) { } };
-ret volatile operator+(C075 const, C075) { return ret_val; }
-
-class C076 { C076(); public: C076(int) { } };
-ret const volatile operator+(C076 const, C076) { return ret_val; }
-
-class C077 { C077(); public: C077(int) { } };
-ret & operator+(C077 const, C077) { return ret_val; }
-
-class C078 { C078(); public: C078(int) { } };
-ret const & operator+(C078 const, C078) { return ret_val; }
-
-class C079 { C079(); public: C079(int) { } };
-ret volatile & operator+(C079 const, C079) { return ret_val; }
-
-class C080 { C080(); public: C080(int) { } };
-ret const volatile & operator+(C080 const, C080) { return ret_val; }
-
-class C081 { C081(); public: C081(int) { } };
-void operator+(C081 const, C081 const) { }
-
-class C082 { C082(); public: C082(int) { } };
-ret operator+(C082 const, C082 const) { return ret_val; }
-
-class C083 { C083(); public: C083(int) { } };
-ret const operator+(C083 const, C083 const) { return ret_val; }
-
-class C084 { C084(); public: C084(int) { } };
-ret volatile operator+(C084 const, C084 const) { return ret_val; }
-
-class C085 { C085(); public: C085(int) { } };
-ret const volatile operator+(C085 const, C085 const) { return ret_val; }
-
-class C086 { C086(); public: C086(int) { } };
-ret & operator+(C086 const, C086 const) { return ret_val; }
-
-class C087 { C087(); public: C087(int) { } };
-ret const & operator+(C087 const, C087 const) { return ret_val; }
-
-class C088 { C088(); public: C088(int) { } };
-ret volatile & operator+(C088 const, C088 const) { return ret_val; }
-
-class C089 { C089(); public: C089(int) { } };
-ret const volatile & operator+(C089 const, C089 const) { return ret_val; }
-
-class C090 { C090(); public: C090(int) { } };
-void operator+(C090 const, C090 volatile) { }
-
-class C091 { C091(); public: C091(int) { } };
-ret operator+(C091 const, C091 volatile) { return ret_val; }
-
-class C092 { C092(); public: C092(int) { } };
-ret const operator+(C092 const, C092 volatile) { return ret_val; }
-
-class C093 { C093(); public: C093(int) { } };
-ret volatile operator+(C093 const, C093 volatile) { return ret_val; }
-
-class C094 { C094(); public: C094(int) { } };
-ret const volatile operator+(C094 const, C094 volatile) { return ret_val; }
-
-class C095 { C095(); public: C095(int) { } };
-ret & operator+(C095 const, C095 volatile) { return ret_val; }
-
-class C096 { C096(); public: C096(int) { } };
-ret const & operator+(C096 const, C096 volatile) { return ret_val; }
-
-class C097 { C097(); public: C097(int) { } };
-ret volatile & operator+(C097 const, C097 volatile) { return ret_val; }
-
-class C098 { C098(); public: C098(int) { } };
-ret const volatile & operator+(C098 const, C098 volatile) { return ret_val; }
-
-class C099 { C099(); public: C099(int) { } };
-void operator+(C099 const, C099 const volatile) { }
-
-class C100 { C100(); public: C100(int) { } };
-ret operator+(C100 const, C100 const volatile) { return ret_val; }
-
-class C101 { C101(); public: C101(int) { } };
-ret const operator+(C101 const, C101 const volatile) { return ret_val; }
-
-class C102 { C102(); public: C102(int) { } };
-ret volatile operator+(C102 const, C102 const volatile) { return ret_val; }
-
-class C103 { C103(); public: C103(int) { } };
-ret const volatile operator+(C103 const, C103 const volatile) { return ret_val; }
-
-class C104 { C104(); public: C104(int) { } };
-ret & operator+(C104 const, C104 const volatile) { return ret_val; }
-
-class C105 { C105(); public: C105(int) { } };
-ret const & operator+(C105 const, C105 const volatile) { return ret_val; }
-
-class C106 { C106(); public: C106(int) { } };
-ret volatile & operator+(C106 const, C106 const volatile) { return ret_val; }
-
-class C107 { C107(); public: C107(int) { } };
-ret const volatile & operator+(C107 const, C107 const volatile) { return ret_val; }
-
-class C108 { C108(); public: C108(int) { } };
-void operator+(C108 const, C108 &) { }
-
-class C109 { C109(); public: C109(int) { } };
-ret operator+(C109 const, C109 &) { return ret_val; }
-
-class C110 { C110(); public: C110(int) { } };
-ret const operator+(C110 const, C110 &) { return ret_val; }
-
-class C111 { C111(); public: C111(int) { } };
-ret volatile operator+(C111 const, C111 &) { return ret_val; }
-
-class C112 { C112(); public: C112(int) { } };
-ret const volatile operator+(C112 const, C112 &) { return ret_val; }
-
-class C113 { C113(); public: C113(int) { } };
-ret & operator+(C113 const, C113 &) { return ret_val; }
-
-class C114 { C114(); public: C114(int) { } };
-ret const & operator+(C114 const, C114 &) { return ret_val; }
-
-class C115 { C115(); public: C115(int) { } };
-ret volatile & operator+(C115 const, C115 &) { return ret_val; }
-
-class C116 { C116(); public: C116(int) { } };
-ret const volatile & operator+(C116 const, C116 &) { return ret_val; }
-
-class C117 { C117(); public: C117(int) { } };
-void operator+(C117 const, C117 const &) { }
-
-class C118 { C118(); public: C118(int) { } };
-ret operator+(C118 const, C118 const &) { return ret_val; }
-
-class C119 { C119(); public: C119(int) { } };
-ret const operator+(C119 const, C119 const &) { return ret_val; }
-
-class C120 { C120(); public: C120(int) { } };
-ret volatile operator+(C120 const, C120 const &) { return ret_val; }
-
-class C121 { C121(); public: C121(int) { } };
-ret const volatile operator+(C121 const, C121 const &) { return ret_val; }
-
-class C122 { C122(); public: C122(int) { } };
-ret & operator+(C122 const, C122 const &) { return ret_val; }
-
-class C123 { C123(); public: C123(int) { } };
-ret const & operator+(C123 const, C123 const &) { return ret_val; }
-
-class C124 { C124(); public: C124(int) { } };
-ret volatile & operator+(C124 const, C124 const &) { return ret_val; }
-
-class C125 { C125(); public: C125(int) { } };
-ret const volatile & operator+(C125 const, C125 const &) { return ret_val; }
-
-class C126 { C126(); public: C126(int) { } };
-void operator+(C126 const, C126 volatile &) { }
-
-class C127 { C127(); public: C127(int) { } };
-ret operator+(C127 const, C127 volatile &) { return ret_val; }
-
-class C128 { C128(); public: C128(int) { } };
-ret const operator+(C128 const, C128 volatile &) { return ret_val; }
-
-class C129 { C129(); public: C129(int) { } };
-ret volatile operator+(C129 const, C129 volatile &) { return ret_val; }
-
-class C130 { C130(); public: C130(int) { } };
-ret const volatile operator+(C130 const, C130 volatile &) { return ret_val; }
-
-class C131 { C131(); public: C131(int) { } };
-ret & operator+(C131 const, C131 volatile &) { return ret_val; }
-
-class C132 { C132(); public: C132(int) { } };
-ret const & operator+(C132 const, C132 volatile &) { return ret_val; }
-
-class C133 { C133(); public: C133(int) { } };
-ret volatile & operator+(C133 const, C133 volatile &) { return ret_val; }
-
-class C134 { C134(); public: C134(int) { } };
-ret const volatile & operator+(C134 const, C134 volatile &) { return ret_val; }
-
-class C135 { C135(); public: C135(int) { } };
-void operator+(C135 const, C135 const volatile &) { }
-
-class C136 { C136(); public: C136(int) { } };
-ret operator+(C136 const, C136 const volatile &) { return ret_val; }
-
-class C137 { C137(); public: C137(int) { } };
-ret const operator+(C137 const, C137 const volatile &) { return ret_val; }
-
-class C138 { C138(); public: C138(int) { } };
-ret volatile operator+(C138 const, C138 const volatile &) { return ret_val; }
-
-class C139 { C139(); public: C139(int) { } };
-ret const volatile operator+(C139 const, C139 const volatile &) { return ret_val; }
-
-class C140 { C140(); public: C140(int) { } };
-ret & operator+(C140 const, C140 const volatile &) { return ret_val; }
-
-class C141 { C141(); public: C141(int) { } };
-ret const & operator+(C141 const, C141 const volatile &) { return ret_val; }
-
-class C142 { C142(); public: C142(int) { } };
-ret volatile & operator+(C142 const, C142 const volatile &) { return ret_val; }
-
-class C143 { C143(); public: C143(int) { } };
-ret const volatile & operator+(C143 const, C143 const volatile &) { return ret_val; }
-
-class C144 { C144(); public: C144(int) { } };
-void operator+(C144 volatile, C144) { }
-
-class C145 { C145(); public: C145(int) { } };
-ret operator+(C145 volatile, C145) { return ret_val; }
-
-class C146 { C146(); public: C146(int) { } };
-ret const operator+(C146 volatile, C146) { return ret_val; }
-
-class C147 { C147(); public: C147(int) { } };
-ret volatile operator+(C147 volatile, C147) { return ret_val; }
-
-class C148 { C148(); public: C148(int) { } };
-ret const volatile operator+(C148 volatile, C148) { return ret_val; }
-
-class C149 { C149(); public: C149(int) { } };
-ret & operator+(C149 volatile, C149) { return ret_val; }
-
-class C150 { C150(); public: C150(int) { } };
-ret const & operator+(C150 volatile, C150) { return ret_val; }
-
-class C151 { C151(); public: C151(int) { } };
-ret volatile & operator+(C151 volatile, C151) { return ret_val; }
-
-class C152 { C152(); public: C152(int) { } };
-ret const volatile & operator+(C152 volatile, C152) { return ret_val; }
-
-class C153 { C153(); public: C153(int) { } };
-void operator+(C153 volatile, C153 const) { }
-
-class C154 { C154(); public: C154(int) { } };
-ret operator+(C154 volatile, C154 const) { return ret_val; }
-
-class C155 { C155(); public: C155(int) { } };
-ret const operator+(C155 volatile, C155 const) { return ret_val; }
-
-class C156 { C156(); public: C156(int) { } };
-ret volatile operator+(C156 volatile, C156 const) { return ret_val; }
-
-class C157 { C157(); public: C157(int) { } };
-ret const volatile operator+(C157 volatile, C157 const) { return ret_val; }
-
-class C158 { C158(); public: C158(int) { } };
-ret & operator+(C158 volatile, C158 const) { return ret_val; }
-
-class C159 { C159(); public: C159(int) { } };
-ret const & operator+(C159 volatile, C159 const) { return ret_val; }
-
-class C160 { C160(); public: C160(int) { } };
-ret volatile & operator+(C160 volatile, C160 const) { return ret_val; }
-
-class C161 { C161(); public: C161(int) { } };
-ret const volatile & operator+(C161 volatile, C161 const) { return ret_val; }
-
-class C162 { C162(); public: C162(int) { } };
-void operator+(C162 volatile, C162 volatile) { }
-
-class C163 { C163(); public: C163(int) { } };
-ret operator+(C163 volatile, C163 volatile) { return ret_val; }
-
-class C164 { C164(); public: C164(int) { } };
-ret const operator+(C164 volatile, C164 volatile) { return ret_val; }
-
-class C165 { C165(); public: C165(int) { } };
-ret volatile operator+(C165 volatile, C165 volatile) { return ret_val; }
-
-class C166 { C166(); public: C166(int) { } };
-ret const volatile operator+(C166 volatile, C166 volatile) { return ret_val; }
-
-class C167 { C167(); public: C167(int) { } };
-ret & operator+(C167 volatile, C167 volatile) { return ret_val; }
-
-class C168 { C168(); public: C168(int) { } };
-ret const & operator+(C168 volatile, C168 volatile) { return ret_val; }
-
-class C169 { C169(); public: C169(int) { } };
-ret volatile & operator+(C169 volatile, C169 volatile) { return ret_val; }
-
-class C170 { C170(); public: C170(int) { } };
-ret const volatile & operator+(C170 volatile, C170 volatile) { return ret_val; }
-
-class C171 { C171(); public: C171(int) { } };
-void operator+(C171 volatile, C171 const volatile) { }
-
-class C172 { C172(); public: C172(int) { } };
-ret operator+(C172 volatile, C172 const volatile) { return ret_val; }
-
-class C173 { C173(); public: C173(int) { } };
-ret const operator+(C173 volatile, C173 const volatile) { return ret_val; }
-
-class C174 { C174(); public: C174(int) { } };
-ret volatile operator+(C174 volatile, C174 const volatile) { return ret_val; }
-
-class C175 { C175(); public: C175(int) { } };
-ret const volatile operator+(C175 volatile, C175 const volatile) { return ret_val; }
-
-class C176 { C176(); public: C176(int) { } };
-ret & operator+(C176 volatile, C176 const volatile) { return ret_val; }
-
-class C177 { C177(); public: C177(int) { } };
-ret const & operator+(C177 volatile, C177 const volatile) { return ret_val; }
-
-class C178 { C178(); public: C178(int) { } };
-ret volatile & operator+(C178 volatile, C178 const volatile) { return ret_val; }
-
-class C179 { C179(); public: C179(int) { } };
-ret const volatile & operator+(C179 volatile, C179 const volatile) { return ret_val; }
-
-class C180 { C180(); public: C180(int) { } };
-void operator+(C180 volatile, C180 &) { }
-
-class C181 { C181(); public: C181(int) { } };
-ret operator+(C181 volatile, C181 &) { return ret_val; }
-
-class C182 { C182(); public: C182(int) { } };
-ret const operator+(C182 volatile, C182 &) { return ret_val; }
-
-class C183 { C183(); public: C183(int) { } };
-ret volatile operator+(C183 volatile, C183 &) { return ret_val; }
-
-class C184 { C184(); public: C184(int) { } };
-ret const volatile operator+(C184 volatile, C184 &) { return ret_val; }
-
-class C185 { C185(); public: C185(int) { } };
-ret & operator+(C185 volatile, C185 &) { return ret_val; }
-
-class C186 { C186(); public: C186(int) { } };
-ret const & operator+(C186 volatile, C186 &) { return ret_val; }
-
-class C187 { C187(); public: C187(int) { } };
-ret volatile & operator+(C187 volatile, C187 &) { return ret_val; }
-
-class C188 { C188(); public: C188(int) { } };
-ret const volatile & operator+(C188 volatile, C188 &) { return ret_val; }
-
-class C189 { C189(); public: C189(int) { } };
-void operator+(C189 volatile, C189 const &) { }
-
-class C190 { C190(); public: C190(int) { } };
-ret operator+(C190 volatile, C190 const &) { return ret_val; }
-
-class C191 { C191(); public: C191(int) { } };
-ret const operator+(C191 volatile, C191 const &) { return ret_val; }
-
-class C192 { C192(); public: C192(int) { } };
-ret volatile operator+(C192 volatile, C192 const &) { return ret_val; }
-
-class C193 { C193(); public: C193(int) { } };
-ret const volatile operator+(C193 volatile, C193 const &) { return ret_val; }
-
-class C194 { C194(); public: C194(int) { } };
-ret & operator+(C194 volatile, C194 const &) { return ret_val; }
-
-class C195 { C195(); public: C195(int) { } };
-ret const & operator+(C195 volatile, C195 const &) { return ret_val; }
-
-class C196 { C196(); public: C196(int) { } };
-ret volatile & operator+(C196 volatile, C196 const &) { return ret_val; }
-
-class C197 { C197(); public: C197(int) { } };
-ret const volatile & operator+(C197 volatile, C197 const &) { return ret_val; }
-
-class C198 { C198(); public: C198(int) { } };
-void operator+(C198 volatile, C198 volatile &) { }
-
-class C199 { C199(); public: C199(int) { } };
-ret operator+(C199 volatile, C199 volatile &) { return ret_val; }
-
-class C200 { C200(); public: C200(int) { } };
-ret const operator+(C200 volatile, C200 volatile &) { return ret_val; }
-
-class C201 { C201(); public: C201(int) { } };
-ret volatile operator+(C201 volatile, C201 volatile &) { return ret_val; }
-
-class C202 { C202(); public: C202(int) { } };
-ret const volatile operator+(C202 volatile, C202 volatile &) { return ret_val; }
-
-class C203 { C203(); public: C203(int) { } };
-ret & operator+(C203 volatile, C203 volatile &) { return ret_val; }
-
-class C204 { C204(); public: C204(int) { } };
-ret const & operator+(C204 volatile, C204 volatile &) { return ret_val; }
-
-class C205 { C205(); public: C205(int) { } };
-ret volatile & operator+(C205 volatile, C205 volatile &) { return ret_val; }
-
-class C206 { C206(); public: C206(int) { } };
-ret const volatile & operator+(C206 volatile, C206 volatile &) { return ret_val; }
-
-class C207 { C207(); public: C207(int) { } };
-void operator+(C207 volatile, C207 const volatile &) { }
-
-class C208 { C208(); public: C208(int) { } };
-ret operator+(C208 volatile, C208 const volatile &) { return ret_val; }
-
-class C209 { C209(); public: C209(int) { } };
-ret const operator+(C209 volatile, C209 const volatile &) { return ret_val; }
-
-class C210 { C210(); public: C210(int) { } };
-ret volatile operator+(C210 volatile, C210 const volatile &) { return ret_val; }
-
-class C211 { C211(); public: C211(int) { } };
-ret const volatile operator+(C211 volatile, C211 const volatile &) { return ret_val; }
-
-class C212 { C212(); public: C212(int) { } };
-ret & operator+(C212 volatile, C212 const volatile &) { return ret_val; }
-
-class C213 { C213(); public: C213(int) { } };
-ret const & operator+(C213 volatile, C213 const volatile &) { return ret_val; }
-
-class C214 { C214(); public: C214(int) { } };
-ret volatile & operator+(C214 volatile, C214 const volatile &) { return ret_val; }
-
-class C215 { C215(); public: C215(int) { } };
-ret const volatile & operator+(C215 volatile, C215 const volatile &) { return ret_val; }
-
-class C216 { C216(); public: C216(int) { } };
-void operator+(C216 const volatile, C216) { }
-
-class C217 { C217(); public: C217(int) { } };
-ret operator+(C217 const volatile, C217) { return ret_val; }
-
-class C218 { C218(); public: C218(int) { } };
-ret const operator+(C218 const volatile, C218) { return ret_val; }
-
-class C219 { C219(); public: C219(int) { } };
-ret volatile operator+(C219 const volatile, C219) { return ret_val; }
-
-class C220 { C220(); public: C220(int) { } };
-ret const volatile operator+(C220 const volatile, C220) { return ret_val; }
-
-class C221 { C221(); public: C221(int) { } };
-ret & operator+(C221 const volatile, C221) { return ret_val; }
-
-class C222 { C222(); public: C222(int) { } };
-ret const & operator+(C222 const volatile, C222) { return ret_val; }
-
-class C223 { C223(); public: C223(int) { } };
-ret volatile & operator+(C223 const volatile, C223) { return ret_val; }
-
-class C224 { C224(); public: C224(int) { } };
-ret const volatile & operator+(C224 const volatile, C224) { return ret_val; }
-
-class C225 { C225(); public: C225(int) { } };
-void operator+(C225 const volatile, C225 const) { }
-
-class C226 { C226(); public: C226(int) { } };
-ret operator+(C226 const volatile, C226 const) { return ret_val; }
-
-class C227 { C227(); public: C227(int) { } };
-ret const operator+(C227 const volatile, C227 const) { return ret_val; }
-
-class C228 { C228(); public: C228(int) { } };
-ret volatile operator+(C228 const volatile, C228 const) { return ret_val; }
-
-class C229 { C229(); public: C229(int) { } };
-ret const volatile operator+(C229 const volatile, C229 const) { return ret_val; }
-
-class C230 { C230(); public: C230(int) { } };
-ret & operator+(C230 const volatile, C230 const) { return ret_val; }
-
-class C231 { C231(); public: C231(int) { } };
-ret const & operator+(C231 const volatile, C231 const) { return ret_val; }
-
-class C232 { C232(); public: C232(int) { } };
-ret volatile & operator+(C232 const volatile, C232 const) { return ret_val; }
-
-class C233 { C233(); public: C233(int) { } };
-ret const volatile & operator+(C233 const volatile, C233 const) { return ret_val; }
-
-class C234 { C234(); public: C234(int) { } };
-void operator+(C234 const volatile, C234 volatile) { }
-
-class C235 { C235(); public: C235(int) { } };
-ret operator+(C235 const volatile, C235 volatile) { return ret_val; }
-
-class C236 { C236(); public: C236(int) { } };
-ret const operator+(C236 const volatile, C236 volatile) { return ret_val; }
-
-class C237 { C237(); public: C237(int) { } };
-ret volatile operator+(C237 const volatile, C237 volatile) { return ret_val; }
-
-class C238 { C238(); public: C238(int) { } };
-ret const volatile operator+(C238 const volatile, C238 volatile) { return ret_val; }
-
-class C239 { C239(); public: C239(int) { } };
-ret & operator+(C239 const volatile, C239 volatile) { return ret_val; }
-
-class C240 { C240(); public: C240(int) { } };
-ret const & operator+(C240 const volatile, C240 volatile) { return ret_val; }
-
-class C241 { C241(); public: C241(int) { } };
-ret volatile & operator+(C241 const volatile, C241 volatile) { return ret_val; }
-
-class C242 { C242(); public: C242(int) { } };
-ret const volatile & operator+(C242 const volatile, C242 volatile) { return ret_val; }
-
-class C243 { C243(); public: C243(int) { } };
-void operator+(C243 const volatile, C243 const volatile) { }
-
-class C244 { C244(); public: C244(int) { } };
-ret operator+(C244 const volatile, C244 const volatile) { return ret_val; }
-
-class C245 { C245(); public: C245(int) { } };
-ret const operator+(C245 const volatile, C245 const volatile) { return ret_val; }
-
-class C246 { C246(); public: C246(int) { } };
-ret volatile operator+(C246 const volatile, C246 const volatile) { return ret_val; }
-
-class C247 { C247(); public: C247(int) { } };
-ret const volatile operator+(C247 const volatile, C247 const volatile) { return ret_val; }
-
-class C248 { C248(); public: C248(int) { } };
-ret & operator+(C248 const volatile, C248 const volatile) { return ret_val; }
-
-class C249 { C249(); public: C249(int) { } };
-ret const & operator+(C249 const volatile, C249 const volatile) { return ret_val; }
-
-class C250 { C250(); public: C250(int) { } };
-ret volatile & operator+(C250 const volatile, C250 const volatile) { return ret_val; }
-
-class C251 { C251(); public: C251(int) { } };
-ret const volatile & operator+(C251 const volatile, C251 const volatile) { return ret_val; }
-
-class C252 { C252(); public: C252(int) { } };
-void operator+(C252 const volatile, C252 &) { }
-
-class C253 { C253(); public: C253(int) { } };
-ret operator+(C253 const volatile, C253 &) { return ret_val; }
-
-class C254 { C254(); public: C254(int) { } };
-ret const operator+(C254 const volatile, C254 &) { return ret_val; }
-
-class C255 { C255(); public: C255(int) { } };
-ret volatile operator+(C255 const volatile, C255 &) { return ret_val; }
-
-class C256 { C256(); public: C256(int) { } };
-ret const volatile operator+(C256 const volatile, C256 &) { return ret_val; }
-
-class C257 { C257(); public: C257(int) { } };
-ret & operator+(C257 const volatile, C257 &) { return ret_val; }
-
-class C258 { C258(); public: C258(int) { } };
-ret const & operator+(C258 const volatile, C258 &) { return ret_val; }
-
-class C259 { C259(); public: C259(int) { } };
-ret volatile & operator+(C259 const volatile, C259 &) { return ret_val; }
-
-class C260 { C260(); public: C260(int) { } };
-ret const volatile & operator+(C260 const volatile, C260 &) { return ret_val; }
-
-class C261 { C261(); public: C261(int) { } };
-void operator+(C261 const volatile, C261 const &) { }
-
-class C262 { C262(); public: C262(int) { } };
-ret operator+(C262 const volatile, C262 const &) { return ret_val; }
-
-class C263 { C263(); public: C263(int) { } };
-ret const operator+(C263 const volatile, C263 const &) { return ret_val; }
-
-class C264 { C264(); public: C264(int) { } };
-ret volatile operator+(C264 const volatile, C264 const &) { return ret_val; }
-
-class C265 { C265(); public: C265(int) { } };
-ret const volatile operator+(C265 const volatile, C265 const &) { return ret_val; }
-
-class C266 { C266(); public: C266(int) { } };
-ret & operator+(C266 const volatile, C266 const &) { return ret_val; }
-
-class C267 { C267(); public: C267(int) { } };
-ret const & operator+(C267 const volatile, C267 const &) { return ret_val; }
-
-class C268 { C268(); public: C268(int) { } };
-ret volatile & operator+(C268 const volatile, C268 const &) { return ret_val; }
-
-class C269 { C269(); public: C269(int) { } };
-ret const volatile & operator+(C269 const volatile, C269 const &) { return ret_val; }
-
-class C270 { C270(); public: C270(int) { } };
-void operator+(C270 const volatile, C270 volatile &) { }
-
-class C271 { C271(); public: C271(int) { } };
-ret operator+(C271 const volatile, C271 volatile &) { return ret_val; }
-
-class C272 { C272(); public: C272(int) { } };
-ret const operator+(C272 const volatile, C272 volatile &) { return ret_val; }
-
-class C273 { C273(); public: C273(int) { } };
-ret volatile operator+(C273 const volatile, C273 volatile &) { return ret_val; }
-
-class C274 { C274(); public: C274(int) { } };
-ret const volatile operator+(C274 const volatile, C274 volatile &) { return ret_val; }
-
-class C275 { C275(); public: C275(int) { } };
-ret & operator+(C275 const volatile, C275 volatile &) { return ret_val; }
-
-class C276 { C276(); public: C276(int) { } };
-ret const & operator+(C276 const volatile, C276 volatile &) { return ret_val; }
-
-class C277 { C277(); public: C277(int) { } };
-ret volatile & operator+(C277 const volatile, C277 volatile &) { return ret_val; }
-
-class C278 { C278(); public: C278(int) { } };
-ret const volatile & operator+(C278 const volatile, C278 volatile &) { return ret_val; }
-
-class C279 { C279(); public: C279(int) { } };
-void operator+(C279 const volatile, C279 const volatile &) { }
-
-class C280 { C280(); public: C280(int) { } };
-ret operator+(C280 const volatile, C280 const volatile &) { return ret_val; }
-
-class C281 { C281(); public: C281(int) { } };
-ret const operator+(C281 const volatile, C281 const volatile &) { return ret_val; }
-
-class C282 { C282(); public: C282(int) { } };
-ret volatile operator+(C282 const volatile, C282 const volatile &) { return ret_val; }
-
-class C283 { C283(); public: C283(int) { } };
-ret const volatile operator+(C283 const volatile, C283 const volatile &) { return ret_val; }
-
-class C284 { C284(); public: C284(int) { } };
-ret & operator+(C284 const volatile, C284 const volatile &) { return ret_val; }
-
-class C285 { C285(); public: C285(int) { } };
-ret const & operator+(C285 const volatile, C285 const volatile &) { return ret_val; }
-
-class C286 { C286(); public: C286(int) { } };
-ret volatile & operator+(C286 const volatile, C286 const volatile &) { return ret_val; }
-
-class C287 { C287(); public: C287(int) { } };
-ret const volatile & operator+(C287 const volatile, C287 const volatile &) { return ret_val; }
-
-class C288 { C288(); public: C288(int) { } };
-void operator+(C288 &, C288) { }
-
-class C289 { C289(); public: C289(int) { } };
-ret operator+(C289 &, C289) { return ret_val; }
-
-class C290 { C290(); public: C290(int) { } };
-ret const operator+(C290 &, C290) { return ret_val; }
-
-class C291 { C291(); public: C291(int) { } };
-ret volatile operator+(C291 &, C291) { return ret_val; }
-
-class C292 { C292(); public: C292(int) { } };
-ret const volatile operator+(C292 &, C292) { return ret_val; }
-
-class C293 { C293(); public: C293(int) { } };
-ret & operator+(C293 &, C293) { return ret_val; }
-
-class C294 { C294(); public: C294(int) { } };
-ret const & operator+(C294 &, C294) { return ret_val; }
-
-class C295 { C295(); public: C295(int) { } };
-ret volatile & operator+(C295 &, C295) { return ret_val; }
-
-class C296 { C296(); public: C296(int) { } };
-ret const volatile & operator+(C296 &, C296) { return ret_val; }
-
-class C297 { C297(); public: C297(int) { } };
-void operator+(C297 &, C297 const) { }
-
-class C298 { C298(); public: C298(int) { } };
-ret operator+(C298 &, C298 const) { return ret_val; }
-
-class C299 { C299(); public: C299(int) { } };
-ret const operator+(C299 &, C299 const) { return ret_val; }
-
-class C300 { C300(); public: C300(int) { } };
-ret volatile operator+(C300 &, C300 const) { return ret_val; }
-
-class C301 { C301(); public: C301(int) { } };
-ret const volatile operator+(C301 &, C301 const) { return ret_val; }
-
-class C302 { C302(); public: C302(int) { } };
-ret & operator+(C302 &, C302 const) { return ret_val; }
-
-class C303 { C303(); public: C303(int) { } };
-ret const & operator+(C303 &, C303 const) { return ret_val; }
-
-class C304 { C304(); public: C304(int) { } };
-ret volatile & operator+(C304 &, C304 const) { return ret_val; }
-
-class C305 { C305(); public: C305(int) { } };
-ret const volatile & operator+(C305 &, C305 const) { return ret_val; }
-
-class C306 { C306(); public: C306(int) { } };
-void operator+(C306 &, C306 volatile) { }
-
-class C307 { C307(); public: C307(int) { } };
-ret operator+(C307 &, C307 volatile) { return ret_val; }
-
-class C308 { C308(); public: C308(int) { } };
-ret const operator+(C308 &, C308 volatile) { return ret_val; }
-
-class C309 { C309(); public: C309(int) { } };
-ret volatile operator+(C309 &, C309 volatile) { return ret_val; }
-
-class C310 { C310(); public: C310(int) { } };
-ret const volatile operator+(C310 &, C310 volatile) { return ret_val; }
-
-class C311 { C311(); public: C311(int) { } };
-ret & operator+(C311 &, C311 volatile) { return ret_val; }
-
-class C312 { C312(); public: C312(int) { } };
-ret const & operator+(C312 &, C312 volatile) { return ret_val; }
-
-class C313 { C313(); public: C313(int) { } };
-ret volatile & operator+(C313 &, C313 volatile) { return ret_val; }
-
-class C314 { C314(); public: C314(int) { } };
-ret const volatile & operator+(C314 &, C314 volatile) { return ret_val; }
-
-class C315 { C315(); public: C315(int) { } };
-void operator+(C315 &, C315 const volatile) { }
-
-class C316 { C316(); public: C316(int) { } };
-ret operator+(C316 &, C316 const volatile) { return ret_val; }
-
-class C317 { C317(); public: C317(int) { } };
-ret const operator+(C317 &, C317 const volatile) { return ret_val; }
-
-class C318 { C318(); public: C318(int) { } };
-ret volatile operator+(C318 &, C318 const volatile) { return ret_val; }
-
-class C319 { C319(); public: C319(int) { } };
-ret const volatile operator+(C319 &, C319 const volatile) { return ret_val; }
-
-class C320 { C320(); public: C320(int) { } };
-ret & operator+(C320 &, C320 const volatile) { return ret_val; }
-
-class C321 { C321(); public: C321(int) { } };
-ret const & operator+(C321 &, C321 const volatile) { return ret_val; }
-
-class C322 { C322(); public: C322(int) { } };
-ret volatile & operator+(C322 &, C322 const volatile) { return ret_val; }
-
-class C323 { C323(); public: C323(int) { } };
-ret const volatile & operator+(C323 &, C323 const volatile) { return ret_val; }
-
-class C324 { C324(); public: C324(int) { } };
-void operator+(C324 &, C324 &) { }
-
-class C325 { C325(); public: C325(int) { } };
-ret operator+(C325 &, C325 &) { return ret_val; }
-
-class C326 { C326(); public: C326(int) { } };
-ret const operator+(C326 &, C326 &) { return ret_val; }
-
-class C327 { C327(); public: C327(int) { } };
-ret volatile operator+(C327 &, C327 &) { return ret_val; }
-
-class C328 { C328(); public: C328(int) { } };
-ret const volatile operator+(C328 &, C328 &) { return ret_val; }
-
-class C329 { C329(); public: C329(int) { } };
-ret & operator+(C329 &, C329 &) { return ret_val; }
-
-class C330 { C330(); public: C330(int) { } };
-ret const & operator+(C330 &, C330 &) { return ret_val; }
-
-class C331 { C331(); public: C331(int) { } };
-ret volatile & operator+(C331 &, C331 &) { return ret_val; }
-
-class C332 { C332(); public: C332(int) { } };
-ret const volatile & operator+(C332 &, C332 &) { return ret_val; }
-
-class C333 { C333(); public: C333(int) { } };
-void operator+(C333 &, C333 const &) { }
-
-class C334 { C334(); public: C334(int) { } };
-ret operator+(C334 &, C334 const &) { return ret_val; }
-
-class C335 { C335(); public: C335(int) { } };
-ret const operator+(C335 &, C335 const &) { return ret_val; }
-
-class C336 { C336(); public: C336(int) { } };
-ret volatile operator+(C336 &, C336 const &) { return ret_val; }
-
-class C337 { C337(); public: C337(int) { } };
-ret const volatile operator+(C337 &, C337 const &) { return ret_val; }
-
-class C338 { C338(); public: C338(int) { } };
-ret & operator+(C338 &, C338 const &) { return ret_val; }
-
-class C339 { C339(); public: C339(int) { } };
-ret const & operator+(C339 &, C339 const &) { return ret_val; }
-
-class C340 { C340(); public: C340(int) { } };
-ret volatile & operator+(C340 &, C340 const &) { return ret_val; }
-
-class C341 { C341(); public: C341(int) { } };
-ret const volatile & operator+(C341 &, C341 const &) { return ret_val; }
-
-class C342 { C342(); public: C342(int) { } };
-void operator+(C342 &, C342 volatile &) { }
-
-class C343 { C343(); public: C343(int) { } };
-ret operator+(C343 &, C343 volatile &) { return ret_val; }
-
-class C344 { C344(); public: C344(int) { } };
-ret const operator+(C344 &, C344 volatile &) { return ret_val; }
-
-class C345 { C345(); public: C345(int) { } };
-ret volatile operator+(C345 &, C345 volatile &) { return ret_val; }
-
-class C346 { C346(); public: C346(int) { } };
-ret const volatile operator+(C346 &, C346 volatile &) { return ret_val; }
-
-class C347 { C347(); public: C347(int) { } };
-ret & operator+(C347 &, C347 volatile &) { return ret_val; }
-
-class C348 { C348(); public: C348(int) { } };
-ret const & operator+(C348 &, C348 volatile &) { return ret_val; }
-
-class C349 { C349(); public: C349(int) { } };
-ret volatile & operator+(C349 &, C349 volatile &) { return ret_val; }
-
-class C350 { C350(); public: C350(int) { } };
-ret const volatile & operator+(C350 &, C350 volatile &) { return ret_val; }
-
-class C351 { C351(); public: C351(int) { } };
-void operator+(C351 &, C351 const volatile &) { }
-
-class C352 { C352(); public: C352(int) { } };
-ret operator+(C352 &, C352 const volatile &) { return ret_val; }
-
-class C353 { C353(); public: C353(int) { } };
-ret const operator+(C353 &, C353 const volatile &) { return ret_val; }
-
-class C354 { C354(); public: C354(int) { } };
-ret volatile operator+(C354 &, C354 const volatile &) { return ret_val; }
-
-class C355 { C355(); public: C355(int) { } };
-ret const volatile operator+(C355 &, C355 const volatile &) { return ret_val; }
-
-class C356 { C356(); public: C356(int) { } };
-ret & operator+(C356 &, C356 const volatile &) { return ret_val; }
-
-class C357 { C357(); public: C357(int) { } };
-ret const & operator+(C357 &, C357 const volatile &) { return ret_val; }
-
-class C358 { C358(); public: C358(int) { } };
-ret volatile & operator+(C358 &, C358 const volatile &) { return ret_val; }
-
-class C359 { C359(); public: C359(int) { } };
-ret const volatile & operator+(C359 &, C359 const volatile &) { return ret_val; }
-
-class C360 { C360(); public: C360(int) { } };
-void operator+(C360 const &, C360) { }
-
-class C361 { C361(); public: C361(int) { } };
-ret operator+(C361 const &, C361) { return ret_val; }
-
-class C362 { C362(); public: C362(int) { } };
-ret const operator+(C362 const &, C362) { return ret_val; }
-
-class C363 { C363(); public: C363(int) { } };
-ret volatile operator+(C363 const &, C363) { return ret_val; }
-
-class C364 { C364(); public: C364(int) { } };
-ret const volatile operator+(C364 const &, C364) { return ret_val; }
-
-class C365 { C365(); public: C365(int) { } };
-ret & operator+(C365 const &, C365) { return ret_val; }
-
-class C366 { C366(); public: C366(int) { } };
-ret const & operator+(C366 const &, C366) { return ret_val; }
-
-class C367 { C367(); public: C367(int) { } };
-ret volatile & operator+(C367 const &, C367) { return ret_val; }
-
-class C368 { C368(); public: C368(int) { } };
-ret const volatile & operator+(C368 const &, C368) { return ret_val; }
-
-class C369 { C369(); public: C369(int) { } };
-void operator+(C369 const &, C369 const) { }
-
-class C370 { C370(); public: C370(int) { } };
-ret operator+(C370 const &, C370 const) { return ret_val; }
-
-class C371 { C371(); public: C371(int) { } };
-ret const operator+(C371 const &, C371 const) { return ret_val; }
-
-class C372 { C372(); public: C372(int) { } };
-ret volatile operator+(C372 const &, C372 const) { return ret_val; }
-
-class C373 { C373(); public: C373(int) { } };
-ret const volatile operator+(C373 const &, C373 const) { return ret_val; }
-
-class C374 { C374(); public: C374(int) { } };
-ret & operator+(C374 const &, C374 const) { return ret_val; }
-
-class C375 { C375(); public: C375(int) { } };
-ret const & operator+(C375 const &, C375 const) { return ret_val; }
-
-class C376 { C376(); public: C376(int) { } };
-ret volatile & operator+(C376 const &, C376 const) { return ret_val; }
-
-class C377 { C377(); public: C377(int) { } };
-ret const volatile & operator+(C377 const &, C377 const) { return ret_val; }
-
-class C378 { C378(); public: C378(int) { } };
-void operator+(C378 const &, C378 volatile) { }
-
-class C379 { C379(); public: C379(int) { } };
-ret operator+(C379 const &, C379 volatile) { return ret_val; }
-
-class C380 { C380(); public: C380(int) { } };
-ret const operator+(C380 const &, C380 volatile) { return ret_val; }
-
-class C381 { C381(); public: C381(int) { } };
-ret volatile operator+(C381 const &, C381 volatile) { return ret_val; }
-
-class C382 { C382(); public: C382(int) { } };
-ret const volatile operator+(C382 const &, C382 volatile) { return ret_val; }
-
-class C383 { C383(); public: C383(int) { } };
-ret & operator+(C383 const &, C383 volatile) { return ret_val; }
-
-class C384 { C384(); public: C384(int) { } };
-ret const & operator+(C384 const &, C384 volatile) { return ret_val; }
-
-class C385 { C385(); public: C385(int) { } };
-ret volatile & operator+(C385 const &, C385 volatile) { return ret_val; }
-
-class C386 { C386(); public: C386(int) { } };
-ret const volatile & operator+(C386 const &, C386 volatile) { return ret_val; }
-
-class C387 { C387(); public: C387(int) { } };
-void operator+(C387 const &, C387 const volatile) { }
-
-class C388 { C388(); public: C388(int) { } };
-ret operator+(C388 const &, C388 const volatile) { return ret_val; }
-
-class C389 { C389(); public: C389(int) { } };
-ret const operator+(C389 const &, C389 const volatile) { return ret_val; }
-
-class C390 { C390(); public: C390(int) { } };
-ret volatile operator+(C390 const &, C390 const volatile) { return ret_val; }
-
-class C391 { C391(); public: C391(int) { } };
-ret const volatile operator+(C391 const &, C391 const volatile) { return ret_val; }
-
-class C392 { C392(); public: C392(int) { } };
-ret & operator+(C392 const &, C392 const volatile) { return ret_val; }
-
-class C393 { C393(); public: C393(int) { } };
-ret const & operator+(C393 const &, C393 const volatile) { return ret_val; }
-
-class C394 { C394(); public: C394(int) { } };
-ret volatile & operator+(C394 const &, C394 const volatile) { return ret_val; }
-
-class C395 { C395(); public: C395(int) { } };
-ret const volatile & operator+(C395 const &, C395 const volatile) { return ret_val; }
-
-class C396 { C396(); public: C396(int) { } };
-void operator+(C396 const &, C396 &) { }
-
-class C397 { C397(); public: C397(int) { } };
-ret operator+(C397 const &, C397 &) { return ret_val; }
-
-class C398 { C398(); public: C398(int) { } };
-ret const operator+(C398 const &, C398 &) { return ret_val; }
-
-class C399 { C399(); public: C399(int) { } };
-ret volatile operator+(C399 const &, C399 &) { return ret_val; }
-
-class C400 { C400(); public: C400(int) { } };
-ret const volatile operator+(C400 const &, C400 &) { return ret_val; }
-
-class C401 { C401(); public: C401(int) { } };
-ret & operator+(C401 const &, C401 &) { return ret_val; }
-
-class C402 { C402(); public: C402(int) { } };
-ret const & operator+(C402 const &, C402 &) { return ret_val; }
-
-class C403 { C403(); public: C403(int) { } };
-ret volatile & operator+(C403 const &, C403 &) { return ret_val; }
-
-class C404 { C404(); public: C404(int) { } };
-ret const volatile & operator+(C404 const &, C404 &) { return ret_val; }
-
-class C405 { C405(); public: C405(int) { } };
-void operator+(C405 const &, C405 const &) { }
-
-class C406 { C406(); public: C406(int) { } };
-ret operator+(C406 const &, C406 const &) { return ret_val; }
-
-class C407 { C407(); public: C407(int) { } };
-ret const operator+(C407 const &, C407 const &) { return ret_val; }
-
-class C408 { C408(); public: C408(int) { } };
-ret volatile operator+(C408 const &, C408 const &) { return ret_val; }
-
-class C409 { C409(); public: C409(int) { } };
-ret const volatile operator+(C409 const &, C409 const &) { return ret_val; }
-
-class C410 { C410(); public: C410(int) { } };
-ret & operator+(C410 const &, C410 const &) { return ret_val; }
-
-class C411 { C411(); public: C411(int) { } };
-ret const & operator+(C411 const &, C411 const &) { return ret_val; }
-
-class C412 { C412(); public: C412(int) { } };
-ret volatile & operator+(C412 const &, C412 const &) { return ret_val; }
-
-class C413 { C413(); public: C413(int) { } };
-ret const volatile & operator+(C413 const &, C413 const &) { return ret_val; }
-
-class C414 { C414(); public: C414(int) { } };
-void operator+(C414 const &, C414 volatile &) { }
-
-class C415 { C415(); public: C415(int) { } };
-ret operator+(C415 const &, C415 volatile &) { return ret_val; }
-
-class C416 { C416(); public: C416(int) { } };
-ret const operator+(C416 const &, C416 volatile &) { return ret_val; }
-
-class C417 { C417(); public: C417(int) { } };
-ret volatile operator+(C417 const &, C417 volatile &) { return ret_val; }
-
-class C418 { C418(); public: C418(int) { } };
-ret const volatile operator+(C418 const &, C418 volatile &) { return ret_val; }
-
-class C419 { C419(); public: C419(int) { } };
-ret & operator+(C419 const &, C419 volatile &) { return ret_val; }
-
-class C420 { C420(); public: C420(int) { } };
-ret const & operator+(C420 const &, C420 volatile &) { return ret_val; }
-
-class C421 { C421(); public: C421(int) { } };
-ret volatile & operator+(C421 const &, C421 volatile &) { return ret_val; }
-
-class C422 { C422(); public: C422(int) { } };
-ret const volatile & operator+(C422 const &, C422 volatile &) { return ret_val; }
-
-class C423 { C423(); public: C423(int) { } };
-void operator+(C423 const &, C423 const volatile &) { }
-
-class C424 { C424(); public: C424(int) { } };
-ret operator+(C424 const &, C424 const volatile &) { return ret_val; }
-
-class C425 { C425(); public: C425(int) { } };
-ret const operator+(C425 const &, C425 const volatile &) { return ret_val; }
-
-class C426 { C426(); public: C426(int) { } };
-ret volatile operator+(C426 const &, C426 const volatile &) { return ret_val; }
-
-class C427 { C427(); public: C427(int) { } };
-ret const volatile operator+(C427 const &, C427 const volatile &) { return ret_val; }
-
-class C428 { C428(); public: C428(int) { } };
-ret & operator+(C428 const &, C428 const volatile &) { return ret_val; }
-
-class C429 { C429(); public: C429(int) { } };
-ret const & operator+(C429 const &, C429 const volatile &) { return ret_val; }
-
-class C430 { C430(); public: C430(int) { } };
-ret volatile & operator+(C430 const &, C430 const volatile &) { return ret_val; }
-
-class C431 { C431(); public: C431(int) { } };
-ret const volatile & operator+(C431 const &, C431 const volatile &) { return ret_val; }
-
-class C432 { C432(); public: C432(int) { } };
-void operator+(C432 volatile &, C432) { }
-
-class C433 { C433(); public: C433(int) { } };
-ret operator+(C433 volatile &, C433) { return ret_val; }
-
-class C434 { C434(); public: C434(int) { } };
-ret const operator+(C434 volatile &, C434) { return ret_val; }
-
-class C435 { C435(); public: C435(int) { } };
-ret volatile operator+(C435 volatile &, C435) { return ret_val; }
-
-class C436 { C436(); public: C436(int) { } };
-ret const volatile operator+(C436 volatile &, C436) { return ret_val; }
-
-class C437 { C437(); public: C437(int) { } };
-ret & operator+(C437 volatile &, C437) { return ret_val; }
-
-class C438 { C438(); public: C438(int) { } };
-ret const & operator+(C438 volatile &, C438) { return ret_val; }
-
-class C439 { C439(); public: C439(int) { } };
-ret volatile & operator+(C439 volatile &, C439) { return ret_val; }
-
-class C440 { C440(); public: C440(int) { } };
-ret const volatile & operator+(C440 volatile &, C440) { return ret_val; }
-
-class C441 { C441(); public: C441(int) { } };
-void operator+(C441 volatile &, C441 const) { }
-
-class C442 { C442(); public: C442(int) { } };
-ret operator+(C442 volatile &, C442 const) { return ret_val; }
-
-class C443 { C443(); public: C443(int) { } };
-ret const operator+(C443 volatile &, C443 const) { return ret_val; }
-
-class C444 { C444(); public: C444(int) { } };
-ret volatile operator+(C444 volatile &, C444 const) { return ret_val; }
-
-class C445 { C445(); public: C445(int) { } };
-ret const volatile operator+(C445 volatile &, C445 const) { return ret_val; }
-
-class C446 { C446(); public: C446(int) { } };
-ret & operator+(C446 volatile &, C446 const) { return ret_val; }
-
-class C447 { C447(); public: C447(int) { } };
-ret const & operator+(C447 volatile &, C447 const) { return ret_val; }
-
-class C448 { C448(); public: C448(int) { } };
-ret volatile & operator+(C448 volatile &, C448 const) { return ret_val; }
-
-class C449 { C449(); public: C449(int) { } };
-ret const volatile & operator+(C449 volatile &, C449 const) { return ret_val; }
-
-class C450 { C450(); public: C450(int) { } };
-void operator+(C450 volatile &, C450 volatile) { }
-
-class C451 { C451(); public: C451(int) { } };
-ret operator+(C451 volatile &, C451 volatile) { return ret_val; }
-
-class C452 { C452(); public: C452(int) { } };
-ret const operator+(C452 volatile &, C452 volatile) { return ret_val; }
-
-class C453 { C453(); public: C453(int) { } };
-ret volatile operator+(C453 volatile &, C453 volatile) { return ret_val; }
-
-class C454 { C454(); public: C454(int) { } };
-ret const volatile operator+(C454 volatile &, C454 volatile) { return ret_val; }
-
-class C455 { C455(); public: C455(int) { } };
-ret & operator+(C455 volatile &, C455 volatile) { return ret_val; }
-
-class C456 { C456(); public: C456(int) { } };
-ret const & operator+(C456 volatile &, C456 volatile) { return ret_val; }
-
-class C457 { C457(); public: C457(int) { } };
-ret volatile & operator+(C457 volatile &, C457 volatile) { return ret_val; }
-
-class C458 { C458(); public: C458(int) { } };
-ret const volatile & operator+(C458 volatile &, C458 volatile) { return ret_val; }
-
-class C459 { C459(); public: C459(int) { } };
-void operator+(C459 volatile &, C459 const volatile) { }
-
-class C460 { C460(); public: C460(int) { } };
-ret operator+(C460 volatile &, C460 const volatile) { return ret_val; }
-
-class C461 { C461(); public: C461(int) { } };
-ret const operator+(C461 volatile &, C461 const volatile) { return ret_val; }
-
-class C462 { C462(); public: C462(int) { } };
-ret volatile operator+(C462 volatile &, C462 const volatile) { return ret_val; }
-
-class C463 { C463(); public: C463(int) { } };
-ret const volatile operator+(C463 volatile &, C463 const volatile) { return ret_val; }
-
-class C464 { C464(); public: C464(int) { } };
-ret & operator+(C464 volatile &, C464 const volatile) { return ret_val; }
-
-class C465 { C465(); public: C465(int) { } };
-ret const & operator+(C465 volatile &, C465 const volatile) { return ret_val; }
-
-class C466 { C466(); public: C466(int) { } };
-ret volatile & operator+(C466 volatile &, C466 const volatile) { return ret_val; }
-
-class C467 { C467(); public: C467(int) { } };
-ret const volatile & operator+(C467 volatile &, C467 const volatile) { return ret_val; }
-
-class C468 { C468(); public: C468(int) { } };
-void operator+(C468 volatile &, C468 &) { }
-
-class C469 { C469(); public: C469(int) { } };
-ret operator+(C469 volatile &, C469 &) { return ret_val; }
-
-class C470 { C470(); public: C470(int) { } };
-ret const operator+(C470 volatile &, C470 &) { return ret_val; }
-
-class C471 { C471(); public: C471(int) { } };
-ret volatile operator+(C471 volatile &, C471 &) { return ret_val; }
-
-class C472 { C472(); public: C472(int) { } };
-ret const volatile operator+(C472 volatile &, C472 &) { return ret_val; }
-
-class C473 { C473(); public: C473(int) { } };
-ret & operator+(C473 volatile &, C473 &) { return ret_val; }
-
-class C474 { C474(); public: C474(int) { } };
-ret const & operator+(C474 volatile &, C474 &) { return ret_val; }
-
-class C475 { C475(); public: C475(int) { } };
-ret volatile & operator+(C475 volatile &, C475 &) { return ret_val; }
-
-class C476 { C476(); public: C476(int) { } };
-ret const volatile & operator+(C476 volatile &, C476 &) { return ret_val; }
-
-class C477 { C477(); public: C477(int) { } };
-void operator+(C477 volatile &, C477 const &) { }
-
-class C478 { C478(); public: C478(int) { } };
-ret operator+(C478 volatile &, C478 const &) { return ret_val; }
-
-class C479 { C479(); public: C479(int) { } };
-ret const operator+(C479 volatile &, C479 const &) { return ret_val; }
-
-class C480 { C480(); public: C480(int) { } };
-ret volatile operator+(C480 volatile &, C480 const &) { return ret_val; }
-
-class C481 { C481(); public: C481(int) { } };
-ret const volatile operator+(C481 volatile &, C481 const &) { return ret_val; }
-
-class C482 { C482(); public: C482(int) { } };
-ret & operator+(C482 volatile &, C482 const &) { return ret_val; }
-
-class C483 { C483(); public: C483(int) { } };
-ret const & operator+(C483 volatile &, C483 const &) { return ret_val; }
-
-class C484 { C484(); public: C484(int) { } };
-ret volatile & operator+(C484 volatile &, C484 const &) { return ret_val; }
-
-class C485 { C485(); public: C485(int) { } };
-ret const volatile & operator+(C485 volatile &, C485 const &) { return ret_val; }
-
-class C486 { C486(); public: C486(int) { } };
-void operator+(C486 volatile &, C486 volatile &) { }
-
-class C487 { C487(); public: C487(int) { } };
-ret operator+(C487 volatile &, C487 volatile &) { return ret_val; }
-
-class C488 { C488(); public: C488(int) { } };
-ret const operator+(C488 volatile &, C488 volatile &) { return ret_val; }
-
-class C489 { C489(); public: C489(int) { } };
-ret volatile operator+(C489 volatile &, C489 volatile &) { return ret_val; }
-
-class C490 { C490(); public: C490(int) { } };
-ret const volatile operator+(C490 volatile &, C490 volatile &) { return ret_val; }
-
-class C491 { C491(); public: C491(int) { } };
-ret & operator+(C491 volatile &, C491 volatile &) { return ret_val; }
-
-class C492 { C492(); public: C492(int) { } };
-ret const & operator+(C492 volatile &, C492 volatile &) { return ret_val; }
-
-class C493 { C493(); public: C493(int) { } };
-ret volatile & operator+(C493 volatile &, C493 volatile &) { return ret_val; }
-
-class C494 { C494(); public: C494(int) { } };
-ret const volatile & operator+(C494 volatile &, C494 volatile &) { return ret_val; }
-
-class C495 { C495(); public: C495(int) { } };
-void operator+(C495 volatile &, C495 const volatile &) { }
-
-class C496 { C496(); public: C496(int) { } };
-ret operator+(C496 volatile &, C496 const volatile &) { return ret_val; }
-
-class C497 { C497(); public: C497(int) { } };
-ret const operator+(C497 volatile &, C497 const volatile &) { return ret_val; }
-
-class C498 { C498(); public: C498(int) { } };
-ret volatile operator+(C498 volatile &, C498 const volatile &) { return ret_val; }
-
-class C499 { C499(); public: C499(int) { } };
-ret const volatile operator+(C499 volatile &, C499 const volatile &) { return ret_val; }
-
-class C500 { C500(); public: C500(int) { } };
-ret & operator+(C500 volatile &, C500 const volatile &) { return ret_val; }
-
-class C501 { C501(); public: C501(int) { } };
-ret const & operator+(C501 volatile &, C501 const volatile &) { return ret_val; }
-
-class C502 { C502(); public: C502(int) { } };
-ret volatile & operator+(C502 volatile &, C502 const volatile &) { return ret_val; }
-
-class C503 { C503(); public: C503(int) { } };
-ret const volatile & operator+(C503 volatile &, C503 const volatile &) { return ret_val; }
-
-class C504 { C504(); public: C504(int) { } };
-void operator+(C504 const volatile &, C504) { }
-
-class C505 { C505(); public: C505(int) { } };
-ret operator+(C505 const volatile &, C505) { return ret_val; }
-
-class C506 { C506(); public: C506(int) { } };
-ret const operator+(C506 const volatile &, C506) { return ret_val; }
-
-class C507 { C507(); public: C507(int) { } };
-ret volatile operator+(C507 const volatile &, C507) { return ret_val; }
-
-class C508 { C508(); public: C508(int) { } };
-ret const volatile operator+(C508 const volatile &, C508) { return ret_val; }
-
-class C509 { C509(); public: C509(int) { } };
-ret & operator+(C509 const volatile &, C509) { return ret_val; }
-
-class C510 { C510(); public: C510(int) { } };
-ret const & operator+(C510 const volatile &, C510) { return ret_val; }
-
-class C511 { C511(); public: C511(int) { } };
-ret volatile & operator+(C511 const volatile &, C511) { return ret_val; }
-
-class C512 { C512(); public: C512(int) { } };
-ret const volatile & operator+(C512 const volatile &, C512) { return ret_val; }
-
-class C513 { C513(); public: C513(int) { } };
-void operator+(C513 const volatile &, C513 const) { }
-
-class C514 { C514(); public: C514(int) { } };
-ret operator+(C514 const volatile &, C514 const) { return ret_val; }
-
-class C515 { C515(); public: C515(int) { } };
-ret const operator+(C515 const volatile &, C515 const) { return ret_val; }
-
-class C516 { C516(); public: C516(int) { } };
-ret volatile operator+(C516 const volatile &, C516 const) { return ret_val; }
-
-class C517 { C517(); public: C517(int) { } };
-ret const volatile operator+(C517 const volatile &, C517 const) { return ret_val; }
-
-class C518 { C518(); public: C518(int) { } };
-ret & operator+(C518 const volatile &, C518 const) { return ret_val; }
-
-class C519 { C519(); public: C519(int) { } };
-ret const & operator+(C519 const volatile &, C519 const) { return ret_val; }
-
-class C520 { C520(); public: C520(int) { } };
-ret volatile & operator+(C520 const volatile &, C520 const) { return ret_val; }
-
-class C521 { C521(); public: C521(int) { } };
-ret const volatile & operator+(C521 const volatile &, C521 const) { return ret_val; }
-
-class C522 { C522(); public: C522(int) { } };
-void operator+(C522 const volatile &, C522 volatile) { }
-
-class C523 { C523(); public: C523(int) { } };
-ret operator+(C523 const volatile &, C523 volatile) { return ret_val; }
-
-class C524 { C524(); public: C524(int) { } };
-ret const operator+(C524 const volatile &, C524 volatile) { return ret_val; }
-
-class C525 { C525(); public: C525(int) { } };
-ret volatile operator+(C525 const volatile &, C525 volatile) { return ret_val; }
-
-class C526 { C526(); public: C526(int) { } };
-ret const volatile operator+(C526 const volatile &, C526 volatile) { return ret_val; }
-
-class C527 { C527(); public: C527(int) { } };
-ret & operator+(C527 const volatile &, C527 volatile) { return ret_val; }
-
-class C528 { C528(); public: C528(int) { } };
-ret const & operator+(C528 const volatile &, C528 volatile) { return ret_val; }
-
-class C529 { C529(); public: C529(int) { } };
-ret volatile & operator+(C529 const volatile &, C529 volatile) { return ret_val; }
-
-class C530 { C530(); public: C530(int) { } };
-ret const volatile & operator+(C530 const volatile &, C530 volatile) { return ret_val; }
-
-class C531 { C531(); public: C531(int) { } };
-void operator+(C531 const volatile &, C531 const volatile) { }
-
-class C532 { C532(); public: C532(int) { } };
-ret operator+(C532 const volatile &, C532 const volatile) { return ret_val; }
-
-class C533 { C533(); public: C533(int) { } };
-ret const operator+(C533 const volatile &, C533 const volatile) { return ret_val; }
-
-class C534 { C534(); public: C534(int) { } };
-ret volatile operator+(C534 const volatile &, C534 const volatile) { return ret_val; }
-
-class C535 { C535(); public: C535(int) { } };
-ret const volatile operator+(C535 const volatile &, C535 const volatile) { return ret_val; }
-
-class C536 { C536(); public: C536(int) { } };
-ret & operator+(C536 const volatile &, C536 const volatile) { return ret_val; }
-
-class C537 { C537(); public: C537(int) { } };
-ret const & operator+(C537 const volatile &, C537 const volatile) { return ret_val; }
-
-class C538 { C538(); public: C538(int) { } };
-ret volatile & operator+(C538 const volatile &, C538 const volatile) { return ret_val; }
-
-class C539 { C539(); public: C539(int) { } };
-ret const volatile & operator+(C539 const volatile &, C539 const volatile) { return ret_val; }
-
-class C540 { C540(); public: C540(int) { } };
-void operator+(C540 const volatile &, C540 &) { }
-
-class C541 { C541(); public: C541(int) { } };
-ret operator+(C541 const volatile &, C541 &) { return ret_val; }
-
-class C542 { C542(); public: C542(int) { } };
-ret const operator+(C542 const volatile &, C542 &) { return ret_val; }
-
-class C543 { C543(); public: C543(int) { } };
-ret volatile operator+(C543 const volatile &, C543 &) { return ret_val; }
-
-class C544 { C544(); public: C544(int) { } };
-ret const volatile operator+(C544 const volatile &, C544 &) { return ret_val; }
-
-class C545 { C545(); public: C545(int) { } };
-ret & operator+(C545 const volatile &, C545 &) { return ret_val; }
-
-class C546 { C546(); public: C546(int) { } };
-ret const & operator+(C546 const volatile &, C546 &) { return ret_val; }
-
-class C547 { C547(); public: C547(int) { } };
-ret volatile & operator+(C547 const volatile &, C547 &) { return ret_val; }
-
-class C548 { C548(); public: C548(int) { } };
-ret const volatile & operator+(C548 const volatile &, C548 &) { return ret_val; }
-
-class C549 { C549(); public: C549(int) { } };
-void operator+(C549 const volatile &, C549 const &) { }
-
-class C550 { C550(); public: C550(int) { } };
-ret operator+(C550 const volatile &, C550 const &) { return ret_val; }
-
-class C551 { C551(); public: C551(int) { } };
-ret const operator+(C551 const volatile &, C551 const &) { return ret_val; }
-
-class C552 { C552(); public: C552(int) { } };
-ret volatile operator+(C552 const volatile &, C552 const &) { return ret_val; }
-
-class C553 { C553(); public: C553(int) { } };
-ret const volatile operator+(C553 const volatile &, C553 const &) { return ret_val; }
-
-class C554 { C554(); public: C554(int) { } };
-ret & operator+(C554 const volatile &, C554 const &) { return ret_val; }
-
-class C555 { C555(); public: C555(int) { } };
-ret const & operator+(C555 const volatile &, C555 const &) { return ret_val; }
-
-class C556 { C556(); public: C556(int) { } };
-ret volatile & operator+(C556 const volatile &, C556 const &) { return ret_val; }
-
-class C557 { C557(); public: C557(int) { } };
-ret const volatile & operator+(C557 const volatile &, C557 const &) { return ret_val; }
-
-class C558 { C558(); public: C558(int) { } };
-void operator+(C558 const volatile &, C558 volatile &) { }
-
-class C559 { C559(); public: C559(int) { } };
-ret operator+(C559 const volatile &, C559 volatile &) { return ret_val; }
-
-class C560 { C560(); public: C560(int) { } };
-ret const operator+(C560 const volatile &, C560 volatile &) { return ret_val; }
-
-class C561 { C561(); public: C561(int) { } };
-ret volatile operator+(C561 const volatile &, C561 volatile &) { return ret_val; }
-
-class C562 { C562(); public: C562(int) { } };
-ret const volatile operator+(C562 const volatile &, C562 volatile &) { return ret_val; }
-
-class C563 { C563(); public: C563(int) { } };
-ret & operator+(C563 const volatile &, C563 volatile &) { return ret_val; }
-
-class C564 { C564(); public: C564(int) { } };
-ret const & operator+(C564 const volatile &, C564 volatile &) { return ret_val; }
-
-class C565 { C565(); public: C565(int) { } };
-ret volatile & operator+(C565 const volatile &, C565 volatile &) { return ret_val; }
-
-class C566 { C566(); public: C566(int) { } };
-ret const volatile & operator+(C566 const volatile &, C566 volatile &) { return ret_val; }
-
-class C567 { C567(); public: C567(int) { } };
-void operator+(C567 const volatile &, C567 const volatile &) { }
-
-class C568 { C568(); public: C568(int) { } };
-ret operator+(C568 const volatile &, C568 const volatile &) { return ret_val; }
-
-class C569 { C569(); public: C569(int) { } };
-ret const operator+(C569 const volatile &, C569 const volatile &) { return ret_val; }
-
-class C570 { C570(); public: C570(int) { } };
-ret volatile operator+(C570 const volatile &, C570 const volatile &) { return ret_val; }
-
-class C571 { C571(); public: C571(int) { } };
-ret const volatile operator+(C571 const volatile &, C571 const volatile &) { return ret_val; }
-
-class C572 { C572(); public: C572(int) { } };
-ret & operator+(C572 const volatile &, C572 const volatile &) { return ret_val; }
-
-class C573 { C573(); public: C573(int) { } };
-ret const & operator+(C573 const volatile &, C573 const volatile &) { return ret_val; }
-
-class C574 { C574(); public: C574(int) { } };
-ret volatile & operator+(C574 const volatile &, C574 const volatile &) { return ret_val; }
-
-class C575 { C575(); public: C575(int) { } };
-ret const volatile & operator+(C575 const volatile &, C575 const volatile &) { return ret_val; }
-

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes0_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes0_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_binary_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000, C000 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000, C000 const &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000, C000 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000 const, C000 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000 volatile, C000 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000 volatile, C000 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000 const volatile, C000 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000 &, C000 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000 &, C000 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000 &, C000 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C000 const &, C000, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C001 volatile, C001 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C001 const volatile, C001 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C001 const volatile, C001 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C001 const volatile &, C001 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C002, C002 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C002 const, C002 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C002 const &, C002, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C002 volatile &, C002, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C003, C003 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C003 const volatile &, C003, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C004, C004, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C004 volatile, C004 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C004 &, C004 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C004 const &, C004 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C005, C005 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C005 volatile, C005 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C005 &, C005 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C005 &, C005 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C005 volatile &, C005 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C006 const &, C006 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C006 const volatile &, C006 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C007 const, C007 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C007 const, C007 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C007 const volatile, C007 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C007 const volatile, C007 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C007 volatile &, C007 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C007 volatile &, C007 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C008, C008, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C008 const, C008 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C008 volatile, C008 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C008 &, C008, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C008 &, C008 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C008 volatile &, C008 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C008 const volatile &, C008 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C009, C009 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C009 volatile &, C009 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C009 const volatile &, C009 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C010, C010 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C010, C010 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C010 const, C010 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C010 const &, C010, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C010 const volatile &, C010 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C011, C011 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C011, C011 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C011 const volatile, C011, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C011 const volatile, C011 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C011 const &, C011 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C011 volatile &, C011, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C011 const volatile &, C011 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C012, C012 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C012, C012 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C012 volatile, C012 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C012 const &, C012 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C013, C013 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C013 const volatile, C013 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C013 const volatile &, C013 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C014, C014, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C014 volatile &, C014, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C014 const volatile &, C014, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C015, C015 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C015 const, C015 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C015 &, C015 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C015 &, C015 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C015 const volatile &, C015 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C016 const, C016 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C016 const volatile, C016 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C017 const volatile &, C017 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C018, C018 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C018 const volatile, C018 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C018 &, C018 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C018 const volatile &, C018 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C019 const, C019 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C019 const, C019 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C019 const volatile, C019, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C019 &, C019 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C019 &, C019 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C020, C020, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C020, C020 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C020, C020 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C020 volatile, C020 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C020 volatile &, C020, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C020 const volatile &, C020 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C021, C021 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C021 &, C021, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C021 &, C021, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C021 &, C021 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C021 &, C021 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C022 const volatile, C022, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C022 &, C022 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C022 const &, C022 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C023 volatile &, C023 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C024 const, C024 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C024 const, C024 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C025, C025 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C025 const, C025 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C025 volatile, C025 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C025 volatile, C025 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C025 const volatile, C025 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C025 const volatile, C025 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C025 const &, C025 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C025 const volatile &, C025 volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C026, C026 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C026 const, C026 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C026 volatile, C026 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C026 const volatile, C026 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C026 &, C026 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C026 const &, C026 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C026 const volatile &, C026 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C027 volatile, C027 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C028 const, C028 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C028 volatile, C028 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C028 const volatile, C028 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C028 volatile &, C028 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C028 const volatile &, C028 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029, C029 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 const, C029 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 volatile, C029 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 const volatile, C029 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 const volatile, C029 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 &, C029, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 &, C029 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 const &, C029, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 const &, C029 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 const &, C029 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 volatile &, C029 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C029 volatile &, C029 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C030 const, C030, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C030 volatile, C030 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C030 &, C030 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C030 const &, C030 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C031, C031 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C031 const, C031 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C031 const, C031 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C031 const volatile, C031 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C031 volatile &, C031 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C031 const volatile &, C031 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C032 volatile, C032 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C032 &, C032 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C032 volatile &, C032 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C033 volatile, C033 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C033 const volatile, C033 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C033 &, C033 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C033 const &, C033, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C033 volatile &, C033 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C033 volatile &, C033 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C033 volatile &, C033 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C034 const, C034 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C034 const volatile, C034 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C034 const volatile, C034 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C034 volatile &, C034 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C034 volatile &, C034 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C035, C035 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C035, C035 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C035, C035 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C035 volatile, C035, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C035 volatile, C035 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C035 volatile, C035 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C035 const &, C035 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C035 volatile &, C035 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C035 volatile &, C035 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C036 volatile, C036 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C036 const volatile, C036, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C036 const volatile, C036 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C036 volatile &, C036 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C036 const volatile &, C036 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C037 volatile &, C037 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C038 volatile, C038 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C038 const volatile, C038 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C038 const volatile, C038 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C038 const volatile &, C038 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C039, C039 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C039 const, C039 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C039 &, C039 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C039 &, C039 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C039 volatile &, C039, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C039 const volatile &, C039 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C040, C040, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C040 const, C040 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C040 volatile, C040 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C040 const volatile, C040 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C040 const volatile, C040 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C040 volatile &, C040 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C040 volatile &, C040 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C041 volatile, C041 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C041 volatile, C041 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C041 volatile, C041 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C041 const volatile, C041 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C041 const volatile, C041 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C041 const volatile &, C041, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C043 volatile, C043 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C043 &, C043 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C043 const &, C043 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C043 volatile &, C043 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C043 const volatile &, C043 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C043 const volatile &, C043 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C043 const volatile &, C043 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C044 const volatile, C044 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C045, C045 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C045 volatile, C045 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C045 const volatile, C045 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C046 volatile, C046 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C046 const volatile, C046 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C046 &, C046 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C047, C047 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C047 const &, C047 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C048 const, C048 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C048 &, C048, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C048 &, C048 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C048 const &, C048 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C049 volatile &, C049 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C050, C050 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C050 const, C050, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C050 volatile, C050 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C050 volatile, C050 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C050 &, C050 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C050 const &, C050 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C050 const volatile &, C050 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C051 const, C051, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C051 const, C051 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C052 const, C052 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C052 volatile, C052 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C052 &, C052 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C052 const volatile &, C052 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C053 &, C053, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C053 volatile &, C053 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C053 volatile &, C053 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C054, C054 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C054 volatile, C054 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C054 const volatile &, C054 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C054 const volatile &, C054 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C055, C055 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C055, C055 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C055 const, C055 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C055 &, C055 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C055 &, C055 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C055 const &, C055 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C055 volatile &, C055 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C055 const volatile &, C055, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C055 const volatile &, C055 const, ret const volatile & >::value), 0);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes1_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes1_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_binary_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C055 const volatile &, C055 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C056 const, C056 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C056 &, C056 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C056 volatile &, C056 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C056 const volatile &, C056 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C056 const volatile &, C056 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C057, C057 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C057 const, C057 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C057 volatile, C057 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C057 volatile &, C057 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C058 volatile, C058 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C058 const &, C058 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C058 volatile &, C058, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C058 volatile &, C058 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C058 const volatile &, C058 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C059 volatile, C059 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C059 const volatile, C059 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C059 &, C059 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C060 const, C060 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C060 const, C060 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C060 &, C060 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C060 volatile &, C060 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C060 volatile &, C060 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C060 const volatile &, C060 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C060 const volatile &, C060 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C061, C061, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C061 const, C061 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C061 volatile, C061 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C061 const volatile, C061 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C061 volatile &, C061, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C061 volatile &, C061 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C062 const volatile, C062 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C062 const &, C062 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C063 const, C063 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C063 const, C063 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C063 const volatile, C063, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C063 volatile &, C063 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C064, C064 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C064 const, C064 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C064 const &, C064 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C064 volatile &, C064 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C065, C065, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C065, C065 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C065 &, C065 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C066 const volatile, C066 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C066 &, C066 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C066 volatile &, C066 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C066 volatile &, C066 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C066 const volatile &, C066 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C067 const, C067 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C067 &, C067 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C067 &, C067 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C067 &, C067 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C067 volatile &, C067 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C068, C068 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C068 const volatile, C068 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C068 const volatile, C068 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C069 const volatile, C069 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C069 const &, C069 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C069 const volatile &, C069 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C070 volatile, C070 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C070 &, C070 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C070 const &, C070 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C070 volatile &, C070 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C070 volatile &, C070 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C071 const, C071 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C071 const volatile, C071 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C071 &, C071, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C071 &, C071 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C071 volatile &, C071 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C071 volatile &, C071 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C072 const, C072 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C072 volatile, C072, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C072 volatile, C072 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C072 const volatile, C072 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C072 const volatile &, C072, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C072 const volatile &, C072 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C073 volatile, C073 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C073 volatile, C073 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C073 &, C073 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C073 volatile &, C073 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C073 volatile &, C073 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C073 const volatile &, C073 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C074 &, C074 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C074 volatile &, C074 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C074 const volatile &, C074 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C075 &, C075 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C075 volatile &, C075 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C076 const volatile, C076 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C076 volatile &, C076, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C077 volatile, C077 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C077 volatile, C077 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C077 const volatile, C077 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C077 const &, C077 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C077 volatile &, C077 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C077 volatile &, C077 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C078 const, C078 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C078 volatile, C078 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C078 &, C078 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C078 const &, C078 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C078 volatile &, C078 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C078 const volatile &, C078 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C079 const, C079 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C079 volatile, C079 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C079 volatile &, C079 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C079 volatile &, C079 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C080 const, C080 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C080 volatile &, C080 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C080 const volatile &, C080 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C080 const volatile &, C080 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C081, C081 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C081 const, C081 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C081 &, C081 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C081 const volatile &, C081, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C081 const volatile &, C081 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C082, C082 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C082 volatile &, C082 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C083 const volatile, C083 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C083 const &, C083 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C084, C084, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C084 &, C084 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C084 const &, C084 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C084 volatile &, C084, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C085, C085 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C085 const, C085 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C085 volatile, C085 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C085 volatile, C085 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C086 const volatile, C086 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C086 const &, C086 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C087, C087 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C087 const volatile &, C087 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C089 volatile, C089 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C089 const volatile, C089 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C089 const volatile, C089 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C090, C090 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C090 const &, C090 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C090 volatile &, C090, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C091, C091 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C091 volatile &, C091 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C092 volatile &, C092 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C093 volatile, C093 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C093 &, C093, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C093 &, C093 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C094, C094, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C094, C094 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C094 const volatile, C094 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C094 const &, C094 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C094 volatile &, C094 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C095, C095 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C095 const volatile, C095 volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C095 const volatile, C095 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C095 &, C095, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C095 &, C095, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C095 &, C095 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C095 const &, C095 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C095 volatile &, C095 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C096 const, C096 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C097 const volatile, C097, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C097 const volatile, C097 volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C097 &, C097 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C098, C098, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C098 const volatile, C098 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C098 const &, C098 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C098 volatile &, C098 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C099 const volatile, C099 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C099 const &, C099 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C100, C100, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C100 const volatile &, C100, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C101, C101 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C101, C101 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C101 volatile, C101, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C101 &, C101 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 const, C102, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 volatile, C102, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 volatile, C102 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 const volatile, C102 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 const volatile, C102 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 &, C102 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 &, C102 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 volatile &, C102, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 volatile &, C102 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 const volatile &, C102 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C102 const volatile &, C102 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C103 const, C103 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C103 volatile, C103 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C103 volatile, C103 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C103 const volatile &, C103 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C104 volatile &, C104 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C104 const volatile &, C104 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C104 const volatile &, C104 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C105, C105 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C105 const volatile, C105, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C106 volatile, C106 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C106 volatile &, C106 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C107 const, C107 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C107 volatile, C107, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C107 &, C107 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C107 const volatile &, C107 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C108 volatile, C108 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C108 &, C108, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C108 const &, C108 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C108 volatile &, C108 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C108 const volatile &, C108 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C110, C110 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C110 &, C110 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C110 volatile &, C110 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C110 const volatile &, C110 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C111, C111 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C111 const volatile, C111 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C111 &, C111 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C111 volatile &, C111 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C111 volatile &, C111 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C112 const &, C112 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C112 volatile &, C112 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C113 const, C113 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C113 const, C113 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C113 volatile, C113 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C113 volatile, C113 &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C113 const &, C113 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C113 const volatile &, C113 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C114, C114 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C114, C114 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C114 &, C114 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C114 volatile &, C114 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C115, C115 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C115 volatile, C115 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C115 &, C115 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C115 volatile &, C115 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C116 volatile, C116 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C116 const volatile, C116 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C116 const &, C116 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C116 const volatile &, C116 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C117, C117 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C117 const, C117 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C117 const volatile, C117 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C117 const volatile, C117 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C117 &, C117, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C117 const &, C117 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C118, C118 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C118 &, C118, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C118 &, C118 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C118 volatile &, C118 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C119 const, C119 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C119 const, C119 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C119 &, C119 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C119 &, C119 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C119 const &, C119, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C119 const &, C119 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C119 const &, C119 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C119 volatile &, C119 const &, ret const volatile >::value), 1);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes2_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes2_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_binary_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C119 volatile &, C119 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C120 const, C120 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C120 volatile, C120 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C120 const &, C120 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C121 const, C121 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C121 const volatile, C121, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C121 const volatile, C121 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C121 const volatile, C121 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C121 &, C121 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C121 const &, C121 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C122, C122, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C122, C122, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C122 const, C122 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C122 volatile, C122 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C122 const volatile, C122, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C122 const volatile, C122 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C123 const, C123 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C123 const &, C123, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C124 volatile, C124, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C124 &, C124 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C124 &, C124 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C124 const &, C124 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C124 const &, C124 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C124 volatile &, C124 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C124 const volatile &, C124 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C125 volatile, C125 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C125 &, C125 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C125 const &, C125, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C125 const volatile &, C125, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C126 &, C126 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C126 volatile &, C126 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C126 const volatile &, C126 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C127, C127 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C127, C127 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C127 volatile, C127, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C127 const &, C127 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C128 const, C128, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C128 const, C128 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C128 volatile, C128 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C128 const volatile, C128 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C129 volatile, C129 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C129 const volatile, C129 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C129 const volatile, C129 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C130, C130 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C130 const volatile &, C130 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C130 const volatile &, C130 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C131 const, C131, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C131 const, C131 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C131 const volatile, C131 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C132, C132 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C132 const, C132 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C132 const, C132 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C132 &, C132 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C132 &, C132 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C132 const &, C132 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C133 volatile, C133 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C133 const &, C133 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C133 const &, C133 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C133 volatile &, C133 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C133 const volatile &, C133 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C134 const, C134 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C134 volatile, C134 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C134 volatile, C134 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C134 const &, C134 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C135, C135 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C135 const, C135 const volatile, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C135 const &, C135 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C135 volatile &, C135 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C136, C136, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C136 const, C136 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C136 const, C136 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C136 const &, C136 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C136 const volatile &, C136, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C137 const &, C137 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C138, C138 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C138 volatile, C138, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C138 const volatile, C138 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C138 &, C138 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C138 &, C138 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C138 volatile &, C138 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C138 const volatile &, C138 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C139 volatile, C139 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C139 volatile &, C139, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C140 volatile, C140 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C140 volatile &, C140 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C140 const volatile &, C140, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C141 const, C141 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C141 const &, C141 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C143 &, C143, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C143 const &, C143 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C143 volatile &, C143, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C144 const, C144 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C144 &, C144, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C144 &, C144 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C144 const &, C144 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C144 const volatile &, C144 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C145, C145 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C145, C145 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C145 const, C145 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C145 const volatile, C145 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C145 &, C145 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C145 volatile &, C145, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C145 volatile &, C145 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C145 const volatile &, C145, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C146 volatile &, C146 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C146 const volatile &, C146 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C147 const volatile, C147 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C147 volatile &, C147 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C147 volatile &, C147 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C148, C148 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C148 &, C148 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C148 const &, C148 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C148 const &, C148 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C149 volatile, C149 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C149 volatile, C149 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C150 const volatile, C150 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C150 const volatile, C150 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C150 const volatile &, C150, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C151 const, C151 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C151 volatile &, C151, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C151 const volatile &, C151 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C151 const volatile &, C151 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C152, C152 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C152 const, C152 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C152 volatile, C152 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C152 volatile, C152 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C152 const &, C152 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C153 const volatile, C153 &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C153 &, C153, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C153 const &, C153 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C153 const volatile &, C153 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C154, C154 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C154 &, C154 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C154 const volatile &, C154 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C155, C155 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C155 const volatile, C155 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C155 &, C155 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C155 const &, C155, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C155 volatile &, C155 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C155 volatile &, C155 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C156 const, C156 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C156 &, C156 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C156 const &, C156 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C156 volatile &, C156 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C157 const volatile, C157 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C157 const &, C157 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C157 const volatile &, C157 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C158 const volatile, C158, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C158 volatile &, C158 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C158 const volatile &, C158 const volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C159, C159 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C159 const, C159 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C159 volatile, C159, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C159 volatile, C159, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C159 const &, C159 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C160, C160 const volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C160 const volatile, C160 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C160 const volatile, C160 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C160 volatile &, C160, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C160 volatile &, C160 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C161 const &, C161 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C161 const &, C161 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C162 volatile, C162, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C162 volatile, C162 const volatile, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C162 volatile, C162 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C162 const volatile, C162 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C162 &, C162 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C162 const &, C162 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C162 const &, C162 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C162 volatile &, C162 volatile, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C162 const volatile &, C162 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C163 volatile, C163 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C163 volatile, C163 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C163 &, C163, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C163 volatile &, C163 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C164 const, C164 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C164 volatile, C164 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C164 &, C164 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C164 volatile &, C164 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C165, C165, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C165, C165 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C165 volatile, C165 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C165 const volatile, C165 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C165 &, C165 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C165 const volatile &, C165 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C166, C166 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C166 const volatile, C166 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C166 &, C166 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C166 &, C166 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C166 const &, C166 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C166 volatile &, C166 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C167, C167 const &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C167 volatile, C167 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C167 &, C167 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C167 volatile &, C167 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C168, C168 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C168 const, C168 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C168 &, C168 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C168 const &, C168 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C169, C169, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C169, C169 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C169 &, C169 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C169 const &, C169 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C169 const volatile &, C169, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C169 const volatile &, C169 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C169 const volatile &, C169 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C170, C170 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C170 volatile, C170 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C170 const volatile, C170 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C170 &, C170 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C170 const &, C170 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C170 volatile &, C170 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C170 const volatile &, C170 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C171 volatile, C171 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C171 volatile, C171 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C171 &, C171 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C171 volatile &, C171, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C172 const, C172 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C172 const &, C172 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C173 const volatile, C173, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C173 volatile &, C173 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C174, C174 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C174 const volatile, C174 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C174 const volatile, C174 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C174 const &, C174, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C174 const &, C174 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C174 volatile &, C174, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C174 const volatile &, C174, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C175 volatile, C175 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C175 const volatile &, C175 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C176 const &, C176 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C176 const &, C176 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C176 const volatile &, C176 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C177 const volatile, C177 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C177 const volatile, C177 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C178 const, C178 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C178 volatile, C178 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C178 const &, C178 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C178 volatile &, C178 const volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C179 const, C179 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C179 const, C179 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C179 volatile, C179 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C179 &, C179 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C179 &, C179 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C179 volatile &, C179 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C180 const, C180 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C180 volatile, C180 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C180 const volatile, C180 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C180 const &, C180, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C181, C181 const, ret const volatile & >::value), 0);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes3_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes3_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_binary_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C181 const, C181 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C181 const, C181 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C181 &, C181 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C181 volatile &, C181 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C182 volatile, C182 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C182 const &, C182 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C182 const volatile &, C182 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C183, C183 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C184, C184 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C184 const volatile, C184 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C184 const volatile, C184 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C184 &, C184 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C184 &, C184 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C184 const &, C184 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C184 volatile &, C184 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C184 volatile &, C184 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C185, C185 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C185 const, C185, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C185 const volatile, C185 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C185 const &, C185 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C185 volatile &, C185 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C186 volatile, C186 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C186 const volatile, C186 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C186 &, C186 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C187, C187 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C187 volatile, C187 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C187 const volatile &, C187 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C188 const, C188 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C188 const volatile, C188, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C188 const &, C188 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C188 const volatile &, C188 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C188 const volatile &, C188 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C189 volatile, C189 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C189 &, C189 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C189 const volatile &, C189, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C189 const volatile &, C189 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C189 const volatile &, C189 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C189 const volatile &, C189 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C190 const, C190 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C190 volatile, C190 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C190 volatile, C190 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C190 const volatile &, C190, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C191 &, C191 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C191 const &, C191 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C191 const volatile &, C191, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C191 const volatile &, C191 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C192, C192 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C192 const, C192 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C192 const volatile, C192 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C192 const &, C192, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C192 const volatile &, C192 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C193 volatile, C193 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C193 &, C193 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C193 const &, C193 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C193 const &, C193 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C193 volatile &, C193 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C193 volatile &, C193 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C194, C194 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C194 const, C194 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C194 const volatile, C194 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C194 const &, C194, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C194 volatile &, C194 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C195, C195 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C195 const, C195, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C195 const, C195, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C195 const, C195 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C195 volatile &, C195 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C195 const volatile &, C195 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C196, C196 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C196 volatile, C196 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C196 const volatile, C196, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C196 const volatile, C196 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C197, C197 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C197, C197 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C197 const, C197 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C197 const &, C197 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C197 const volatile &, C197 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C198 &, C198 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C198 const &, C198, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C199, C199 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C199 const, C199 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C199 &, C199 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C200 volatile, C200 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C200 &, C200, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C200 &, C200 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C200 const &, C200, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C200 const &, C200 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C200 const volatile &, C200 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C200 const volatile &, C200 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C200 const volatile &, C200 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C201 volatile, C201 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C201 volatile, C201 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C201 const volatile, C201 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C201 &, C201 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C201 &, C201 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C201 volatile &, C201 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C202 const, C202 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C202 const, C202 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C202 const volatile, C202 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C202 &, C202 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C202 const &, C202, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C203 const, C203, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C203 const, C203 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C203 const, C203 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C203 volatile, C203 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C203 volatile, C203 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C203 const volatile, C203 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C203 &, C203 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C203 &, C203 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C203 volatile &, C203 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C204 volatile, C204 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C204 const volatile, C204 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C204 const volatile, C204 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C204 const volatile &, C204 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C205 volatile, C205 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C205 volatile, C205 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C205 volatile, C205 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C205 const volatile, C205 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C205 &, C205, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C205 const &, C205, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C205 const volatile &, C205 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C206 const volatile, C206, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C206 const volatile, C206 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C206 const volatile &, C206 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C207, C207 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C207 volatile, C207, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C207 const volatile, C207 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C207 &, C207, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C207 const &, C207 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C207 const volatile &, C207 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C208, C208 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C208 volatile, C208 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C208 &, C208 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C208 const &, C208 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C208 const volatile &, C208 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C209 const &, C209 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C209 volatile &, C209 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C210, C210, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C210 volatile, C210 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C210 &, C210 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C211 const, C211 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C211 volatile, C211 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C211 volatile &, C211, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C212 const, C212 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C212 &, C212, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C212 const volatile &, C212 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C212 const volatile &, C212 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C213 volatile, C213 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C213 const volatile, C213 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C213 const volatile &, C213 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C214, C214 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C214 const, C214 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C214 volatile, C214, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C214 const volatile &, C214 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C215 &, C215 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C215 volatile &, C215 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C215 const volatile &, C215, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C215 const volatile &, C215, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C216 const, C216, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C216 &, C216, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C216 const &, C216 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C216 volatile &, C216 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C217 volatile, C217, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C217 const volatile, C217 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C217 &, C217 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C217 const &, C217, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C217 const &, C217 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C217 volatile &, C217, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C217 volatile &, C217 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C218, C218 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C218 volatile, C218 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C218 const volatile, C218 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C218 &, C218 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C218 const &, C218 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219, C219 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219 const, C219 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219 const, C219 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219 volatile, C219 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219 &, C219, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219 const &, C219 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219 volatile &, C219, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219 volatile &, C219 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219 volatile &, C219 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219 const volatile &, C219 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C219 const volatile &, C219 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C220 volatile, C220 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C220 const volatile, C220 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C220 const &, C220 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C220 const volatile &, C220 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C221, C221 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C221 const, C221 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C221 const volatile, C221 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C221 const volatile, C221 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C221 &, C221 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C221 volatile &, C221 volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C221 const volatile &, C221 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C221 const volatile &, C221 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C222 const volatile, C222 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C222 &, C222 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C222 &, C222 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C222 &, C222 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C222 volatile &, C222, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C222 const volatile &, C222 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C223, C223 volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C223, C223 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C223 const volatile &, C223 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C224 const volatile, C224 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C224 const volatile, C224 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C224 volatile &, C224 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C225, C225 const volatile, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C225 const, C225 const, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C225 volatile, C225 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C226, C226 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C226, C226 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C226 const, C226 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C226 &, C226 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C226 volatile &, C226 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C226 const volatile &, C226 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C227 const, C227 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C227 const, C227 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C227 const &, C227 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C227 volatile &, C227 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C228 const, C228 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C228 const volatile &, C228 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C229, C229 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C229 volatile, C229 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C229 const volatile, C229 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C229 const &, C229 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C229 const &, C229 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C229 volatile &, C229, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C230, C230 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C230 const, C230, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C230 const volatile, C230 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C230 const volatile, C230 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C230 &, C230 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C230 volatile &, C230 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C230 const volatile &, C230 const, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C231, C231 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C231, C231 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C231, C231 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C231 &, C231 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C231 const &, C231 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C232 volatile, C232 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C232 const volatile, C232, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C233 &, C233, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C234, C234 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C234, C234 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C234 const, C234, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C234 const, C234 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C235 const volatile, C235, ret >::value), 1);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes4_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes4_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_binary_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C235 volatile &, C235, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C236 volatile, C236, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C236 &, C236 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C237 volatile, C237 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C237 volatile, C237 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C237 const volatile, C237 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C237 volatile &, C237 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C238, C238 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C238 volatile, C238 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C238 const volatile, C238 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C238 volatile &, C238 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C239 &, C239 volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C239 const &, C239 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C239 const volatile &, C239, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C240 const volatile, C240, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C240 &, C240 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C240 volatile &, C240 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C240 const volatile &, C240 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C241 const, C241 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C241 volatile, C241 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C241 volatile, C241 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C241 const volatile, C241 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C241 &, C241 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C242 volatile &, C242 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C242 const volatile &, C242, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C243, C243 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C243, C243 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C243 volatile, C243 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C243 volatile, C243 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C243 const volatile &, C243 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C244, C244 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C244 const, C244 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C244 volatile, C244 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C244 volatile &, C244, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C244 volatile &, C244 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C244 const volatile &, C244 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C245, C245 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C245, C245 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C245 const, C245, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C245 const, C245 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C245 volatile, C245 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C245 volatile, C245 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C245 &, C245 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C246 const, C246 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C246 const, C246 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C246 const &, C246, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C246 const &, C246 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C247, C247 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C247 const volatile, C247 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C247 volatile &, C247 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C248 const, C248 volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C248 &, C248 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C248 volatile &, C248 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C248 const volatile &, C248 volatile, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C248 const volatile &, C248 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C249 const, C249 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C249 const volatile, C249 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C249 &, C249 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C249 volatile &, C249 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C249 const volatile &, C249 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C249 const volatile &, C249 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C250 const, C250 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C250 volatile, C250, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C250 const volatile, C250 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C250 const volatile, C250 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C250 &, C250 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C250 &, C250 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C250 volatile &, C250, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C251 const &, C251 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C251 const volatile &, C251 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C252 const, C252 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C252 const, C252 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C252 volatile &, C252 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C252 volatile &, C252 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C253 const, C253, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C253 volatile, C253 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C253 &, C253, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C254 &, C254 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C254 &, C254 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C254 const &, C254, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C254 const &, C254 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C254 volatile &, C254, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C255 &, C255 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C255 volatile &, C255 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C255 const volatile &, C255 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C256, C256 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C256, C256 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C256 volatile, C256 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C256 &, C256 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C256 const &, C256 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C257 volatile, C257 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C257 volatile &, C257 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C257 volatile &, C257 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C258 &, C258 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C258 volatile &, C258 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C259, C259 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C259 volatile, C259 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C259 volatile, C259 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C259 const volatile, C259 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C259 &, C259 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C260, C260 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C260 &, C260 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C260 volatile &, C260 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C260 const volatile &, C260 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C261 &, C261 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C262 const &, C262 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C262 volatile &, C262 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C262 const volatile &, C262 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C263, C263 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C263 const, C263, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C263 const, C263, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C263 const, C263 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C263 &, C263 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C263 volatile &, C263 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C264 const, C264, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C265, C265 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C265 volatile, C265, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C265 volatile, C265 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C265 const &, C265 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C266 const volatile, C266 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C266 const volatile, C266 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C266 const volatile, C266 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C266 const &, C266, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C266 volatile &, C266, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C266 volatile &, C266 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C266 const volatile &, C266 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C266 const volatile &, C266 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C267 const, C267 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C267 const &, C267, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C267 const &, C267 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C267 const &, C267 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C267 const &, C267 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C267 const volatile &, C267 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C268 &, C268 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C268 const &, C268 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C269, C269 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C269 const volatile, C269 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C269 &, C269, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C269 &, C269 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C269 const &, C269 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C269 const &, C269 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C269 const &, C269 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C269 const volatile &, C269 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C270, C270 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C270 volatile, C270 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C270 volatile, C270 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C270 volatile, C270 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C270 const &, C270 &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C270 const &, C270 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C270 volatile &, C270 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C270 const volatile &, C270, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C271 const volatile, C271 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C271 const &, C271 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C271 volatile &, C271 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C271 const volatile &, C271 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C271 const volatile &, C271 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C272, C272 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C272 volatile, C272 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C272 const &, C272 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C272 const &, C272 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C272 const volatile &, C272 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C273, C273 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C273 const volatile, C273 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C273 const volatile, C273 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C273 &, C273, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C273 volatile &, C273 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C273 volatile &, C273 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C273 volatile &, C273 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C273 volatile &, C273 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C273 const volatile &, C273 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C274 const, C274, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C274 const, C274 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C274 const, C274 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C274 volatile, C274 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C274 volatile &, C274, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C274 volatile &, C274 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C275, C275 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C275 const volatile, C275 volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C275 &, C275 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C275 const &, C275 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C276, C276 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C276, C276 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C276 &, C276 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C276 const volatile &, C276 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C277 volatile, C277 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C277 &, C277, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C277 &, C277 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C278 const, C278 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C278 const volatile, C278, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C278 &, C278 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C279 volatile, C279 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C279 const volatile, C279, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C279 const volatile, C279, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C279 const volatile, C279 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C279 const &, C279 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C279 volatile &, C279 volatile, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C280, C280, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C280 volatile, C280 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C280 &, C280 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C280 const volatile &, C280 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C281, C281 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C281 const, C281 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C281 &, C281 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C281 const &, C281 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C282, C282 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C282 const, C282 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C282 const volatile &, C282 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C283, C283 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C283 volatile, C283, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C283 volatile, C283 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C283 volatile &, C283, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C284 const, C284 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C284 volatile, C284 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C284 &, C284 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C284 &, C284 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C284 const &, C284, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C284 const volatile &, C284 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C285 const, C285 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C285 const, C285 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C285 const volatile, C285, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C285 const volatile, C285 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C285 const &, C285 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C285 const &, C285 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C285 const &, C285 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C285 volatile &, C285, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C286 const, C286 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C286 volatile, C286 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C286 const volatile, C286, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C286 const volatile, C286 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C286 const volatile &, C286 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C287, C287 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C287 volatile, C287, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C287 const volatile, C287 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C287 const volatile, C287 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C288 const volatile, C288 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C288 const &, C288 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C288 const &, C288 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C288 volatile &, C288 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C289 const, C289 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C289 const &, C289, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C289 const &, C289 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C289 const &, C289 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C289 const volatile &, C289 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C290 volatile, C290 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C291 const &, C291 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C292, C292 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C292 volatile, C292 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C292 const volatile, C292 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C292 const &, C292 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C293, C293 const volatile &, ret const & >::value), 1);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes5_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes5_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_binary_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C293 &, C293 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C294 const, C294 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C294 const, C294 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C294 volatile, C294 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C294 const volatile, C294, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C295, C295 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C295, C295 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C295 const volatile &, C295, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C295 const volatile &, C295 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C296, C296 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C296 const, C296 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C296 volatile, C296 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C296 volatile &, C296 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C296 const volatile &, C296 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C297 const, C297 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C297 volatile, C297 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C297 const volatile, C297 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C297 volatile &, C297 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C297 volatile &, C297 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C297 volatile &, C297 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C298, C298 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C298 volatile &, C298 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C299 volatile, C299 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C299 volatile, C299 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C299 volatile, C299 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C299 volatile, C299 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C299 const &, C299 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C299 const volatile &, C299 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C299 const volatile &, C299 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C300 volatile, C300 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C300 const volatile, C300 &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C300 &, C300 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C300 const volatile &, C300 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C301 const volatile, C301 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C301 const &, C301 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C302 const, C302 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C302 const &, C302 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C302 volatile &, C302 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C302 const volatile &, C302, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C303 const, C303 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C303 const volatile, C303 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C303 const volatile, C303 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C303 const volatile, C303 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C303 &, C303 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C304, C304 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C304 const, C304, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C304 const, C304 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C304 const volatile, C304 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C304 const volatile, C304 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C304 const volatile, C304 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C304 volatile &, C304, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C304 volatile &, C304 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C304 const volatile &, C304 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C305, C305 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C305, C305 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C305, C305 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C305 const volatile, C305 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C306 const, C306 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C307 &, C307 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C307 &, C307 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C307 const &, C307 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C307 const &, C307 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C308 &, C308 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C308 const &, C308, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C308 volatile &, C308 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C309 volatile, C309 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C309 &, C309, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C310, C310 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C310 const, C310 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C310 const volatile, C310 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C310 &, C310 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C311 const, C311 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C311 const &, C311 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C312 volatile, C312 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C312 const volatile, C312 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C312 const &, C312, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C312 volatile &, C312, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C312 volatile &, C312 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C312 volatile &, C312 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C312 volatile &, C312 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C313 const, C313, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C313 const &, C313 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C313 const &, C313 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C313 const &, C313 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C313 const volatile &, C313, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C313 const volatile &, C313 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C315 &, C315 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C315 const &, C315, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C315 const volatile &, C315 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C316, C316 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C316 const, C316, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C316 volatile &, C316 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C316 const volatile &, C316 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C317 const, C317 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C317 &, C317 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C318, C318 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C318, C318 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C318 const volatile, C318 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C318 &, C318, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C318 const &, C318, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C318 volatile &, C318 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C318 const volatile &, C318 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C319 &, C319 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C319 const &, C319 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C319 const volatile &, C319 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C320 const volatile, C320 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C320 const volatile, C320 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C321, C321, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C321 volatile, C321 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C321 const volatile, C321 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C321 &, C321 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C322 volatile, C322 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C322 const volatile, C322 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C322 const volatile &, C322 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C323 const, C323 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C323 volatile, C323 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C323 &, C323 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C324 volatile, C324 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C324 volatile, C324 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C324 &, C324 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C324 const volatile &, C324 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C325 const, C325 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C325 const volatile, C325 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C325 const &, C325 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C325 volatile &, C325 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C325 volatile &, C325 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C326 volatile, C326 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C326 const volatile, C326 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C326 volatile &, C326 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C327, C327 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C327 const, C327 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C327 const volatile &, C327 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C328, C328 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C328, C328 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C328 const, C328 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C328 &, C328 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C329 volatile, C329, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C329 const volatile, C329 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C329 &, C329 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C329 volatile &, C329 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C329 const volatile &, C329 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C330, C330 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C330 const, C330 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C330 &, C330 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C331 volatile, C331 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C331 volatile, C331 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C331 volatile, C331 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C331 const volatile, C331 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C331 const volatile, C331 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C332, C332, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C332 const &, C332 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C332 const &, C332 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C332 const volatile &, C332 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C333, C333, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C333 const, C333, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C333 const volatile, C333 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C333 &, C333, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C333 const &, C333, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C333 const volatile &, C333 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C333 const volatile &, C333 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C334, C334 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C334 const, C334 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C334 const volatile, C334 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C334 const &, C334 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C334 volatile &, C334 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C334 const volatile &, C334 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C335 volatile, C335 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C335 const &, C335 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C335 const &, C335 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C335 volatile &, C335 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C335 const volatile &, C335 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C336, C336 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C336 const volatile, C336 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C336 &, C336 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C336 const &, C336 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C337, C337 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C337, C337 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C337 const, C337 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C337 const &, C337 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C337 volatile &, C337 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C337 volatile &, C337 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C337 const volatile &, C337 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C338, C338 const &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C338 const, C338 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C338 const, C338 &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C338 const, C338 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C338 volatile, C338 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C338 const volatile, C338 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C338 &, C338 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C338 const &, C338 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C338 const &, C338 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C338 const &, C338 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C339, C339 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C339 const, C339 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C339 volatile &, C339 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C339 const volatile &, C339 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C340 &, C340 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C340 volatile &, C340, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C340 const volatile &, C340, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C341, C341 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C341 const, C341 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C341 const, C341 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C341 volatile, C341, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C341 &, C341 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C341 const &, C341, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C341 const &, C341, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C341 const &, C341 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C343 const volatile &, C343 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C344 volatile, C344 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C344 const volatile, C344 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C344 &, C344, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C344 &, C344 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C345 volatile, C345 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C345 &, C345 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C345 volatile &, C345, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C345 const volatile &, C345 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C345 const volatile &, C345 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C346, C346 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C346, C346 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C346 volatile, C346 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C346 const volatile, C346 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C346 const volatile, C346 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C346 &, C346 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C346 const volatile &, C346, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C346 const volatile &, C346 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C347 volatile, C347 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C347 const volatile, C347 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C347 volatile &, C347 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C347 const volatile &, C347 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C348, C348 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C348 const, C348 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C348 volatile, C348 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C348 const volatile, C348 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C348 &, C348 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C348 const &, C348 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C348 const volatile &, C348 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C349 const, C349 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C349 volatile, C349 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C349 const volatile, C349, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C349 &, C349 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C349 volatile &, C349 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C349 const volatile &, C349 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C350 const, C350 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C350 volatile, C350 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C351 volatile, C351 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C351 const volatile, C351 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C351 &, C351 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C351 volatile &, C351, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C351 const volatile &, C351 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C351 const volatile &, C351 const volatile &, ret & >::value), 0);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes6_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes6_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_binary_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C352, C352 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C352 const &, C352 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C352 const &, C352 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C353 volatile, C353 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C353 const volatile, C353, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C353 const volatile, C353 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C353 const volatile &, C353 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C353 const volatile &, C353 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C354, C354, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C354 volatile, C354 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C354 &, C354 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C354 const volatile &, C354 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C354 const volatile &, C354 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C355 const, C355 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C355 volatile, C355, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C355 volatile, C355 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C355 volatile, C355 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C355 const volatile, C355 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C355 &, C355, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C355 const &, C355 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C356 volatile, C356 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C356 volatile, C356 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C356 &, C356 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C356 &, C356 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C356 const &, C356 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C356 const volatile &, C356 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C357, C357 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C357, C357 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C357 volatile, C357 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C358 volatile, C358 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C358 &, C358 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C358 &, C358 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C358 volatile &, C358 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C359, C359 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C359, C359 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C359 const, C359 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C359 const volatile, C359 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C360 const volatile &, C360 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C361, C361 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C361 const, C361 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C361 volatile, C361 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C361 &, C361 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C361 &, C361 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C361 const &, C361 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C362 const, C362 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C363, C363 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C363, C363 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C363, C363 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C363 volatile, C363 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C363 &, C363, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C363 const &, C363 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C363 const &, C363 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C363 volatile &, C363, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C364 volatile, C364 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C365, C365 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C365 const, C365 volatile, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C365 const volatile, C365 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C365 const &, C365 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C365 volatile &, C365 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C365 const volatile &, C365 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C366 const volatile, C366 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C366 const volatile, C366 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C366 &, C366 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C366 volatile &, C366 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C366 volatile &, C366 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C366 const volatile &, C366 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C367 const &, C367 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C367 const &, C367 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C367 volatile &, C367, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C367 volatile &, C367 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C367 volatile &, C367 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C368 const, C368 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C368 const &, C368 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C368 volatile &, C368 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C369 volatile, C369 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C369 const volatile, C369 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C370 const volatile, C370 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C370 &, C370 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C370 volatile &, C370 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C370 volatile &, C370 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C371 &, C371 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C372 const, C372 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C372 volatile &, C372 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C372 volatile &, C372 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C373 &, C373, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C373 const &, C373 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C373 const &, C373 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C373 const &, C373 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C374 const, C374 volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C374 const volatile, C374 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C374 &, C374 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C374 const volatile &, C374 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C375 const volatile, C375 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C375 const volatile, C375 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C375 &, C375, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C375 &, C375 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C375 volatile &, C375 &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C375 const volatile &, C375 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C376 const, C376 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C376 const volatile, C376 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C376 const &, C376 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C376 volatile &, C376 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C377 volatile, C377 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C377 volatile, C377 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C377 &, C377 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C377 const &, C377 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C377 const &, C377 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C377 volatile &, C377 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C378, C378 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C378 volatile, C378 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C378 const &, C378 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C379 const &, C379, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C379 volatile &, C379 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C379 const volatile &, C379 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C380, C380 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C380 &, C380, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C380 &, C380 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C380 &, C380 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C381 volatile, C381 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C382, C382 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C382, C382 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C382, C382 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C382 &, C382 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C382 volatile &, C382, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C383 const, C383 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C383 const, C383 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C383 const volatile, C383 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C383 const volatile &, C383, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C384 volatile, C384, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C384 volatile, C384 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C384 volatile &, C384 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C385 volatile, C385 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C385 const volatile &, C385 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C386, C386 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C386 const, C386 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C386 const volatile, C386, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C386 const volatile &, C386 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C387, C387 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C387 volatile, C387 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C387 const volatile, C387 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C387 const volatile, C387 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C387 const volatile, C387 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C387 const &, C387 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C387 volatile &, C387 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C388 const &, C388 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C388 const &, C388 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C388 const &, C388 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C388 const volatile &, C388 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C389 const &, C389 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C390 volatile, C390 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C390 volatile, C390 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C390 volatile, C390 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C390 const volatile, C390, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C390 &, C390 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C391, C391 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C391 const &, C391 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C392, C392 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C392 const, C392 volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C392 const volatile, C392 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C392 const volatile, C392 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C393 const, C393 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C393 const volatile, C393 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C393 &, C393 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C393 const &, C393 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C393 const volatile &, C393 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C393 const volatile &, C393 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C394 &, C394 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C394 const &, C394 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C394 volatile &, C394 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C394 const volatile &, C394 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C394 const volatile &, C394 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C395 &, C395 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C395 &, C395 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C395 &, C395 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C395 const &, C395 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C395 const &, C395 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C396, C396 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C396 volatile, C396, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C396 volatile, C396 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C396 const volatile, C396 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C396 const volatile, C396 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C396 &, C396 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C396 const &, C396 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C396 volatile &, C396 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C397 const volatile, C397 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C398, C398 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C398 const, C398 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C398 const volatile, C398 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C399 const, C399 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C399 const volatile, C399, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C399 const &, C399 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C399 const &, C399 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C400 volatile, C400 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C400 const volatile, C400 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C400 &, C400 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C400 &, C400 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C401, C401 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C401, C401 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C401 const volatile, C401, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C401 &, C401 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C401 &, C401 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C401 const &, C401 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C401 const &, C401 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C402 volatile, C402 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C402 const volatile, C402, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C402 volatile &, C402 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C403, C403 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C403 const, C403 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C403 &, C403 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C403 const &, C403 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C403 const &, C403 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C403 const &, C403 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C403 volatile &, C403 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C404 const, C404 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C404 const, C404 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C404 volatile, C404 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C404 &, C404 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C404 &, C404 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C404 volatile &, C404 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C405 const, C405 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C405 const volatile &, C405, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C406, C406 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C406 const, C406 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C406 volatile, C406 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C406 volatile, C406 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C406 const volatile, C406 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C407 const, C407, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C407 const, C407 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C407 const, C407 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C407 const volatile, C407 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C407 &, C407 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C407 &, C407 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C407 const volatile &, C407 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C408 const, C408 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C408 volatile, C408, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C408 const volatile, C408, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C408 const volatile, C408 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C408 const volatile, C408 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C408 const &, C408 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C408 const volatile &, C408, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C409 volatile, C409 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C410 volatile &, C410 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C410 const volatile &, C410 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C410 const volatile &, C410 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C411 const, C411 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C411 volatile, C411 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C411 const volatile, C411 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C411 &, C411 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C412 volatile, C412 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C412 const volatile, C412 volatile, ret >::value), 0);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes7_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes7_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_binary_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C412 const volatile, C412 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C412 const &, C412 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C413, C413 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C413 const, C413 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C413 &, C413 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C413 volatile &, C413 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C414 const, C414 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C414 const volatile, C414 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C414 const &, C414 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C414 const &, C414 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C415 const volatile, C415 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C415 const volatile, C415 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C415 const volatile &, C415, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C416 const, C416, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C416 const, C416 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C416 const, C416 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C416 const, C416 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C416 &, C416 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C416 volatile &, C416 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C416 volatile &, C416 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C417 const, C417 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C417 const volatile, C417 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C417 &, C417, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C417 &, C417 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C417 volatile &, C417 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C418, C418 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C418 const, C418 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C418 const, C418 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C418 const, C418 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C419 volatile, C419, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C419 const &, C419 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C419 const &, C419 volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C419 volatile &, C419 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C420 const &, C420 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C420 const &, C420 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C420 const &, C420 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C421 const, C421 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C421 const volatile, C421 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C422 const, C422 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C422 volatile, C422 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C422 volatile, C422 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C422 volatile &, C422 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C422 const volatile &, C422 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C423, C423 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C423 volatile, C423 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C423 const volatile, C423 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C423 &, C423 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C423 const &, C423, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C423 const &, C423, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C423 const &, C423 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C423 volatile &, C423, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C423 const volatile &, C423 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C424 const, C424 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C424 const &, C424 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C425, C425 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C426, C426 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C426 const, C426 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C426 volatile, C426 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C426 const volatile, C426, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C426 const volatile, C426 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C426 &, C426 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C426 &, C426 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C427, C427 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C427 volatile, C427 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C427 &, C427 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C427 volatile &, C427 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C428, C428 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C428 const, C428, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C428 const &, C428 volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C429 const, C429 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C429 volatile, C429 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C429 const volatile, C429, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C429 const &, C429 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C429 const volatile &, C429 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C429 const volatile &, C429 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C430, C430 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C430 const volatile, C430, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C430 const volatile, C430 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C430 const volatile, C430 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C430 const volatile, C430 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C430 &, C430 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C430 volatile &, C430 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C431 const volatile, C431 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C431 const &, C431 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C431 const volatile &, C431, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C431 const volatile &, C431 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C432, C432 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C432, C432 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C432 const volatile, C432 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C432 const &, C432 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C433 const &, C433, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C434, C434 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C434 volatile, C434 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C434 &, C434 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C434 &, C434 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C434 volatile &, C434, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C434 volatile &, C434 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C434 const volatile &, C434, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C434 const volatile &, C434 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C434 const volatile &, C434 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C435, C435 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C435 volatile, C435, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C435 volatile, C435 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C435 const &, C435 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C435 const &, C435 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C435 volatile &, C435 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C435 const volatile &, C435 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C435 const volatile &, C435 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C436 const, C436 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C436 volatile, C436 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C436 const volatile, C436 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C436 const &, C436 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C436 const volatile &, C436 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C437 const, C437, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C437 const, C437 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C437 volatile, C437 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C437 const volatile, C437 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C437 &, C437, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C437 &, C437 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C437 const &, C437 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C437 const &, C437 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C437 volatile &, C437, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C438 &, C438 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C438 const &, C438 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C438 const &, C438 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C438 const &, C438 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C439 const volatile, C439 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C439 const volatile, C439 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C439 const &, C439 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C439 volatile &, C439 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C439 const volatile &, C439 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C440, C440 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C440, C440 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C440 const volatile, C440 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C440 const volatile &, C440 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C441 const, C441 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C441 volatile, C441 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C441 volatile, C441 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C442 const &, C442 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C442 const &, C442 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C442 volatile &, C442 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C443, C443, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C443, C443 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C443 const &, C443, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C443 const &, C443, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C443 const &, C443 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C444, C444, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C444 const, C444 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C444 const volatile, C444, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C444 const volatile, C444 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C444 const volatile &, C444 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C445, C445, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C445, C445 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C445 const, C445 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C445 volatile, C445 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C445 &, C445 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C446 volatile, C446, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C446 volatile, C446 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C446 const &, C446 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C446 volatile &, C446 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C446 const volatile &, C446 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C447 volatile, C447 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C447 const &, C447, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C447 volatile &, C447 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C447 volatile &, C447 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C447 const volatile &, C447 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C447 const volatile &, C447 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C447 const volatile &, C447 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C448, C448 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C448, C448 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C448, C448 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C448 const, C448 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C448 const volatile, C448 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C448 &, C448 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C449, C449 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C449 volatile, C449 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C449 const &, C449 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C450 const volatile &, C450 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C451, C451 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C451, C451 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C451 const, C451 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C451 const volatile &, C451 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C452, C452, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C452, C452 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C452 const, C452 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C452 volatile, C452 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C452 const volatile, C452 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C452 const volatile, C452 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C453 &, C453 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C454 volatile, C454 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C454 const volatile, C454 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C454 const volatile, C454 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C454 const volatile, C454 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C454 const volatile &, C454 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C454 const volatile &, C454 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C455, C455 const &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C455 const, C455, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C455 volatile, C455 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C455 &, C455 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C456 volatile, C456 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C456 volatile, C456 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C456 const &, C456 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C456 const &, C456 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C456 const volatile &, C456 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C457 volatile, C457 volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C457 const volatile, C457 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C457 volatile &, C457 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C457 const volatile &, C457 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458, C458, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458, C458 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458, C458 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458, C458 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458, C458 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458 const, C458 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458 const volatile, C458, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458 const volatile, C458 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458 &, C458, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458 const &, C458 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458 const volatile &, C458 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C458 const volatile &, C458 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C459 volatile &, C459 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C460 const, C460 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C460 const, C460 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C460 const volatile, C460 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C460 const volatile, C460 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C460 &, C460 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C460 &, C460 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C460 const volatile &, C460 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C460 const volatile &, C460 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C461, C461 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C461, C461 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C461 volatile &, C461, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C461 volatile &, C461 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C462, C462, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C462 const, C462 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C462 volatile, C462 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C462 const volatile, C462, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C462 const volatile, C462 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C462 const volatile, C462 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C462 volatile &, C462 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C462 volatile &, C462 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C462 const volatile &, C462, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C463 const, C463 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C463 const, C463 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C463 const volatile, C463 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C463 volatile &, C463 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C463 const volatile &, C463, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C464, C464 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C464 const, C464 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C464 const, C464 volatile &, void >::value), 0);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes8_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes8_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_binary_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C465 volatile, C465 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C465 &, C465 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C465 const &, C465 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C466 const, C466 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C466 volatile, C466 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C466 const volatile, C466 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C466 const &, C466 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C467 const volatile &, C467 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C468 volatile, C468 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C468 const &, C468 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C468 const volatile &, C468, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C469 &, C469 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C469 &, C469 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C469 const volatile &, C469 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C470 volatile, C470 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C470 volatile, C470 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C470 const volatile, C470 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C470 &, C470, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C470 &, C470 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C470 &, C470 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C470 &, C470 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C470 volatile &, C470 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C471, C471 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C471 volatile, C471 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C471 const volatile, C471 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C471 const volatile &, C471 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C471 const volatile &, C471 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C472 &, C472 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C472 const &, C472 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C472 volatile &, C472 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C472 volatile &, C472 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C472 const volatile &, C472 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C473, C473 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C473 volatile, C473, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C473 volatile, C473 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C473 const volatile, C473 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C473 const &, C473 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C473 const &, C473 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C474, C474, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C474 volatile, C474 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C474 volatile, C474 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C474 &, C474 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C474 volatile &, C474 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C474 volatile &, C474 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C474 const volatile &, C474 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C475 const volatile, C475 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C475 volatile &, C475 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C476, C476, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C476 const, C476 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C476 const volatile &, C476 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C477, C477 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C477, C477 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C477 const, C477 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C477 const, C477 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C477 const, C477 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C477 volatile, C477 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C477 const volatile, C477, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C477 &, C477 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C477 const &, C477 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C478 const, C478 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C478 const volatile, C478, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C478 const &, C478 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C478 volatile &, C478 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C479 const, C479 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C479 const volatile, C479 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C479 const volatile, C479 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C479 &, C479 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C479 &, C479 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C479 volatile &, C479 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C479 const volatile &, C479, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C480, C480 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C480 const volatile, C480 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C480 &, C480 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C480 &, C480 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C480 const volatile &, C480 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C480 const volatile &, C480 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C481, C481 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C481 const, C481 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C481 const volatile, C481, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C481 const volatile, C481 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C481 const volatile, C481 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C481 volatile &, C481 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C481 const volatile &, C481 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C482, C482, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C482 &, C482 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C482 volatile &, C482 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C482 volatile &, C482 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C482 const volatile &, C482 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C482 const volatile &, C482 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C483 volatile, C483 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C483 const volatile, C483 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C483 const &, C483 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C483 volatile &, C483, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C483 const volatile &, C483 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C484 const, C484 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C484 volatile, C484 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C484 const volatile &, C484 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C485, C485 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C485 const volatile, C485 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C485 const &, C485 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C485 const volatile &, C485 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C486, C486, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C486 const, C486 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C486 const &, C486 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C487, C487 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C487 volatile, C487 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C487 const volatile, C487 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C487 &, C487 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C487 volatile &, C487, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C488 const volatile, C488 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C488 const &, C488, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C488 const &, C488 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C489, C489 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C489 volatile, C489, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C489 volatile, C489 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C489 const volatile &, C489 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C489 const volatile &, C489 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C489 const volatile &, C489 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C490 const, C490 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C490 &, C490 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C490 const &, C490 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C490 const volatile &, C490 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C490 const volatile &, C490 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C491, C491 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C491, C491 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C491 &, C491, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C491 const &, C491 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C491 const volatile &, C491 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C492, C492 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C492 volatile, C492 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C492 const &, C492 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C492 const volatile &, C492 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 volatile, C493 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 const volatile, C493, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 const volatile, C493 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 const volatile, C493 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 const volatile, C493 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 &, C493, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 &, C493 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 const volatile &, C493 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 const volatile &, C493 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 const volatile &, C493 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 const volatile &, C493 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C493 const volatile &, C493 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C494, C494 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C494 volatile, C494, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C494 volatile, C494, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C494 const volatile, C494 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C494 const &, C494 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C494 volatile &, C494 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C495, C495, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C495, C495 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C495 volatile, C495 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C495 volatile, C495 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C495 &, C495 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C495 volatile &, C495, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C495 const volatile &, C495 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C496, C496 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C496, C496 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C496 const volatile, C496 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C496 volatile &, C496 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C497, C497 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C497 volatile, C497, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C497 volatile, C497 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C497 volatile, C497 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C497 volatile &, C497, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C497 volatile &, C497 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C498, C498 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C498, C498 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C498, C498 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C498, C498 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C498 volatile, C498 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C498 const volatile &, C498 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C499, C499 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C499, C499 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C499 volatile, C499 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C499 &, C499 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C500 const, C500 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C500 volatile, C500 const volatile, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C500 &, C500 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C500 const volatile &, C500 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C501 const, C501, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C501 volatile, C501 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C501 &, C501 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C502 const, C502, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C502 const, C502 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C502 volatile, C502 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C502 const volatile, C502 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C502 volatile &, C502 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C502 volatile &, C502 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C503 const, C503 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C503 volatile &, C503 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C504, C504 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C504 volatile, C504 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C504 &, C504 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C504 const &, C504, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C505 volatile, C505 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C506 volatile, C506 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C506 volatile &, C506 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C506 const volatile &, C506 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C507, C507 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C507 volatile, C507 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C507 &, C507 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C507 volatile &, C507 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C508 volatile, C508 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C508 const volatile, C508 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C508 volatile &, C508 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C508 const volatile &, C508 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C509 const volatile, C509 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C509 const volatile, C509 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C510 const, C510 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C510 const, C510 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C510 volatile, C510 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C510 const volatile, C510 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C510 &, C510 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C511 const volatile, C511 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C511 &, C511 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C511 const &, C511 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C511 const &, C511 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C512 volatile, C512 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C512 const volatile &, C512 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C512 const volatile &, C512 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C513, C513 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C513 volatile, C513, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C513 volatile, C513 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C513 volatile &, C513 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C514, C514 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C514 const, C514 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C514 volatile, C514 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C514 const volatile, C514 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C514 const volatile &, C514 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C514 const volatile &, C514 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C515 const, C515 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C515 const volatile, C515 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C515 &, C515 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C515 &, C515 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C515 const volatile &, C515, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C516 const, C516 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C516 const, C516 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C516 const, C516 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C516 const, C516 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C516 const volatile, C516 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C516 const volatile, C516 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C516 volatile &, C516 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C516 volatile &, C516 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C517, C517 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C517 const volatile, C517, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C517 &, C517, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C517 &, C517 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C517 const volatile &, C517 &, ret const & >::value), 0);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_classes9_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_classes9_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_binary_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C518 &, C518, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C518 &, C518 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C518 const volatile &, C518 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C519 const, C519 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C519 volatile, C519 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C519 volatile, C519 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C519 volatile &, C519 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C520 const, C520, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C520 const, C520 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C520 &, C520 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C520 const &, C520 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C520 const &, C520 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C520 const volatile &, C520 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C521 &, C521 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C521 const &, C521 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C522 const, C522 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C522 const &, C522 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C522 const volatile &, C522 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C523 const, C523 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C523 const volatile, C523 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C523 &, C523 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C523 &, C523 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C523 const &, C523 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C524, C524 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C524, C524 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C524 volatile, C524 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C524 const &, C524 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C525, C525 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C525 const, C525 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C525 volatile, C525, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C525 volatile, C525 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C525 const volatile &, C525 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C526 volatile, C526 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C526 &, C526 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C526 &, C526 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C526 &, C526 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C526 const volatile &, C526 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C527 volatile, C527 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528, C528 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528, C528 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528 volatile, C528, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528 volatile, C528, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528 volatile, C528, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528 volatile, C528 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528 const volatile, C528 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528 const volatile, C528 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528 const volatile &, C528, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528 const volatile &, C528 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C528 const volatile &, C528 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C529 volatile, C529 const volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C529 const volatile, C529 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C529 const volatile &, C529 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C530 const volatile, C530 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C530 const volatile &, C530 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C530 const volatile &, C530 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C531 const, C531 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C531 volatile, C531 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C531 const volatile, C531, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C531 &, C531 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C531 const &, C531 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C532 const, C532 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C532 const, C532 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C532 volatile, C532 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C532 const volatile, C532 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C532 &, C532 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C532 const &, C532 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C532 volatile &, C532 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C533, C533, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C533, C533 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C533 volatile, C533 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C533 const &, C533 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C533 const volatile &, C533 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C534, C534 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C534 &, C534 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C534 &, C534 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C534 volatile &, C534 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C535 const, C535 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C535 volatile, C535, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C535 volatile, C535 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C535 &, C535, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C536, C536 const volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C536 const, C536 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C536 const, C536 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C536 const &, C536 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C536 volatile &, C536, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C536 const volatile &, C536, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C537, C537 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C537 const, C537 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C537 volatile, C537, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C537 volatile, C537 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C537 const &, C537 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C537 const volatile &, C537 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C538, C538 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C538 volatile, C538 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C538 &, C538 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C538 &, C538 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C538 const &, C538 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C538 const &, C538 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C538 const volatile &, C538 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C539 const, C539 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C539 const volatile, C539 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C539 const volatile, C539 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C539 const &, C539 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C540, C540 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C540 const volatile, C540 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C540 &, C540 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C541, C541 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C541 const volatile, C541 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C541 const &, C541, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C541 const &, C541 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C542 const, C542 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C542 const volatile &, C542 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C543 volatile, C543 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C543 volatile, C543 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C543 const volatile, C543 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C543 &, C543 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C543 const &, C543 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C544, C544 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C544 &, C544 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C544 const &, C544 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C544 volatile &, C544 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C545, C545 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C545 &, C545 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C546 const, C546 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C546 const, C546 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C546 const &, C546 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C546 volatile &, C546 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C546 const volatile &, C546 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C547 const volatile, C547, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C547 const volatile, C547 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C547 const &, C547 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C547 const volatile &, C547, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C547 const volatile &, C547 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C547 const volatile &, C547 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C547 const volatile &, C547 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C548, C548 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C548, C548 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C548 const &, C548 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C549 const, C549, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C549 const, C549 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C549 const, C549 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C549 volatile, C549 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C549 volatile, C549 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C549 &, C549, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C549 &, C549 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C549 volatile &, C549 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C550, C550 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C550 const, C550, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C550 volatile, C550 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C550 const volatile, C550 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C550 const volatile, C550 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C550 volatile &, C550 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C551 &, C551 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C552 const volatile, C552 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C552 &, C552, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C552 &, C552 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C552 const &, C552 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C552 volatile &, C552 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C552 const volatile &, C552 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C553 const volatile, C553 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C554, C554 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C554 volatile &, C554 const &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C555, C555 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C555 const, C555 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C555 const volatile, C555 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C555 const &, C555 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C555 const volatile &, C555 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C556, C556 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C556 volatile, C556 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C556 const volatile &, C556 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C557, C557 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C557 const, C557, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C557 &, C557 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C557 const &, C557, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C557 const &, C557 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C557 volatile &, C557 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C558 volatile, C558 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C558 const volatile &, C558 volatile &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C559 volatile, C559 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C559 const &, C559 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C560 &, C560 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C560 const volatile &, C560 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C561 const, C561 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C561 const volatile, C561, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C561 const volatile, C561 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C561 const &, C561 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C562, C562 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C562 const, C562 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C562 const, C562 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C562 volatile, C562 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C562 const volatile &, C562 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C563, C563 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C563 const, C563 volatile &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C563 volatile, C563 volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C563 volatile, C563 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C563 const volatile, C563 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C563 &, C563 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C564 const volatile, C564 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C564 &, C564 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C565 const, C565 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C565 const volatile, C565 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C565 &, C565 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C565 const &, C565 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C565 volatile &, C565 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C565 const volatile &, C565 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C566, C566 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C566 const volatile, C566, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C566 const volatile, C566 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C566 const volatile, C566 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C566 volatile &, C566 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C566 const volatile &, C566 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C567, C567 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C567 const volatile, C567 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C568, C568, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C568, C568 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C568, C568 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C568 const, C568 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C568 const, C568 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C568 volatile, C568 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C568 const volatile, C568 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C568 const volatile, C568 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C568 const &, C568, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C569 const volatile &, C569 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C570, C570 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C570 const, C570 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C570 const, C570 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C570 volatile, C570 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C570 const volatile, C570, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C570 &, C570 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C570 const &, C570 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C570 const volatile &, C570 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C571 volatile, C571, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C571 const volatile, C571 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C571 &, C571 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C571 &, C571 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C571 const &, C571 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C571 const &, C571 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C571 volatile &, C571 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C572 const, C572 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C572 volatile, C572 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C572 &, C572 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C572 volatile &, C572 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C573 volatile, C573 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C573 &, C573, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C573 volatile &, C573, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C573 const volatile &, C573 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C574 const, C574 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C575 volatile, C575 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C575 &, C575 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_addition< C575 const &, C575 const volatile, ret volatile >::value), 1);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_binary_operators.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_binary_operators.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,140 +0,0 @@
-// (C) Copyright Frederic Bron 2009-2011.
-// 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)
-
-// test with one template parameter
-#define TEST_T(TYPE,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::boost::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((::boost::BOOST_TT_TRAIT_NAME<TYPE,TYPE,RET>::value), RESULT)
-// test with two template parameters
-#define TEST_TT(TYPE1,TYPE2,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::boost::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((::boost::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
-
-namespace {
-
-struct without { };
-
-struct ret { };
-
-struct internal { ret operator BOOST_TT_TRAIT_OP (const internal&) const; };
-
-struct external { };
-ret operator BOOST_TT_TRAIT_OP (const external&, const external&);
-
-struct comma1_ret { };
-struct ret_with_comma1 { comma1_ret operator,(int); };
-
-struct internal_comma1 { ret_with_comma1 operator BOOST_TT_TRAIT_OP (const internal_comma1&) const; };
-
-struct external_comma1 { };
-ret_with_comma1 operator BOOST_TT_TRAIT_OP (const external_comma1&, const external_comma1&);
-
-struct ret_with_comma2 { void operator,(int); };
-
-struct internal_comma2 { ret_with_comma2 operator BOOST_TT_TRAIT_OP (const internal_comma2&) const; };
-
-struct external_comma2 { };
-ret_with_comma2 operator BOOST_TT_TRAIT_OP (const external_comma2&, const external_comma2&);
-
-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 ret1 { };
-struct convertible_to_ret1 { operator ret1 () const; };
-struct returns_convertible_to_ret1 { convertible_to_ret1 operator BOOST_TT_TRAIT_OP (const returns_convertible_to_ret1&); };
-
-struct convertible_to_ret2 { };
-struct ret2 { ret2(const convertible_to_ret2); };
-struct returns_convertible_to_ret2 { convertible_to_ret2 operator BOOST_TT_TRAIT_OP (const returns_convertible_to_ret2&); };
-
-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 { };
-
-struct C { };
-struct D { };
-bool operator BOOST_TT_TRAIT_OP (const C&, void*) { return true; }
-bool operator BOOST_TT_TRAIT_OP (void*, const D&) { return true; }
-bool operator BOOST_TT_TRAIT_OP (const C&, const D&) { return true; }
-
-//class internal_private { ret operator BOOST_TT_TRAIT_OP (const internal_private&) const; };
-
-void common() {
- TEST_T(void, false);
- TEST_TT(void, void, false);
- TEST_TTR(void, void, void, false);
- TEST_TTR(void, void, int, false);
-
- TEST_T(without, false);
- TEST_T(internal, true);
- TEST_T(external, true);
- TEST_T(internal_comma1, true);
- TEST_T(external_comma1, true);
- TEST_T(internal_comma2, true);
- TEST_T(external_comma2, true);
- TEST_T(returns_int, true);
- TEST_T(returns_void, true);
- TEST_T(returns_void_star, true);
- TEST_T(returns_double, true);
- TEST_T(returns_convertible_to_ret1, true);
- TEST_T(returns_convertible_to_ret2, true);
- TEST_T(Base1, true);
- TEST_T(Derived1, true);
- TEST_T(Base2, false);
- TEST_T(Derived2, true);
-
- TEST_TR(without, void, false);
- TEST_TR(without, bool, false);
- TEST_TR(internal, void, false);
- TEST_TR(internal, bool, false);
- TEST_TR(internal, ret, true);
- TEST_TR(internal_comma1, void, false);
- TEST_TR(internal_comma1, bool, false);
- TEST_TR(internal_comma1, ret_with_comma1, true);
- TEST_TR(internal_comma2, void, false);
- TEST_TR(internal_comma2, bool, false);
- TEST_TR(internal_comma2, ret_with_comma2, true);
- TEST_TR(external, void, false);
- TEST_TR(external, bool, false);
- TEST_TR(external, ret, true);
- TEST_TR(returns_int, void, false);
- 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, void, false);
- TEST_TR(returns_double, bool, true);
- TEST_TR(returns_double, double, true);
- TEST_TR(returns_convertible_to_ret1, void, false);
- TEST_TR(returns_convertible_to_ret1, ret1, true);
- TEST_TR(returns_convertible_to_ret2, ret2, true);
- TEST_TR(Base1, bool, true);
- TEST_TR(Derived1, bool, true);
- TEST_TR(Base2, bool, false);
- TEST_TR(Derived2, bool, true);
-// compile time error
-// TEST_T(internal_private, false);
-}
-
-}

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_bitwise_and_assignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_bitwise_and_assignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_bitwise_and_assignment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_and_assignment
-#define BOOST_TT_TRAIT_OP &=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, double volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, double const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile &, bool const volatile >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_bitwise_and_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_bitwise_and_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_bitwise_and.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_and
-#define BOOST_TT_TRAIT_OP &
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, double volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, double const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile &, bool const volatile >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_bitwise_or_assignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_bitwise_or_assignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_bitwise_or_assignment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_or_assignment
-#define BOOST_TT_TRAIT_OP |=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, double volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, double const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile &, bool const volatile >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_bitwise_or_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_bitwise_or_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_bitwise_or.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_or
-#define BOOST_TT_TRAIT_OP |
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, double volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, double const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile &, bool const volatile >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_bitwise_xor_assignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_bitwise_xor_assignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_bitwise_xor_assignment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_xor_assignment
-#define BOOST_TT_TRAIT_OP ^=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile &, bool volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile, bool volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, bool & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile &, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_bitwise_xor_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_bitwise_xor_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_bitwise_xor.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_bitwise_xor
-#define BOOST_TT_TRAIT_OP ^
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, double volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, double const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile &, bool const volatile >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_complement_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_complement_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_complement.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_complement
-#define BOOST_TT_TRAIT_OP ~
-
-
-#include "can_call_prefix_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_dereference_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_dereference_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_dereference.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_dereference
-#define BOOST_TT_TRAIT_OP *
-
-
-#include "can_call_prefix_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* volatile, bool & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* volatile &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const volatile &, int const volatile >::value), 1);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_division_assignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_division_assignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_division_assignment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_division_assignment
-#define BOOST_TT_TRAIT_OP /=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile &, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, double volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, double const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile &, bool const volatile >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_division_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_division_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_division.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_division
-#define BOOST_TT_TRAIT_OP /
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_equal_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_equal.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_equal
-#define BOOST_TT_TRAIT_OP ==
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_greater_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_greater_equal_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_greater_equal.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_greater_equal
-#define BOOST_TT_TRAIT_OP >=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void*, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const volatile &, int & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_greater_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_greater_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_greater.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_greater
-#define BOOST_TT_TRAIT_OP >
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void*, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const volatile &, int & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_left_shift_assignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_left_shift_assignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_left_shift_assignment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_left_shift_assignment
-#define BOOST_TT_TRAIT_OP <<=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile &, bool volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile, bool volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, bool & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile &, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_left_shift_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_left_shift_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,300 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_left_shift.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_left_shift
-#define BOOST_TT_TRAIT_OP <<
-
-#include <ostream>
-#include <string>
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, int const volatile & >::value), 0);
-
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, long, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, unsigned long, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, bool, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, short, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, unsigned short, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, int, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, unsigned int, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, double, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, float, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, void*, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, char, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, signed char, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, unsigned char, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, const char*, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, char*, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, const signed char*, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, signed char*, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, const unsigned char*, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, unsigned char*, std::ostream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, std::string, std::ostream& >::value), 1);
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_less_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_less_equal_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_less_equal.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_less_equal
-#define BOOST_TT_TRAIT_OP <=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_less_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_less_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_less.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_less
-#define BOOST_TT_TRAIT_OP <
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_modulus_assignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_modulus_assignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_modulus_assignment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_modulus_assignment
-#define BOOST_TT_TRAIT_OP %=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, double volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, double const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile &, bool const volatile >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_modulus_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_modulus_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_modulus.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_modulus
-#define BOOST_TT_TRAIT_OP %
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_multiplication_assignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_multiplication_assignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_multiplication_assignment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_multiplication_assignment
-#define BOOST_TT_TRAIT_OP *=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile &, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, double volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, double const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile &, bool const volatile >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_multiplication_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_multiplication_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_multiplication.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_multiplication
-#define BOOST_TT_TRAIT_OP *
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_not_equal_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_not_equal_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_not_equal.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_not_equal
-#define BOOST_TT_TRAIT_OP !=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_not_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_not_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,281 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_not.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_not
-#define BOOST_TT_TRAIT_OP !
-
-#include <iostream>
-
-#include "can_call_prefix_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const & >::value), 1);
-
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, bool >::value), 1);
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_or_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_or_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_or.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_or
-#define BOOST_TT_TRAIT_OP ||
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void*, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, void* volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void*, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const volatile &, int & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_post_decrement_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_post_decrement_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_post_decrement.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_post_decrement
-#define BOOST_TT_TRAIT_OP --
-
-
-#include "can_call_postfix_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_post_increment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_post_increment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_post_increment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_post_increment
-#define BOOST_TT_TRAIT_OP ++
-
-
-#include "can_call_postfix_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,219 +0,0 @@
-struct ret { };
-ret ret_val;
-
-class C000 { C000(); public: C000(int) { } };
-void operator++(C000, int) { }
-
-class C001 { C001(); public: C001(int) { } };
-ret operator++(C001, int) { return ret_val; }
-
-class C002 { C002(); public: C002(int) { } };
-ret const operator++(C002, int) { return ret_val; }
-
-class C003 { C003(); public: C003(int) { } };
-ret volatile operator++(C003, int) { return ret_val; }
-
-class C004 { C004(); public: C004(int) { } };
-ret const volatile operator++(C004, int) { return ret_val; }
-
-class C005 { C005(); public: C005(int) { } };
-ret & operator++(C005, int) { return ret_val; }
-
-class C006 { C006(); public: C006(int) { } };
-ret const & operator++(C006, int) { return ret_val; }
-
-class C007 { C007(); public: C007(int) { } };
-ret volatile & operator++(C007, int) { return ret_val; }
-
-class C008 { C008(); public: C008(int) { } };
-ret const volatile & operator++(C008, int) { return ret_val; }
-
-class C009 { C009(); public: C009(int) { } };
-void operator++(C009 const, int) { }
-
-class C010 { C010(); public: C010(int) { } };
-ret operator++(C010 const, int) { return ret_val; }
-
-class C011 { C011(); public: C011(int) { } };
-ret const operator++(C011 const, int) { return ret_val; }
-
-class C012 { C012(); public: C012(int) { } };
-ret volatile operator++(C012 const, int) { return ret_val; }
-
-class C013 { C013(); public: C013(int) { } };
-ret const volatile operator++(C013 const, int) { return ret_val; }
-
-class C014 { C014(); public: C014(int) { } };
-ret & operator++(C014 const, int) { return ret_val; }
-
-class C015 { C015(); public: C015(int) { } };
-ret const & operator++(C015 const, int) { return ret_val; }
-
-class C016 { C016(); public: C016(int) { } };
-ret volatile & operator++(C016 const, int) { return ret_val; }
-
-class C017 { C017(); public: C017(int) { } };
-ret const volatile & operator++(C017 const, int) { return ret_val; }
-
-class C018 { C018(); public: C018(int) { } };
-void operator++(C018 volatile, int) { }
-
-class C019 { C019(); public: C019(int) { } };
-ret operator++(C019 volatile, int) { return ret_val; }
-
-class C020 { C020(); public: C020(int) { } };
-ret const operator++(C020 volatile, int) { return ret_val; }
-
-class C021 { C021(); public: C021(int) { } };
-ret volatile operator++(C021 volatile, int) { return ret_val; }
-
-class C022 { C022(); public: C022(int) { } };
-ret const volatile operator++(C022 volatile, int) { return ret_val; }
-
-class C023 { C023(); public: C023(int) { } };
-ret & operator++(C023 volatile, int) { return ret_val; }
-
-class C024 { C024(); public: C024(int) { } };
-ret const & operator++(C024 volatile, int) { return ret_val; }
-
-class C025 { C025(); public: C025(int) { } };
-ret volatile & operator++(C025 volatile, int) { return ret_val; }
-
-class C026 { C026(); public: C026(int) { } };
-ret const volatile & operator++(C026 volatile, int) { return ret_val; }
-
-class C027 { C027(); public: C027(int) { } };
-void operator++(C027 const volatile, int) { }
-
-class C028 { C028(); public: C028(int) { } };
-ret operator++(C028 const volatile, int) { return ret_val; }
-
-class C029 { C029(); public: C029(int) { } };
-ret const operator++(C029 const volatile, int) { return ret_val; }
-
-class C030 { C030(); public: C030(int) { } };
-ret volatile operator++(C030 const volatile, int) { return ret_val; }
-
-class C031 { C031(); public: C031(int) { } };
-ret const volatile operator++(C031 const volatile, int) { return ret_val; }
-
-class C032 { C032(); public: C032(int) { } };
-ret & operator++(C032 const volatile, int) { return ret_val; }
-
-class C033 { C033(); public: C033(int) { } };
-ret const & operator++(C033 const volatile, int) { return ret_val; }
-
-class C034 { C034(); public: C034(int) { } };
-ret volatile & operator++(C034 const volatile, int) { return ret_val; }
-
-class C035 { C035(); public: C035(int) { } };
-ret const volatile & operator++(C035 const volatile, int) { return ret_val; }
-
-class C036 { C036(); public: C036(int) { } };
-void operator++(C036 &, int) { }
-
-class C037 { C037(); public: C037(int) { } };
-ret operator++(C037 &, int) { return ret_val; }
-
-class C038 { C038(); public: C038(int) { } };
-ret const operator++(C038 &, int) { return ret_val; }
-
-class C039 { C039(); public: C039(int) { } };
-ret volatile operator++(C039 &, int) { return ret_val; }
-
-class C040 { C040(); public: C040(int) { } };
-ret const volatile operator++(C040 &, int) { return ret_val; }
-
-class C041 { C041(); public: C041(int) { } };
-ret & operator++(C041 &, int) { return ret_val; }
-
-class C042 { C042(); public: C042(int) { } };
-ret const & operator++(C042 &, int) { return ret_val; }
-
-class C043 { C043(); public: C043(int) { } };
-ret volatile & operator++(C043 &, int) { return ret_val; }
-
-class C044 { C044(); public: C044(int) { } };
-ret const volatile & operator++(C044 &, int) { return ret_val; }
-
-class C045 { C045(); public: C045(int) { } };
-void operator++(C045 const &, int) { }
-
-class C046 { C046(); public: C046(int) { } };
-ret operator++(C046 const &, int) { return ret_val; }
-
-class C047 { C047(); public: C047(int) { } };
-ret const operator++(C047 const &, int) { return ret_val; }
-
-class C048 { C048(); public: C048(int) { } };
-ret volatile operator++(C048 const &, int) { return ret_val; }
-
-class C049 { C049(); public: C049(int) { } };
-ret const volatile operator++(C049 const &, int) { return ret_val; }
-
-class C050 { C050(); public: C050(int) { } };
-ret & operator++(C050 const &, int) { return ret_val; }
-
-class C051 { C051(); public: C051(int) { } };
-ret const & operator++(C051 const &, int) { return ret_val; }
-
-class C052 { C052(); public: C052(int) { } };
-ret volatile & operator++(C052 const &, int) { return ret_val; }
-
-class C053 { C053(); public: C053(int) { } };
-ret const volatile & operator++(C053 const &, int) { return ret_val; }
-
-class C054 { C054(); public: C054(int) { } };
-void operator++(C054 volatile &, int) { }
-
-class C055 { C055(); public: C055(int) { } };
-ret operator++(C055 volatile &, int) { return ret_val; }
-
-class C056 { C056(); public: C056(int) { } };
-ret const operator++(C056 volatile &, int) { return ret_val; }
-
-class C057 { C057(); public: C057(int) { } };
-ret volatile operator++(C057 volatile &, int) { return ret_val; }
-
-class C058 { C058(); public: C058(int) { } };
-ret const volatile operator++(C058 volatile &, int) { return ret_val; }
-
-class C059 { C059(); public: C059(int) { } };
-ret & operator++(C059 volatile &, int) { return ret_val; }
-
-class C060 { C060(); public: C060(int) { } };
-ret const & operator++(C060 volatile &, int) { return ret_val; }
-
-class C061 { C061(); public: C061(int) { } };
-ret volatile & operator++(C061 volatile &, int) { return ret_val; }
-
-class C062 { C062(); public: C062(int) { } };
-ret const volatile & operator++(C062 volatile &, int) { return ret_val; }
-
-class C063 { C063(); public: C063(int) { } };
-void operator++(C063 const volatile &, int) { }
-
-class C064 { C064(); public: C064(int) { } };
-ret operator++(C064 const volatile &, int) { return ret_val; }
-
-class C065 { C065(); public: C065(int) { } };
-ret const operator++(C065 const volatile &, int) { return ret_val; }
-
-class C066 { C066(); public: C066(int) { } };
-ret volatile operator++(C066 const volatile &, int) { return ret_val; }
-
-class C067 { C067(); public: C067(int) { } };
-ret const volatile operator++(C067 const volatile &, int) { return ret_val; }
-
-class C068 { C068(); public: C068(int) { } };
-ret & operator++(C068 const volatile &, int) { return ret_val; }
-
-class C069 { C069(); public: C069(int) { } };
-ret const & operator++(C069 const volatile &, int) { return ret_val; }
-
-class C070 { C070(); public: C070(int) { } };
-ret volatile & operator++(C070 const volatile &, int) { return ret_val; }
-
-class C071 { C071(); public: C071(int) { } };
-ret const volatile & operator++(C071 const volatile &, int) { return ret_val; }
-

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes0_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes0_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_postfix_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 volatile, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C000 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C001 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C002 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C003 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C004 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C004 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C004 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C004 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C004 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C004 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C004 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C004 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C004 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C004 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 const, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 const volatile, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C005 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C006 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C007 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C008 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 volatile &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C009 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C010, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C010 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C010 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C010 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C010 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C010 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C011 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C012 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C013 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C014 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C015 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C016 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C017 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018, ret volatile & >::value), 0);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes1_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes1_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_postfix_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 const, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 volatile, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C018 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C019 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C020 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C021 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C022 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C023, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C023 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C023 volatile, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C023 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C023 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C023 const &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C023 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C023 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C023 volatile &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C023 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C024 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C025, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C025, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C025 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C025 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C025 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C025 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C025 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C025 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C026 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 const &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 const volatile &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C027 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C028 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C029 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C030 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C030 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C030 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C030 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C030 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C030 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C030 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C030 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C031 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 const, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 volatile, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 volatile &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C032 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C033 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C034 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C035 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036, ret volatile >::value), 0);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes2_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes2_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_postfix_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C036 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C037 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C038 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C039 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C040, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C040 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C040 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C040 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C040 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C040 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C040 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C040 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C040 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C041 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C042 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C043 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C044 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045 &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C045 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C046 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C047 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C048 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C049 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 const, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 const &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C050 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C051 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C052 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C053 const volatile &, ret volatile & >::value), 0);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes3_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_postfix_classes3_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_postfix_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C054 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C054 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C054 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C054 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C054 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C054 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C054 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C054 volatile &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C054 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C055 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C056 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C057 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C058, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C058, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C058 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C058 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C058 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C058 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C058 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C058 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C058 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C058 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C059 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C060, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C060 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C060 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C060 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C060 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C060 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C060 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C060 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C060 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C060 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C061 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C062 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C063 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C064 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C065 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C066 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C067 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const volatile, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 volatile &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C068 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C069 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070 volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070 volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C070 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_post_increment< C071 const volatile &, ret const volatile & >::value), 1);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_postfix_operators.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_postfix_operators.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,126 +0,0 @@
-// (C) Copyright Frederic Bron 2009-2011.
-// 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)
-
-// test with one template parameter
-#define TEST_T(TYPE,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::boost::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((::boost::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
-
-namespace {
-
-struct without { };
-
-struct ret { };
-
-struct internal { ret operator BOOST_TT_TRAIT_OP (int) const; };
-
-struct external { };
-ret operator BOOST_TT_TRAIT_OP (const external&, int);
-
-struct comma1_ret { };
-struct ret_with_comma1 { comma1_ret operator,(int); };
-
-struct internal_comma1 { ret_with_comma1 operator BOOST_TT_TRAIT_OP (int) const; };
-
-struct external_comma1 { };
-ret_with_comma1 operator BOOST_TT_TRAIT_OP (const external_comma1&, int);
-
-struct ret_with_comma2 { void operator,(int); };
-
-struct internal_comma2 { ret_with_comma2 operator BOOST_TT_TRAIT_OP (int) const; };
-
-struct external_comma2 { };
-ret_with_comma2 operator BOOST_TT_TRAIT_OP (const external_comma2&, int);
-
-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 ret1 { };
-struct convertible_to_ret1 { operator ret1 () const; };
-struct returns_convertible_to_ret1 { convertible_to_ret1 operator BOOST_TT_TRAIT_OP (int); };
-
-struct convertible_to_ret2 { };
-struct ret2 { ret2(const convertible_to_ret2); };
-struct returns_convertible_to_ret2 { convertible_to_ret2 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 { };
-
-//class internal_private { ret operator BOOST_TT_TRAIT_OP (int) const; };
-
-void common() {
- TEST_T(void, false);
- TEST_TR(void, void, false);
- TEST_TR(void, int, false);
-
- TEST_T(without, false);
- TEST_T(internal, true);
- TEST_T(external, true);
- TEST_T(internal_comma1, true);
- TEST_T(external_comma1, true);
- TEST_T(internal_comma2, true);
- TEST_T(external_comma2, true);
- TEST_T(returns_int, true);
- TEST_T(returns_void, true);
- TEST_T(returns_void_star, true);
- TEST_T(returns_double, true);
- TEST_T(returns_convertible_to_ret1, true);
- TEST_T(returns_convertible_to_ret2, true);
- TEST_T(Base1, true);
- TEST_T(Derived1, true);
- TEST_T(Base2, false);
- TEST_T(Derived2, true);
-
- TEST_TR(without, void, false);
- TEST_TR(without, bool, false);
- TEST_TR(internal, void, false);
- TEST_TR(internal, bool, false);
- TEST_TR(internal, ret, true);
- TEST_TR(internal_comma1, void, false);
- TEST_TR(internal_comma1, bool, false);
- TEST_TR(internal_comma1, ret_with_comma1, true);
- TEST_TR(internal_comma2, void, false);
- TEST_TR(internal_comma2, bool, false);
- TEST_TR(internal_comma2, ret_with_comma2, true);
- TEST_TR(external, void, false);
- TEST_TR(external, bool, false);
- TEST_TR(external, ret, true);
- TEST_TR(returns_int, void, false);
- 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, void, false);
- TEST_TR(returns_double, bool, true);
- TEST_TR(returns_double, double, true);
- TEST_TR(returns_convertible_to_ret1, void, false);
- TEST_TR(returns_convertible_to_ret1, ret1, true);
- TEST_TR(returns_convertible_to_ret2, ret2, true);
- TEST_TR(Base1, bool, true);
- TEST_TR(Derived1, bool, true);
- TEST_TR(Base2, bool, false);
- TEST_TR(Derived2, bool, true);
-// compile time error
-// TEST_T(internal_private, false);
-}
-
-}

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_pre_decrement_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_pre_decrement_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_pre_decrement.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_pre_decrement
-#define BOOST_TT_TRAIT_OP --
-
-
-#include "can_call_prefix_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_pre_increment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_pre_increment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_pre_increment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_pre_increment
-#define BOOST_TT_TRAIT_OP ++
-
-
-#include "can_call_prefix_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,219 +0,0 @@
-struct ret { };
-ret ret_val;
-
-class C000 { C000(); public: C000(int) { } };
-void operator++(C000) { }
-
-class C001 { C001(); public: C001(int) { } };
-ret operator++(C001) { return ret_val; }
-
-class C002 { C002(); public: C002(int) { } };
-ret const operator++(C002) { return ret_val; }
-
-class C003 { C003(); public: C003(int) { } };
-ret volatile operator++(C003) { return ret_val; }
-
-class C004 { C004(); public: C004(int) { } };
-ret const volatile operator++(C004) { return ret_val; }
-
-class C005 { C005(); public: C005(int) { } };
-ret & operator++(C005) { return ret_val; }
-
-class C006 { C006(); public: C006(int) { } };
-ret const & operator++(C006) { return ret_val; }
-
-class C007 { C007(); public: C007(int) { } };
-ret volatile & operator++(C007) { return ret_val; }
-
-class C008 { C008(); public: C008(int) { } };
-ret const volatile & operator++(C008) { return ret_val; }
-
-class C009 { C009(); public: C009(int) { } };
-void operator++(C009 const) { }
-
-class C010 { C010(); public: C010(int) { } };
-ret operator++(C010 const) { return ret_val; }
-
-class C011 { C011(); public: C011(int) { } };
-ret const operator++(C011 const) { return ret_val; }
-
-class C012 { C012(); public: C012(int) { } };
-ret volatile operator++(C012 const) { return ret_val; }
-
-class C013 { C013(); public: C013(int) { } };
-ret const volatile operator++(C013 const) { return ret_val; }
-
-class C014 { C014(); public: C014(int) { } };
-ret & operator++(C014 const) { return ret_val; }
-
-class C015 { C015(); public: C015(int) { } };
-ret const & operator++(C015 const) { return ret_val; }
-
-class C016 { C016(); public: C016(int) { } };
-ret volatile & operator++(C016 const) { return ret_val; }
-
-class C017 { C017(); public: C017(int) { } };
-ret const volatile & operator++(C017 const) { return ret_val; }
-
-class C018 { C018(); public: C018(int) { } };
-void operator++(C018 volatile) { }
-
-class C019 { C019(); public: C019(int) { } };
-ret operator++(C019 volatile) { return ret_val; }
-
-class C020 { C020(); public: C020(int) { } };
-ret const operator++(C020 volatile) { return ret_val; }
-
-class C021 { C021(); public: C021(int) { } };
-ret volatile operator++(C021 volatile) { return ret_val; }
-
-class C022 { C022(); public: C022(int) { } };
-ret const volatile operator++(C022 volatile) { return ret_val; }
-
-class C023 { C023(); public: C023(int) { } };
-ret & operator++(C023 volatile) { return ret_val; }
-
-class C024 { C024(); public: C024(int) { } };
-ret const & operator++(C024 volatile) { return ret_val; }
-
-class C025 { C025(); public: C025(int) { } };
-ret volatile & operator++(C025 volatile) { return ret_val; }
-
-class C026 { C026(); public: C026(int) { } };
-ret const volatile & operator++(C026 volatile) { return ret_val; }
-
-class C027 { C027(); public: C027(int) { } };
-void operator++(C027 const volatile) { }
-
-class C028 { C028(); public: C028(int) { } };
-ret operator++(C028 const volatile) { return ret_val; }
-
-class C029 { C029(); public: C029(int) { } };
-ret const operator++(C029 const volatile) { return ret_val; }
-
-class C030 { C030(); public: C030(int) { } };
-ret volatile operator++(C030 const volatile) { return ret_val; }
-
-class C031 { C031(); public: C031(int) { } };
-ret const volatile operator++(C031 const volatile) { return ret_val; }
-
-class C032 { C032(); public: C032(int) { } };
-ret & operator++(C032 const volatile) { return ret_val; }
-
-class C033 { C033(); public: C033(int) { } };
-ret const & operator++(C033 const volatile) { return ret_val; }
-
-class C034 { C034(); public: C034(int) { } };
-ret volatile & operator++(C034 const volatile) { return ret_val; }
-
-class C035 { C035(); public: C035(int) { } };
-ret const volatile & operator++(C035 const volatile) { return ret_val; }
-
-class C036 { C036(); public: C036(int) { } };
-void operator++(C036 &) { }
-
-class C037 { C037(); public: C037(int) { } };
-ret operator++(C037 &) { return ret_val; }
-
-class C038 { C038(); public: C038(int) { } };
-ret const operator++(C038 &) { return ret_val; }
-
-class C039 { C039(); public: C039(int) { } };
-ret volatile operator++(C039 &) { return ret_val; }
-
-class C040 { C040(); public: C040(int) { } };
-ret const volatile operator++(C040 &) { return ret_val; }
-
-class C041 { C041(); public: C041(int) { } };
-ret & operator++(C041 &) { return ret_val; }
-
-class C042 { C042(); public: C042(int) { } };
-ret const & operator++(C042 &) { return ret_val; }
-
-class C043 { C043(); public: C043(int) { } };
-ret volatile & operator++(C043 &) { return ret_val; }
-
-class C044 { C044(); public: C044(int) { } };
-ret const volatile & operator++(C044 &) { return ret_val; }
-
-class C045 { C045(); public: C045(int) { } };
-void operator++(C045 const &) { }
-
-class C046 { C046(); public: C046(int) { } };
-ret operator++(C046 const &) { return ret_val; }
-
-class C047 { C047(); public: C047(int) { } };
-ret const operator++(C047 const &) { return ret_val; }
-
-class C048 { C048(); public: C048(int) { } };
-ret volatile operator++(C048 const &) { return ret_val; }
-
-class C049 { C049(); public: C049(int) { } };
-ret const volatile operator++(C049 const &) { return ret_val; }
-
-class C050 { C050(); public: C050(int) { } };
-ret & operator++(C050 const &) { return ret_val; }
-
-class C051 { C051(); public: C051(int) { } };
-ret const & operator++(C051 const &) { return ret_val; }
-
-class C052 { C052(); public: C052(int) { } };
-ret volatile & operator++(C052 const &) { return ret_val; }
-
-class C053 { C053(); public: C053(int) { } };
-ret const volatile & operator++(C053 const &) { return ret_val; }
-
-class C054 { C054(); public: C054(int) { } };
-void operator++(C054 volatile &) { }
-
-class C055 { C055(); public: C055(int) { } };
-ret operator++(C055 volatile &) { return ret_val; }
-
-class C056 { C056(); public: C056(int) { } };
-ret const operator++(C056 volatile &) { return ret_val; }
-
-class C057 { C057(); public: C057(int) { } };
-ret volatile operator++(C057 volatile &) { return ret_val; }
-
-class C058 { C058(); public: C058(int) { } };
-ret const volatile operator++(C058 volatile &) { return ret_val; }
-
-class C059 { C059(); public: C059(int) { } };
-ret & operator++(C059 volatile &) { return ret_val; }
-
-class C060 { C060(); public: C060(int) { } };
-ret const & operator++(C060 volatile &) { return ret_val; }
-
-class C061 { C061(); public: C061(int) { } };
-ret volatile & operator++(C061 volatile &) { return ret_val; }
-
-class C062 { C062(); public: C062(int) { } };
-ret const volatile & operator++(C062 volatile &) { return ret_val; }
-
-class C063 { C063(); public: C063(int) { } };
-void operator++(C063 const volatile &) { }
-
-class C064 { C064(); public: C064(int) { } };
-ret operator++(C064 const volatile &) { return ret_val; }
-
-class C065 { C065(); public: C065(int) { } };
-ret const operator++(C065 const volatile &) { return ret_val; }
-
-class C066 { C066(); public: C066(int) { } };
-ret volatile operator++(C066 const volatile &) { return ret_val; }
-
-class C067 { C067(); public: C067(int) { } };
-ret const volatile operator++(C067 const volatile &) { return ret_val; }
-
-class C068 { C068(); public: C068(int) { } };
-ret & operator++(C068 const volatile &) { return ret_val; }
-
-class C069 { C069(); public: C069(int) { } };
-ret const & operator++(C069 const volatile &) { return ret_val; }
-
-class C070 { C070(); public: C070(int) { } };
-ret volatile & operator++(C070 const volatile &) { return ret_val; }
-
-class C071 { C071(); public: C071(int) { } };
-ret const volatile & operator++(C071 const volatile &) { return ret_val; }
-

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes0_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes0_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_prefix_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C000, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C000, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C000 const, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C000 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C000 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C000 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C000 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C000 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C000 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C000 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C001 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002 const volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C002 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C003 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C004 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 const, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C005 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C006 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C007 const volatile &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C008 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C009 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C010 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C011 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C012 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C013 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C014, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C014 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C014 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C014 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C014 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C014 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C014 volatile &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C014 const volatile &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C015 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 const, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C016 const volatile &, ret volatile & >::value), 1);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes1_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes1_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_prefix_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C017 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C018 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C019 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C020 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C021 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C022 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 const, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C023 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C024 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C025 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C026 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 volatile &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 const volatile &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C027 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C028 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C029 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C029 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C029 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C029 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C029 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C029 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C029 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C029 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C029 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C030 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C031, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C031, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C031, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C031 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C031 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C031 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C031 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const volatile &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C032 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 const, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C033 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C034, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C034 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C034 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C034 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C034 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C034 const volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C034 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C034 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C034 const volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C034 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 const volatile, ret const volatile & >::value), 1);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes2_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes2_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_prefix_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C035 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C036, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C036 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C036 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C036 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C036 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C036 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C036 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C036 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C036 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C036 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C037 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C038 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C039 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C040 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C041 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C042, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C042 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C042 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C042 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C042 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C042 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C042 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C042 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C042 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C042 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C043, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C043, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C043 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C043 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C043 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C043 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C043 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C043 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C043 const volatile &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C044 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C045 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C046 const volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C047 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C048 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C049, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C049 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C049 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C049 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C049 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C049 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C049 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C049 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 const, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 const, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C050 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C051 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C051 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C051 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C051 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C051 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C051 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C051 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C051 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C051 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C051 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C052 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C053 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C053 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C053 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C053 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C053 volatile, ret const >::value), 0);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes3_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_prefix_classes3_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,263 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#include <boost/type_traits/can_call.hpp>
-#include "can_call_prefix_classes.hpp"
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C053 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C053 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C053 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C053 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C054 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C055 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C056 const, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C056 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C056 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C056 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C056 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C056 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C056 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C056 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C057 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C058 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 const volatile, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 volatile &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 const volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C059 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const volatile, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const volatile &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C060 const volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 const, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 const, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C061 volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 const volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 const volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 const &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 const &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C062 const volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 const, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 volatile, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 volatile, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 const volatile, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 const &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 const &, ret const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 const &, ret volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 volatile &, void >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 volatile &, ret >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C063 const volatile &, ret const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 volatile, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 const volatile, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C064 const volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 const, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 const &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 volatile &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C065 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 const, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 volatile, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 const &, ret const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 volatile &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 const volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C066 const volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C067 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C067 const, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C067 const volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C067 const volatile, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C067 const &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C067 const &, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C067 volatile &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C067 const volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 const, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 volatile, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 volatile, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 const volatile, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 const volatile, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 const &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 const volatile &, ret & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C068 const volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069 const, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069 const, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069 const, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069 volatile, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069 const volatile, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069 &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069 volatile &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069 volatile &, ret const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C069 volatile &, ret volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 const, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 const, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 const volatile, ret const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 const &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 const &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 const &, ret volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 volatile &, ret & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C070 const volatile &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071 volatile, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071 &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071 &, ret const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071 &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071 &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071 const &, ret volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071 const &, ret const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071 volatile &, ret >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071 volatile &, ret const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::can_call_pre_increment< C071 const volatile &, ret const >::value), 1);
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_prefix_operators.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_prefix_operators.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,123 +0,0 @@
-// (C) Copyright Frederic Bron 2009-2011.
-// 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)
-
-// test with one template parameter
-#define TEST_T(TYPE,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::boost::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((::boost::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
-
-namespace {
-
-struct without { };
-
-struct ret { };
-
-struct internal { ret operator BOOST_TT_TRAIT_OP () const; };
-
-struct external { };
-ret operator BOOST_TT_TRAIT_OP (const external&);
-
-struct comma1_ret { };
-struct ret_with_comma1 { comma1_ret operator,(int); };
-
-struct internal_comma1 { ret_with_comma1 operator BOOST_TT_TRAIT_OP () const; };
-
-struct external_comma1 { };
-ret_with_comma1 operator BOOST_TT_TRAIT_OP (const external_comma1&);
-
-struct ret_with_comma2 { void operator,(int); };
-
-struct internal_comma2 { ret_with_comma2 operator BOOST_TT_TRAIT_OP () const; };
-
-struct external_comma2 { };
-ret_with_comma2 operator BOOST_TT_TRAIT_OP (const external_comma2&);
-
-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 ret1 { };
-struct convertible_to_ret1 { operator ret1 () const; };
-struct returns_convertible_to_ret1 { convertible_to_ret1 operator BOOST_TT_TRAIT_OP (); };
-
-struct convertible_to_ret2 { };
-struct ret2 { ret2(const convertible_to_ret2); };
-struct returns_convertible_to_ret2 { convertible_to_ret2 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 { };
-
-//class internal_private { ret operator BOOST_TT_TRAIT_OP () const; };
-
-void common() {
- TEST_T(void, false);
- TEST_TR(void, void, false);
- TEST_TR(void, int, false);
-
- TEST_T(without, false);
- TEST_T(internal, true);
- TEST_T(external, true);
- TEST_T(internal_comma1, true);
- TEST_T(external_comma1, true);
- TEST_T(internal_comma2, true);
- TEST_T(external_comma2, true);
- TEST_T(returns_int, true);
- TEST_T(returns_void, true);
- TEST_T(returns_void_star, true);
- TEST_T(returns_double, true);
- TEST_T(returns_convertible_to_ret1, true);
- TEST_T(returns_convertible_to_ret2, true);
- TEST_T(Base1, true);
- TEST_T(Derived1, true);
- TEST_T(Base2, false);
- TEST_T(Derived2, true);
-
- TEST_TR(without, void, false);
- TEST_TR(without, bool, false);
- TEST_TR(internal_comma1, void, false);
- TEST_TR(internal_comma1, bool, false);
- TEST_TR(internal_comma1, ret_with_comma1, true);
- TEST_TR(internal_comma2, void, false);
- TEST_TR(internal_comma2, bool, false);
- TEST_TR(internal_comma2, ret_with_comma2, true);
- TEST_TR(external, void, false);
- TEST_TR(external, bool, false);
- TEST_TR(external, ret, true);
- TEST_TR(returns_int, void, false);
- 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, void, false);
- TEST_TR(returns_double, bool, true);
- TEST_TR(returns_double, double, true);
- TEST_TR(returns_convertible_to_ret1, void, false);
- TEST_TR(returns_convertible_to_ret1, ret1, true);
- TEST_TR(returns_convertible_to_ret2, ret2, true);
- TEST_TR(Base1, bool, true);
- TEST_TR(Derived1, bool, true);
- TEST_TR(Base2, bool, false);
- TEST_TR(Derived2, bool, true);
-// compile time error
-// TEST_T(internal_private, false);
-}
-
-}

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_right_shift_assignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_right_shift_assignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_right_shift_assignment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_right_shift_assignment
-#define BOOST_TT_TRAIT_OP >>=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile &, bool volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile, bool volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, bool & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile &, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_right_shift_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_right_shift_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,297 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_right_shift.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_right_shift
-#define BOOST_TT_TRAIT_OP >>
-
-#include <istream>
-#include <string>
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int* const volatile &, int const volatile & >::value), 0);
-
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, bool&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, short&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, unsigned short&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, int&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, unsigned int&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, long&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, unsigned long&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, float&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, double&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, void*&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, char&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, signed char&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, unsigned char&, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, char*, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, signed char*, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, unsigned char*, std::istream& >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, std::string&, std::istream& >::value), 1);
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_subtraction_assignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_subtraction_assignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_subtraction_assignment.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_subtraction_assignment
-#define BOOST_TT_TRAIT_OP -=
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const volatile, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, double const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double volatile &, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, double volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int const volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, double const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int*, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, double const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int* volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, double const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double volatile &, bool const volatile >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_subtraction_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_subtraction_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_subtraction.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_subtraction
-#define BOOST_TT_TRAIT_OP -
-
-
-#include "can_call_binary_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, double const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, void* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, void* const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool const volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, double &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void*, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void*, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, double const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void*, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, double volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int* volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, double volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int* const &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, void* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, double volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, void* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int* const volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, double &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, void* const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, double const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* const &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int* volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double volatile &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, void* const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double const volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, double &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, void* const &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int*, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int* const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const volatile &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, double const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int* const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, double const volatile &, int const volatile & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_unary_minus_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_unary_minus_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_unary_minus.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_unary_minus
-#define BOOST_TT_TRAIT_OP -
-
-
-#include "can_call_prefix_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/can_call_unary_plus_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/can_call_unary_plus_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,278 +0,0 @@
-// (C) Copyright 2009-2011 Frederic 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)
-
-#include "test.hpp"
-#include "check_integral_constant.hpp"
-
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/can_call_unary_plus.hpp>
-#endif
-
-#define BOOST_TT_TRAIT_NAME can_call_unary_plus
-#define BOOST_TT_TRAIT_OP +
-
-
-#include "can_call_prefix_operators.hpp"
-
-void specific() {
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const volatile &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const volatile &, int volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* volatile &, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const volatile &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile, int const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int const volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int volatile & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, void >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* volatile &, int & >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const volatile >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, bool const & >::value), 1);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int volatile >::value), 0);
- BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const volatile &, int const & >::value), 0);
-
-}
-
-TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
- common();
- specific();
-TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/check_type.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/check_type.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,45 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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)
-
-#ifndef BOOST_CHECK_TYPE_HPP
-#define BOOST_CHECK_TYPE_HPP
-
-#ifdef USE_UNIT_TEST
-#include <boost/test/test_tools.hpp>
-#else
-#include "test.hpp"
-#endif
-#include <boost/type_traits/is_same.hpp>
-
-/*
-macro:
-BOOST_CHECK_TYPE(type_expression, expected_type)
-
-type_expression: an expression that evaluates to a typename.
-expected_value: the type we expect to find.
-*/
-
-#ifdef __BORLANDC__
-#pragma option -w-8008 -w-8066 -w-8019
-#endif
-
-
-#define BOOST_CHECK_TYPE(type_expression, expected_type)\
-do{\
- if(!::boost::is_same< type_expression, expected_type >::value){\
- BOOST_CHECK_MESSAGE(false, "The expression: \"" << BOOST_STRINGIZE(expression)\
- << "\" did not have the expected type:\n\tevaluating: boost::is_same<"\
- << BOOST_STRINGIZE(type_expression) << ", " << BOOST_STRINGIZE(expected_type)\
- << ">" << "\n\tfound: "\
- << typeid(::boost::is_same< type_expression, expected_type >).name());\
- }else\
- BOOST_CHECK_MESSAGE(true, "Validating Type Expression: \""\
- << BOOST_STRINGIZE(expression) << "\"");\
-}while(0)
-
-#endif
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/decay_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/decay_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,117 +0,0 @@
-
-// (C) Copyright John Maddock & Thorsten Ottosen 2005.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/decay.hpp>
-# include <boost/type_traits/is_same.hpp>
-#endif
-#include <iostream>
-#include <string>
-#include <utility>
-
-namespace boost
-{
-
- int proc1()
- {
- return 0;
- }
- int proc2(int c)
- {
- return c;
- }
-
- //
- // An almost optimal version of std::make_pair()
- //
- template< class F, class S >
- inline std::pair< BOOST_DEDUCED_TYPENAME tt::decay<const F>::type,
- BOOST_DEDUCED_TYPENAME tt::decay<const S>::type >
- make_pair( const F& f, const S& s )
- {
- return std::pair< BOOST_DEDUCED_TYPENAME tt::decay<const F>::type,
- BOOST_DEDUCED_TYPENAME tt::decay<const S>::type >( f, s );
- }
-
- /*
- This overload will mess up vc7.1
-
- template< class F, class S >
- inline std::pair< BOOST_DEDUCED_TYPENAME ::tt::decay<F>::type,
- BOOST_DEDUCED_TYPENAME ::tt::decay<S>::type >
- make_pair( F& f, S& s )
- {
- return std::pair< BOOST_DEDUCED_TYPENAME ::tt::decay<F>::type,
- BOOST_DEDUCED_TYPENAME ::tt::decay<S>::type >( f, s );
- }
- */
-}
-
-TT_TEST_BEGIN(is_class)
-
- BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<
- ::tt::decay<int>::type,int>::value),
- true );
- BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<
- ::tt::decay<char[2]>::type,char*>::value),
- true );
- BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<
- ::tt::decay<const char[2]>::type,const char*>::value),
- true );
- BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<
- ::tt::decay<wchar_t[2]>::type,wchar_t*>::value),
- true );
- BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<
- ::tt::decay<const wchar_t[2]>::type,const wchar_t*>::value),
- true );
- BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<
- ::tt::decay<const wchar_t[2]>::type,const wchar_t*>::value),
- true );
-
- typedef int f1_type(void);
- typedef int f2_type(int);
-
- BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<
- ::tt::decay<f1_type>::type,int (*)(void)>::value),
- true );
- BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<
- ::tt::decay<f2_type>::type,int (*)(int)>::value),
- true );
-
- std::pair<std::string,std::string> p = boost::make_pair( "foo", "bar" );
- std::pair<std::string, int> p2 = boost::make_pair( "foo", 1 );
-#ifndef BOOST_NO_STD_WSTRING
- std::pair<std::wstring,std::string> p3 = boost::make_pair( L"foo", "bar" );
- std::pair<std::wstring, int> p4 = boost::make_pair( L"foo", 1 );
-#endif
-
- //
- // Todo: make these work sometime. The test id not directly
- // related to decay<T>::type and can be avioded for now.
- //
- /*
- int array[10];
- std::pair<int*,int*> p5 = boost::make_pair( array, array );
-#ifndef __BORLANDC__
- std::pair<int(*)(void), int(*)(int)> p6 = boost::make_pair(boost::proc1, boost::proc2);
- p6.first();
- p6.second(1);
-#endif
- */
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/extent_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/extent_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,43 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/extent.hpp>
-#endif
-
-TT_TEST_BEGIN(extent)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::extent<int>::value, 0);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::extent<int[]>::value, 0);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::extent<int[][10]>::value, 0);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::extent<int[5][10]>::value, 5);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::extent<int[5][10][40]>::value, 5);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::extent<int (&)[5][10]>::value, 0);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::extent<int (*)[5][10]>::value, 0);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent<int,1>::value), 0);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent<int[],1>::value), 0);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent<int[][10],1>::value), 10);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent<int[5][10],1>::value), 10);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent<int[5][10][40],1>::value), 10);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent<int (&)[5][10],1>::value), 0);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent<int (*)[5][10],1>::value), 0);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent<int[5][10],2>::value), 0);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent<int[5][10][40],2>::value), 40);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::extent<int[5][10][40],3>::value), 0);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/function_traits_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/function_traits_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,68 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_type.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/function_traits.hpp>
-#endif
-
-typedef void(pf_zero1)();
-typedef int(pf_zero2)();
-typedef const int& (pf_zero3)();
-typedef void(pf_one1)(int);
-typedef int(pf_one2)(int);
-typedef const int&(pf_one3)(const int&);
-typedef void(pf_two1)(int,int);
-typedef int(pf_two2)(int,int);
-typedef const int&(pf_two3)(const int&,const int&);
-
-
-TT_TEST_BEGIN(function_traits)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::function_traits<pf_zero1>::arity, 0);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::function_traits<pf_zero2>::arity, 0);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::function_traits<pf_zero3>::arity, 0);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::function_traits<pf_one1>::arity, 1);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::function_traits<pf_one2>::arity, 1);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::function_traits<pf_one3>::arity, 1);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::function_traits<pf_two1>::arity, 2);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::function_traits<pf_two2>::arity, 2);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::function_traits<pf_two3>::arity, 2);
-
-BOOST_CHECK_TYPE(void, ::tt::function_traits<pf_zero1>::result_type);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_zero2>::result_type, int);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_zero3>::result_type, const int&);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_one1>::result_type, void);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_one2>::result_type, int);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_one3>::result_type, const int&);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_two1>::result_type, void);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_two2>::result_type, int);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_two3>::result_type, const int&);
-
-BOOST_CHECK_TYPE(::tt::function_traits<pf_one1>::arg1_type, int);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_one2>::arg1_type, int);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_one3>::arg1_type, const int&);
-
-BOOST_CHECK_TYPE(::tt::function_traits<pf_two1>::arg1_type, int);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_two2>::arg1_type, int);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_two3>::arg1_type, const int&);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_two1>::arg2_type, int);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_two2>::arg2_type, int);
-BOOST_CHECK_TYPE(::tt::function_traits<pf_two3>::arg2_type, const int&);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,252 @@
+// (C) Copyright Frederic Bron 2009-2011.
+// 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)
+
+#ifndef TT_HAS_BINARY_CLASSES_HPP
+#define TT_HAS_BINARY_CLASSES_HPP
+
+struct ret { };
+ret ret_val;
+
+class C000 { C000(); public: C000(int) { } };
+void operator+(C000, C000) { }
+
+class C001 { C001(); public: C001(int) { } };
+ret operator+(C001, C001) { return ret_val; }
+
+class C002 { C002(); public: C002(int) { } };
+ret const operator+(C002, C002) { return ret_val; }
+
+class C005 { C005(); public: C005(int) { } };
+ret & operator+(C005, C005) { return ret_val; }
+
+class C006 { C006(); public: C006(int) { } };
+ret const & operator+(C006, C006) { return ret_val; }
+
+class C009 { C009(); public: C009(int) { } };
+void operator+(C009, C009 const) { }
+
+class C010 { C010(); public: C010(int) { } };
+ret operator+(C010, C010 const) { return ret_val; }
+
+class C011 { C011(); public: C011(int) { } };
+ret const operator+(C011, C011 const) { return ret_val; }
+
+class C014 { C014(); public: C014(int) { } };
+ret & operator+(C014, C014 const) { return ret_val; }
+
+class C015 { C015(); public: C015(int) { } };
+ret const & operator+(C015, C015 const) { return ret_val; }
+
+class C036 { C036(); public: C036(int) { } };
+void operator+(C036, C036 &) { }
+
+class C037 { C037(); public: C037(int) { } };
+ret operator+(C037, C037 &) { return ret_val; }
+
+class C038 { C038(); public: C038(int) { } };
+ret const operator+(C038, C038 &) { return ret_val; }
+
+class C041 { C041(); public: C041(int) { } };
+ret & operator+(C041, C041 &) { return ret_val; }
+
+class C042 { C042(); public: C042(int) { } };
+ret const & operator+(C042, C042 &) { return ret_val; }
+
+class C045 { C045(); public: C045(int) { } };
+void operator+(C045, C045 const &) { }
+
+class C046 { C046(); public: C046(int) { } };
+ret operator+(C046, C046 const &) { return ret_val; }
+
+class C047 { C047(); public: C047(int) { } };
+ret const operator+(C047, C047 const &) { return ret_val; }
+
+class C050 { C050(); public: C050(int) { } };
+ret & operator+(C050, C050 const &) { return ret_val; }
+
+class C051 { C051(); public: C051(int) { } };
+ret const & operator+(C051, C051 const &) { return ret_val; }
+
+class C072 { C072(); public: C072(int) { } };
+void operator+(C072 const, C072) { }
+
+class C073 { C073(); public: C073(int) { } };
+ret operator+(C073 const, C073) { return ret_val; }
+
+class C074 { C074(); public: C074(int) { } };
+ret const operator+(C074 const, C074) { return ret_val; }
+
+class C077 { C077(); public: C077(int) { } };
+ret & operator+(C077 const, C077) { return ret_val; }
+
+class C078 { C078(); public: C078(int) { } };
+ret const & operator+(C078 const, C078) { return ret_val; }
+
+class C081 { C081(); public: C081(int) { } };
+void operator+(C081 const, C081 const) { }
+
+class C082 { C082(); public: C082(int) { } };
+ret operator+(C082 const, C082 const) { return ret_val; }
+
+class C083 { C083(); public: C083(int) { } };
+ret const operator+(C083 const, C083 const) { return ret_val; }
+
+class C086 { C086(); public: C086(int) { } };
+ret & operator+(C086 const, C086 const) { return ret_val; }
+
+class C087 { C087(); public: C087(int) { } };
+ret const & operator+(C087 const, C087 const) { return ret_val; }
+
+class C108 { C108(); public: C108(int) { } };
+void operator+(C108 const, C108 &) { }
+
+class C109 { C109(); public: C109(int) { } };
+ret operator+(C109 const, C109 &) { return ret_val; }
+
+class C110 { C110(); public: C110(int) { } };
+ret const operator+(C110 const, C110 &) { return ret_val; }
+
+class C113 { C113(); public: C113(int) { } };
+ret & operator+(C113 const, C113 &) { return ret_val; }
+
+class C114 { C114(); public: C114(int) { } };
+ret const & operator+(C114 const, C114 &) { return ret_val; }
+
+class C117 { C117(); public: C117(int) { } };
+void operator+(C117 const, C117 const &) { }
+
+class C118 { C118(); public: C118(int) { } };
+ret operator+(C118 const, C118 const &) { return ret_val; }
+
+class C119 { C119(); public: C119(int) { } };
+ret const operator+(C119 const, C119 const &) { return ret_val; }
+
+class C122 { C122(); public: C122(int) { } };
+ret & operator+(C122 const, C122 const &) { return ret_val; }
+
+class C123 { C123(); public: C123(int) { } };
+ret const & operator+(C123 const, C123 const &) { return ret_val; }
+
+class C288 { C288(); public: C288(int) { } };
+void operator+(C288 &, C288) { }
+
+class C289 { C289(); public: C289(int) { } };
+ret operator+(C289 &, C289) { return ret_val; }
+
+class C290 { C290(); public: C290(int) { } };
+ret const operator+(C290 &, C290) { return ret_val; }
+
+class C293 { C293(); public: C293(int) { } };
+ret & operator+(C293 &, C293) { return ret_val; }
+
+class C294 { C294(); public: C294(int) { } };
+ret const & operator+(C294 &, C294) { return ret_val; }
+
+class C297 { C297(); public: C297(int) { } };
+void operator+(C297 &, C297 const) { }
+
+class C298 { C298(); public: C298(int) { } };
+ret operator+(C298 &, C298 const) { return ret_val; }
+
+class C299 { C299(); public: C299(int) { } };
+ret const operator+(C299 &, C299 const) { return ret_val; }
+
+class C302 { C302(); public: C302(int) { } };
+ret & operator+(C302 &, C302 const) { return ret_val; }
+
+class C303 { C303(); public: C303(int) { } };
+ret const & operator+(C303 &, C303 const) { return ret_val; }
+
+class C324 { C324(); public: C324(int) { } };
+void operator+(C324 &, C324 &) { }
+
+class C325 { C325(); public: C325(int) { } };
+ret operator+(C325 &, C325 &) { return ret_val; }
+
+class C326 { C326(); public: C326(int) { } };
+ret const operator+(C326 &, C326 &) { return ret_val; }
+
+class C329 { C329(); public: C329(int) { } };
+ret & operator+(C329 &, C329 &) { return ret_val; }
+
+class C330 { C330(); public: C330(int) { } };
+ret const & operator+(C330 &, C330 &) { return ret_val; }
+
+class C333 { C333(); public: C333(int) { } };
+void operator+(C333 &, C333 const &) { }
+
+class C334 { C334(); public: C334(int) { } };
+ret operator+(C334 &, C334 const &) { return ret_val; }
+
+class C335 { C335(); public: C335(int) { } };
+ret const operator+(C335 &, C335 const &) { return ret_val; }
+
+class C338 { C338(); public: C338(int) { } };
+ret & operator+(C338 &, C338 const &) { return ret_val; }
+
+class C339 { C339(); public: C339(int) { } };
+ret const & operator+(C339 &, C339 const &) { return ret_val; }
+
+class C360 { C360(); public: C360(int) { } };
+void operator+(C360 const &, C360) { }
+
+class C361 { C361(); public: C361(int) { } };
+ret operator+(C361 const &, C361) { return ret_val; }
+
+class C362 { C362(); public: C362(int) { } };
+ret const operator+(C362 const &, C362) { return ret_val; }
+
+class C365 { C365(); public: C365(int) { } };
+ret & operator+(C365 const &, C365) { return ret_val; }
+
+class C366 { C366(); public: C366(int) { } };
+ret const & operator+(C366 const &, C366) { return ret_val; }
+
+class C369 { C369(); public: C369(int) { } };
+void operator+(C369 const &, C369 const) { }
+
+class C370 { C370(); public: C370(int) { } };
+ret operator+(C370 const &, C370 const) { return ret_val; }
+
+class C371 { C371(); public: C371(int) { } };
+ret const operator+(C371 const &, C371 const) { return ret_val; }
+
+class C374 { C374(); public: C374(int) { } };
+ret & operator+(C374 const &, C374 const) { return ret_val; }
+
+class C375 { C375(); public: C375(int) { } };
+ret const & operator+(C375 const &, C375 const) { return ret_val; }
+
+class C396 { C396(); public: C396(int) { } };
+void operator+(C396 const &, C396 &) { }
+
+class C397 { C397(); public: C397(int) { } };
+ret operator+(C397 const &, C397 &) { return ret_val; }
+
+class C398 { C398(); public: C398(int) { } };
+ret const operator+(C398 const &, C398 &) { return ret_val; }
+
+class C401 { C401(); public: C401(int) { } };
+ret & operator+(C401 const &, C401 &) { return ret_val; }
+
+class C402 { C402(); public: C402(int) { } };
+ret const & operator+(C402 const &, C402 &) { return ret_val; }
+
+class C405 { C405(); public: C405(int) { } };
+void operator+(C405 const &, C405 const &) { }
+
+class C406 { C406(); public: C406(int) { } };
+ret operator+(C406 const &, C406 const &) { return ret_val; }
+
+class C407 { C407(); public: C407(int) { } };
+ret const operator+(C407 const &, C407 const &) { return ret_val; }
+
+class C410 { C410(); public: C410(int) { } };
+ret & operator+(C410 const &, C410 const &) { return ret_val; }
+
+class C411 { C411(); public: C411(int) { } };
+ret const & operator+(C411 const &, C411 const &) { return ret_val; }
+
+#endif

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes0_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes0_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,263 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_binary_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000, C000, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000, C000 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000, C000 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000, C000 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000, C000 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 const, C000, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 const, C000 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 const, C000 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 const, C000 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 const, C000 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 &, C000, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 &, C000, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 &, C000, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 &, C000 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 &, C000 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 &, C000 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 const &, C000, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 const &, C000 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 const &, C000 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 const &, C000 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C000 const &, C000 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001, C001, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001, C001 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001, C001 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001, C001 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const, C001 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const, C001 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const, C001 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const, C001 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const, C001 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 &, C001, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 &, C001, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 &, C001, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 &, C001, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 &, C001 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 &, C001 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 &, C001 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 &, C001 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C001 const &, C001 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002, C002, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002, C002 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002, C002 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002, C002 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002, C002 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002, C002 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002, C002 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002, C002 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002, C002 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const, C002, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const, C002 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const, C002 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const, C002 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const, C002 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const, C002 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 &, C002, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 &, C002, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 &, C002, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 &, C002, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 &, C002 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 &, C002 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 &, C002 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 &, C002 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 &, C002 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 &, C002 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const &, C002, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const &, C002, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const &, C002, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const &, C002 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const &, C002 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const &, C002 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const &, C002 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const &, C002 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const &, C002 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C002 const &, C002 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005, C005 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const, C005, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const, C005, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const, C005 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const, C005 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const, C005 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const, C005 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 &, C005, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 &, C005, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 &, C005, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 &, C005, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 &, C005 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 &, C005 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 &, C005 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 &, C005 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const &, C005 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const &, C005 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const &, C005 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const &, C005 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const &, C005 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const &, C005 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const &, C005 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const &, C005 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const &, C005 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C005 const &, C005 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006, C006, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006, C006 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006, C006 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const, C006, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const, C006, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const, C006, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const, C006 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const, C006 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const, C006 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const, C006 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const, C006 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const, C006 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 &, C006, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 &, C006, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 &, C006, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 &, C006 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 &, C006 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 &, C006 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 &, C006 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const &, C006, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const &, C006 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const &, C006 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const &, C006 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const &, C006 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C006 const &, C006 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009, C009, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009, C009, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009, C009 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009, C009 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009, C009 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009, C009 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009, C009 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const, C009, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const, C009 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const, C009 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const, C009 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const, C009 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const, C009 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const, C009 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 &, C009, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 &, C009, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 &, C009, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 &, C009 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 &, C009 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 &, C009 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 &, C009 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 &, C009 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const &, C009 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const &, C009 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const &, C009 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const &, C009 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const &, C009 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const &, C009 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const &, C009 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C009 const &, C009 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010, C010, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010, C010 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010, C010 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010, C010 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010, C010 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010, C010 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010, C010 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010, C010 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const, C010, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const, C010, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const, C010, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const, C010, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const, C010 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const, C010 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const, C010 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 &, C010, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 &, C010, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 &, C010 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 &, C010 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 &, C010 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const &, C010, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const &, C010, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const &, C010 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const &, C010 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const &, C010 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const &, C010 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C010 const &, C010 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011, C011 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const, C011, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const, C011, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const, C011, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const, C011 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const, C011 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const, C011 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const, C011 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const, C011 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const, C011 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 &, C011 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const &, C011, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const &, C011, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const &, C011 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const &, C011 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const &, C011 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const &, C011 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const &, C011 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C011 const &, C011 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014, C014, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014, C014, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014, C014 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014, C014 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014, C014 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014, C014 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014, C014 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014, C014 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014, C014 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const, C014, ret const >::value), 1);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes1_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes1_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,263 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_binary_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const, C014, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const, C014 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const, C014 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const, C014 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const, C014 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const, C014 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 &, C014, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 &, C014, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 &, C014 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 &, C014 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 &, C014 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 &, C014 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 &, C014 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 &, C014 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 &, C014 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C014 const &, C014 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015, C015, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015, C015, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015, C015 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015, C015 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015, C015 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const, C015, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const, C015, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const, C015 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const, C015 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const, C015 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const, C015 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const, C015 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 &, C015, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 &, C015, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 &, C015 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 &, C015 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 &, C015 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const &, C015, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const &, C015 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const &, C015 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const &, C015 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C015 const &, C015 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036, C036, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036, C036 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036, C036 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036, C036 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036, C036 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036, C036 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036, C036 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const, C036, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const, C036, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const, C036 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const, C036 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const, C036 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const, C036 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 &, C036, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 &, C036, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 &, C036 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 &, C036 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 &, C036 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 &, C036 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 &, C036 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 &, C036 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const &, C036, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const &, C036, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const &, C036 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const &, C036 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const &, C036 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const &, C036 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const &, C036 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const &, C036 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const &, C036 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C036 const &, C036 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037, C037, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037, C037, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037, C037, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037, C037 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037, C037 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037, C037 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037, C037 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037, C037 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037, C037 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const, C037, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const, C037, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const, C037, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const, C037 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const, C037 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const, C037 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const, C037 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const, C037 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const, C037 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 &, C037, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 &, C037, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 &, C037, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 &, C037, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 &, C037 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 &, C037 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 &, C037 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 &, C037 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const &, C037, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const &, C037, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const &, C037 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const &, C037 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const &, C037 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C037 const &, C037 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038, C038, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038, C038, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038, C038, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038, C038 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038, C038 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038, C038 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038, C038 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038, C038 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038, C038 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038, C038 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const, C038, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const, C038, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const, C038 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const, C038 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const, C038 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const, C038 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const, C038 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const, C038 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const, C038 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const, C038 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 &, C038, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 &, C038, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 &, C038 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 &, C038 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 &, C038 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 &, C038 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 &, C038 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const &, C038, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const &, C038, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const &, C038, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C038 const &, C038 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041, C041, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041, C041 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041, C041 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041, C041 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041, C041 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041, C041 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041, C041 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const, C041, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const, C041 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const, C041 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const, C041 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const, C041 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const, C041 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const, C041 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 &, C041 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 &, C041 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 &, C041 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 &, C041 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 &, C041 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const &, C041, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const &, C041 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const &, C041 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const &, C041 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const &, C041 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const &, C041 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const &, C041 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const &, C041 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C041 const &, C041 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042, C042, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042, C042, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042, C042, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042, C042 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042, C042 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042, C042 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042, C042 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042, C042 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042, C042 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const, C042, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const, C042, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const, C042, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const, C042 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const, C042 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const, C042 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const, C042 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 &, C042, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 &, C042 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 &, C042 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 &, C042 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 &, C042 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 &, C042 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const &, C042, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const &, C042, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const &, C042 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const &, C042 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const &, C042 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const &, C042 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const &, C042 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const &, C042 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const &, C042 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C042 const &, C042 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045, C045 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045, C045 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045, C045 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const, C045, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const, C045, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const, C045, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const, C045 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const, C045 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const, C045 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const, C045 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const, C045 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const, C045 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 &, C045, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 &, C045, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 &, C045, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 &, C045, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 &, C045 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 &, C045 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 &, C045 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 &, C045 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const &, C045 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const &, C045 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const &, C045 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const &, C045 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C045 const &, C045 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046, C046 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046, C046 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046, C046 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const, C046, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const, C046 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const, C046 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const, C046 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const, C046 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const, C046 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const, C046 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 &, C046 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 &, C046 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 &, C046 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 &, C046 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 &, C046 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046 &, ret const >::value), 1);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes2_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes2_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,263 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_binary_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C046 const &, C046 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047, C047, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047, C047, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047, C047, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047, C047 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047, C047 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047, C047 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047, C047 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const, C047, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const, C047, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const, C047, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const, C047 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const, C047 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const, C047 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const, C047 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const, C047 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const, C047 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const, C047 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 &, C047, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 &, C047, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 &, C047 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 &, C047 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 &, C047 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 &, C047 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 &, C047 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 &, C047 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const &, C047, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const &, C047 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const &, C047 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const &, C047 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const &, C047 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const &, C047 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C047 const &, C047 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050, C050, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050, C050 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050, C050 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050, C050 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050, C050 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050, C050 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050, C050 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const, C050, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const, C050, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const, C050, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const, C050 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const, C050 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const, C050 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const, C050 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 &, C050, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 &, C050, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 &, C050, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 &, C050 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 &, C050 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 &, C050 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 &, C050 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 &, C050 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C050 const &, C050 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051, C051, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051, C051, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051, C051, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051, C051 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051, C051 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051, C051 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051, C051 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051, C051 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051, C051 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051, C051 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const, C051, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const, C051 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const, C051 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const, C051 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const, C051 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const, C051 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 &, C051, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 &, C051 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 &, C051 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 &, C051 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 &, C051 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 &, C051 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const &, C051, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const &, C051, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const &, C051 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const &, C051 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const &, C051 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C051 const &, C051 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072, C072 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072, C072 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072, C072 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072, C072 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072, C072 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072, C072 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072, C072 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072, C072 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const, C072, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const, C072, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const, C072, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const, C072 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const, C072 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const, C072 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const, C072 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 &, C072 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const &, C072, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const &, C072, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const &, C072 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const &, C072 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const &, C072 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const &, C072 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const &, C072 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C072 const &, C072 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073, C073, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073, C073, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073, C073, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073, C073 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073, C073 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073, C073 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073, C073 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073, C073 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073, C073 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const, C073, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const, C073 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const, C073 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const, C073 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const, C073 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 &, C073, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 &, C073, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 &, C073, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 &, C073 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 &, C073 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const &, C073, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const &, C073, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const &, C073, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const &, C073 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const &, C073 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const &, C073 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const &, C073 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const &, C073 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C073 const &, C073 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074, C074, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074, C074 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074, C074 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074, C074 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074, C074 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074, C074 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074, C074 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074, C074 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074, C074 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074, C074 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const, C074, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const, C074, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const, C074 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const, C074 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const, C074 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const, C074 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const, C074 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 &, C074, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 &, C074, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 &, C074, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 &, C074, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 &, C074 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 &, C074 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 &, C074 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 &, C074 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const &, C074, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const &, C074, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const &, C074 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const &, C074 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const &, C074 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const &, C074 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const &, C074 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const &, C074 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C074 const &, C074 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077, C077, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077, C077 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077, C077 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077, C077 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077, C077 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077, C077 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077, C077 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077, C077 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const, C077 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 &, C077, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 &, C077 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 &, C077 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 &, C077 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C077 const &, C077 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078, C078 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const, C078, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const, C078, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const, C078, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const, C078 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const, C078 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const, C078 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const, C078 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078 const, void >::value), 0);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes3_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes3_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,263 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_binary_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 &, C078 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const &, C078, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const &, C078 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const &, C078 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const &, C078 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const &, C078 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const &, C078 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const &, C078 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const &, C078 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C078 const &, C078 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081, C081 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const, C081 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 &, C081, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 &, C081, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 &, C081, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 &, C081, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 &, C081 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 &, C081 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 &, C081 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 &, C081 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 &, C081 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 &, C081 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const &, C081 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const &, C081 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const &, C081 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const &, C081 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C081 const &, C081 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082, C082, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082, C082, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082, C082, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082, C082 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082, C082 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082, C082 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082, C082 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const, C082, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const, C082 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const, C082 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const, C082 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const, C082 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const, C082 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const, C082 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const, C082 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 &, C082, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 &, C082, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 &, C082, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 &, C082 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 &, C082 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 &, C082 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 &, C082 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 &, C082 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 &, C082 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 &, C082 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const &, C082, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const &, C082 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const &, C082 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const &, C082 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const &, C082 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const &, C082 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const &, C082 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const &, C082 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const &, C082 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C082 const &, C082 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083, C083, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083, C083, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083, C083 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083, C083 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083, C083 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083, C083 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083, C083 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const, C083, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const, C083, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const, C083, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const, C083 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const, C083 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const, C083 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const, C083 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const, C083 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const, C083 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const, C083 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 &, C083, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 &, C083, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 &, C083, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 &, C083 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 &, C083 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 &, C083 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const &, C083, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const &, C083, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const &, C083, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const &, C083 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const &, C083 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const &, C083 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const &, C083 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C083 const &, C083 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086, C086, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086, C086 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086, C086 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086, C086 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086, C086 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086, C086 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086, C086 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086, C086 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const, C086, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const, C086, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const, C086 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const, C086 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const, C086 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const, C086 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const, C086 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const, C086 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const, C086 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 &, C086, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 &, C086 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 &, C086 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 &, C086 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 &, C086 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 &, C086 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const &, C086 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const &, C086 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const &, C086 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const &, C086 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const &, C086 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const &, C086 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const &, C086 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C086 const &, C086 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087, C087, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087, C087, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087, C087, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087, C087 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087, C087 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087, C087 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087, C087 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 const, C087, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 const, C087, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 const, C087 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 const, C087 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 &, C087, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 &, C087, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 &, C087, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 &, C087 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 &, C087 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 &, C087 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 const &, C087, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 const &, C087, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 const &, C087, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 const &, C087 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 const &, C087 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C087 const &, C087 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108, C108, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108, C108, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108, C108, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108, C108, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108, C108 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108, C108 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108, C108 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108, C108 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108, C108 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108, C108 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const, C108, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const, C108, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const, C108 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const, C108 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const, C108 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const, C108 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const, C108 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const, C108 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 &, C108, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 &, C108 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 &, C108 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 &, C108 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 &, C108 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 &, C108 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 &, C108 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 &, C108 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const &, C108, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const &, C108 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const &, C108 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const &, C108 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C108 const &, C108 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109, C109, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109, C109 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109, C109 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109, C109 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109, C109 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109, C109 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109, C109 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const, C109 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 &, C109, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 &, C109 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 &, C109 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 &, C109 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 &, C109 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 &, C109 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 &, C109 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const &, C109, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const &, C109 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const &, C109 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const &, C109 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const &, C109 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const &, C109 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const &, C109 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const &, C109 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C109 const &, C109 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110, C110, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110, C110, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110, C110, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110, C110 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110, C110 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110, C110 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110, ret >::value), 1);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes4_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes4_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,263 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_binary_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const, C110 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 &, C110, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 &, C110, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 &, C110 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 &, C110 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 &, C110 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 &, C110 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const &, C110, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const &, C110, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const &, C110 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const &, C110 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const &, C110 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const &, C110 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const &, C110 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const &, C110 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C110 const &, C110 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113, C113 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const, C113, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const, C113 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const, C113 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const, C113 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const, C113 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const, C113 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const, C113 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const, C113 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 &, C113, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 &, C113, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 &, C113 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 &, C113 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 &, C113 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 &, C113 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 &, C113 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const &, C113, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const &, C113 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const &, C113 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const &, C113 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const &, C113 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const &, C113 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const &, C113 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C113 const &, C113 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114, C114 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const, C114, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const, C114, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const, C114 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const, C114 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const, C114 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const, C114 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const, C114 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const, C114 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 &, C114, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 &, C114 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 &, C114 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 &, C114 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const &, C114, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const &, C114, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const &, C114 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const &, C114 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const &, C114 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C114 const &, C114 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117, C117, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117, C117, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117, C117 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117, C117 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117, C117 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117, C117 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const, C117, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const, C117, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const, C117 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const, C117 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const, C117 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const, C117 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const, C117 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 &, C117, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 &, C117 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 &, C117 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 &, C117 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 &, C117 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 &, C117 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const &, C117, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const &, C117 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const &, C117 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const &, C117 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const &, C117 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const &, C117 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const &, C117 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const &, C117 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const &, C117 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C117 const &, C117 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118, C118, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118, C118, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118, C118 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118, C118 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118, C118 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118, C118 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118, C118 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118, C118 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118, C118 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118, C118 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const, C118, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const, C118 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const, C118 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const, C118 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const, C118 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const, C118 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 &, C118, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 &, C118, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 &, C118, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 &, C118 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 &, C118 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 &, C118 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 &, C118 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 &, C118 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 &, C118 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const &, C118, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const &, C118, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const &, C118 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const &, C118 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const &, C118 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const &, C118 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const &, C118 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const &, C118 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const &, C118 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C118 const &, C118 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119, C119, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119, C119, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119, C119 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119, C119 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119, C119 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119, C119 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119, C119 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119, C119 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119, C119 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119, C119 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const, C119, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const, C119 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const, C119 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const, C119 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const, C119 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const, C119 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 &, C119, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 &, C119 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 &, C119 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 &, C119 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 &, C119 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 &, C119 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 &, C119 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 &, C119 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 &, C119 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 &, C119 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const &, C119, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const &, C119, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const &, C119 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const &, C119 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const &, C119 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const &, C119 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const &, C119 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const &, C119 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C119 const &, C119 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122, C122, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122, C122 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122, C122 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122, C122 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const, C122, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const, C122, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const, C122 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const, C122 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const, C122 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const, C122 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const, C122 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const, C122 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const, C122 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 &, C122 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 &, C122 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 &, C122 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const &, C122, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const &, C122, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const &, C122, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const &, C122 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const &, C122 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const &, C122 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const &, C122 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const &, C122 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C122 const &, C122 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123, C123, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123, C123, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123, C123 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123, C123 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123, C123 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const, C123 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const, C123 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const, C123 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const, C123 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const, C123 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const, C123 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const, C123 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 &, C123, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 &, C123 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 &, C123 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 &, C123 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 &, C123 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const &, C123, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const &, C123, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const &, C123 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const &, C123 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const &, C123 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const &, C123 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C123 const &, C123 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288, C288, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288, C288, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288, C288, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288, C288 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288, C288 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288, C288 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288, C288 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288, C288 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288, C288 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const, C288, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const, C288, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const, C288 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const, C288 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const, C288 &, ret const >::value), 0);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes5_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes5_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,263 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_binary_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const, C288 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const, C288 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 &, C288 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const &, C288, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const &, C288, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const &, C288, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const &, C288 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const &, C288 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const &, C288 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C288 const &, C288 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289, C289, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289, C289 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289, C289 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289, C289 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const, C289, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const, C289, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const, C289 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const, C289 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const, C289 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const, C289 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const, C289 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const, C289 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const, C289 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const, C289 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 &, C289, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 &, C289, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 &, C289 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 &, C289 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 &, C289 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 &, C289 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 &, C289 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 &, C289 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const &, C289, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const &, C289 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const &, C289 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C289 const &, C289 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290, C290, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290, C290, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290, C290 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290, C290 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290, C290 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290, C290 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const, C290, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const, C290, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const, C290 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const, C290 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const, C290 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const, C290 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const, C290 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 &, C290, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 &, C290, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 &, C290, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 &, C290 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 &, C290 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 &, C290 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 &, C290 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const &, C290, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const &, C290, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const &, C290 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const &, C290 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const &, C290 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const &, C290 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const &, C290 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const &, C290 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const &, C290 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C290 const &, C290 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293, C293, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293, C293, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293, C293, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293, C293 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293, C293 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293, C293 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293, C293 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293, C293 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293, C293 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const, C293, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const, C293 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const, C293 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const, C293 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const, C293 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const, C293 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const, C293 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 &, C293, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 &, C293, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 &, C293 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 &, C293 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 &, C293 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 &, C293 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 &, C293 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 &, C293 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 &, C293 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const &, C293 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const &, C293 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const &, C293 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const &, C293 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const &, C293 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const &, C293 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C293 const &, C293 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294, C294 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const, C294, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const, C294, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const, C294 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const, C294 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const, C294 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const, C294 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const, C294 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const, C294 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 &, C294, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 &, C294, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 &, C294, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 &, C294 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 &, C294 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 &, C294 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 &, C294 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 &, C294 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 &, C294 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 &, C294 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C294 const &, C294 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297, C297, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297, C297, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297, C297, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297, C297 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297, C297 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297, C297 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297, C297 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const, C297, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const, C297, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const, C297, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const, C297 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const, C297 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const, C297 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const, C297 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const, C297 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 &, C297, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 &, C297, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 &, C297, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 &, C297 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 &, C297 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 &, C297 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 &, C297 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 &, C297 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 &, C297 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const &, C297, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const &, C297, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const &, C297 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const &, C297 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const &, C297 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C297 const &, C297 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298, C298 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const, C298, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const, C298, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const, C298 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const, C298 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const, C298 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 &, C298, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 &, C298, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 &, C298 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 &, C298 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 &, C298 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const &, C298, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const &, C298, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const &, C298, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const &, C298, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const &, C298 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const &, C298 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const &, C298 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const &, C298 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C298 const &, C298 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299, C299, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299, C299, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299, C299 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299, C299 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299, C299 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299, C299 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299, C299 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const, C299 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const, C299 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const, C299 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const, C299 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 &, C299, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 &, C299 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 &, C299 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 &, C299 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 &, C299 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 &, C299 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C299 const &, C299 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302, C302 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302, C302 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302, C302 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302, C302 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302, C302 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302, C302 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302, C302 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302, C302 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302, ret const >::value), 0);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes6_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes6_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,263 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_binary_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const, C302 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 &, C302, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 &, C302 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 &, C302 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 &, C302 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 &, C302 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const &, C302, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const &, C302, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const &, C302 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const &, C302 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const &, C302 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const &, C302 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const &, C302 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const &, C302 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C302 const &, C302 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303, C303, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303, C303, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303, C303 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303, C303 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303, C303 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303, C303 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303, C303 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303, C303 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303, C303 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303, C303 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const, C303, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const, C303, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const, C303, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const, C303 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const, C303 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const, C303 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const, C303 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const, C303 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const, C303 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 &, C303, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 &, C303, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 &, C303 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 &, C303 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 &, C303 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 &, C303 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 &, C303 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 &, C303 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 &, C303 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C303 const &, C303 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324, C324, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324, C324, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324, C324, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324, C324 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324, C324 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324, C324 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324, C324 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324, C324 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324, C324 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const, C324, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const, C324, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const, C324 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const, C324 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const, C324 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const, C324 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const, C324 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const, C324 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const, C324 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 &, C324, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 &, C324, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 &, C324 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 &, C324 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 &, C324 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 &, C324 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 &, C324 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 &, C324 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const &, C324, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const &, C324, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const &, C324, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const &, C324 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const &, C324 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const &, C324 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const &, C324 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const &, C324 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C324 const &, C324 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325, C325, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325, C325 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325, C325 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325, C325 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const, C325, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const, C325, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const, C325 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const, C325 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const, C325 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const, C325 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const, C325 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const, C325 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const, C325 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const, C325 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 &, C325, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 &, C325 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 &, C325 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 &, C325 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 &, C325 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const &, C325, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const &, C325, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const &, C325, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const &, C325 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const &, C325 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const &, C325 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C325 const &, C325 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326, C326, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326, C326, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326, C326 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326, C326 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326, C326 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326, C326 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326, C326 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const, C326, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const, C326, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const, C326 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const, C326 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const, C326 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const, C326 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const, C326 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const, C326 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const, C326 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 &, C326, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 &, C326, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 &, C326 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 &, C326 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 &, C326 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 &, C326 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 &, C326 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 &, C326 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 &, C326 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 &, C326 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const &, C326, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const &, C326 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const &, C326 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const &, C326 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C326 const &, C326 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329, C329, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329, C329, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329, C329 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329, C329 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329, C329 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329, C329 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329, C329 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329, C329 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329, C329 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329, C329 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 const, C329, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 const, C329, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 const, C329 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 const, C329 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 const, C329 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 const, C329 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 &, C329, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 &, C329, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 &, C329 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 &, C329 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 &, C329 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 &, C329 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 &, C329 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 &, C329 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 &, C329 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 const &, C329 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 const &, C329 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C329 const &, C329 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330, C330, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330, C330, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330, C330, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330, C330 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330, C330 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330, C330 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330, C330 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330, C330 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330, C330 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330, C330 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 const, C330, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 const, C330, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 const, C330 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 const, C330 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 const, C330 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 const, C330 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 &, C330, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 &, C330, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 &, C330 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 &, C330 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 &, C330 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 &, C330 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 &, C330 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 &, C330 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 &, C330 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 &, C330 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 const &, C330 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 const &, C330 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C330 const &, C330 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333, C333, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333, C333, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333, C333, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333, C333 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333, C333 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333, C333 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333, C333 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333, C333 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const, C333 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const, C333 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const, C333 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const, C333 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const, C333 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const, C333 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 &, C333, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 &, C333, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 &, C333, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 &, C333 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 &, C333 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 &, C333 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 &, C333 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const &, C333, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const &, C333, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const &, C333 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const &, C333 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const &, C333 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const &, C333 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const &, C333 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C333 const &, C333 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334, C334, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334, C334 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334, C334 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334, C334 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334, C334 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334, C334 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334, C334 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334, C334 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const, C334, ret const >::value), 0);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes7_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes7_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,263 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_binary_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const, C334 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const, C334 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const, C334 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const, C334 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const, C334 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 &, C334 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const &, C334, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const &, C334, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const &, C334, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const &, C334, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const &, C334 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const &, C334 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const &, C334 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C334 const &, C334 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335, C335, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335, C335 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335, C335 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335, C335 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335, C335 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const, C335 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 &, C335, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 &, C335, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 &, C335, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 &, C335 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 &, C335 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 &, C335 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 &, C335 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 &, C335 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 &, C335 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C335 const &, C335 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338, C338, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338, C338, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338, C338, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338, C338 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338, C338 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338, C338 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338, C338 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const, C338, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const, C338, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const, C338, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const, C338 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const, C338 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const, C338 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const, C338 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const, C338 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const, C338 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 &, C338, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 &, C338 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 &, C338 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 &, C338 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 &, C338 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 &, C338 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const &, C338, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const &, C338 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const &, C338 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const &, C338 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const &, C338 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const &, C338 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C338 const &, C338 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339, C339, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339, C339 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339, C339 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339, C339 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339, C339 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339, C339 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339, C339 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const, C339, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const, C339 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const, C339 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const, C339 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const, C339 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const, C339 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const, C339 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const, C339 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const, C339 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const, C339 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 &, C339, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 &, C339, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 &, C339 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 &, C339 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 &, C339 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 &, C339 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 &, C339 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 &, C339 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 &, C339 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const &, C339, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const &, C339, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const &, C339 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const &, C339 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const &, C339 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const &, C339 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const &, C339 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C339 const &, C339 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360, C360, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360, C360 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360, C360 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360, C360 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360, C360 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const, C360, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const, C360 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const, C360 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const, C360 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 &, C360, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 &, C360 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 &, C360 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 &, C360 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 &, C360 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 &, C360 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 &, C360 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 &, C360 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const &, C360, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const &, C360, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const &, C360 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const &, C360 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const &, C360 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const &, C360 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C360 const &, C360 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361, C361, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361, C361, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361, C361 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361, C361 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361, C361 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361, C361 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const, C361, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const, C361, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const, C361 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const, C361 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const, C361 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const, C361 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const, C361 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const, C361 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 &, C361, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 &, C361, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 &, C361 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 &, C361 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 &, C361 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 &, C361 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 &, C361 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 &, C361 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 &, C361 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C361 const &, C361 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362, C362, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362, C362, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362, C362 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362, C362 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362, C362 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362, C362 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362, C362 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362, C362 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const, C362, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const, C362, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const, C362, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const, C362 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const, C362 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const, C362 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const, C362 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const, C362 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const, C362 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 &, C362 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 &, C362 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 &, C362 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 &, C362 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 &, C362 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 &, C362 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const &, C362, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const &, C362, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const &, C362 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const &, C362 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const &, C362 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const &, C362 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const &, C362 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C362 const &, C362 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365, C365, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365, C365, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365, C365 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365, C365 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365, C365 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365, C365 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const, C365, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const, C365, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const, C365, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const, C365 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const, C365 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const, C365 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const, C365 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const, C365 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const, C365 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 &, C365, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 &, C365, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 &, C365, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 &, C365 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 &, C365 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 &, C365 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 &, C365 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const &, C365 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const &, C365 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const &, C365 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C365 const &, C365 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366, C366, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366, C366, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366, C366, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366, C366 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366, C366 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366, C366 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366, C366 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const, C366, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const, C366, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const, C366, ret const & >::value), 1);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes8_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes8_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,263 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_binary_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const, C366 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const, C366 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const, C366 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const, C366 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const, C366 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 &, C366, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 &, C366, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 &, C366, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 &, C366, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 &, C366 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 &, C366 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 &, C366 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 &, C366 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 &, C366 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 &, C366 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const &, C366, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const &, C366, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const &, C366, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const &, C366 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const &, C366 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const &, C366 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const &, C366 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const &, C366 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const &, C366 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C366 const &, C366 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369, C369, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369, C369, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369, C369, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369, C369, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369, C369 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369, C369 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369, C369 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369, C369 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const, C369, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const, C369 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const, C369 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const, C369 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const, C369 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const, C369 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const, C369 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 &, C369, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 &, C369, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 &, C369, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 &, C369 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 &, C369 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 &, C369 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 &, C369 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const &, C369, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const &, C369, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const &, C369, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const &, C369 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const &, C369 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const &, C369 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const &, C369 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C369 const &, C369 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370, C370, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370, C370 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370, C370 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370, C370 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370, C370 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370, C370 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370, C370 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370, C370 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const, C370 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const, C370 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const, C370 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const, C370 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const, C370 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const, C370 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 &, C370, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 &, C370 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 &, C370 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 &, C370 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 &, C370 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 &, C370 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 &, C370 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 &, C370 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const &, C370, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const &, C370, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const &, C370, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const &, C370 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const &, C370 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const &, C370 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const &, C370 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const &, C370 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C370 const &, C370 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371, C371, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371, C371 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371, C371 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371, C371 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371, C371 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371, C371 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371, C371 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371, C371 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371, C371 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const, C371 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const, C371 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const, C371 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 &, C371 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const &, C371, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const &, C371, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const &, C371 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const &, C371 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const &, C371 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const &, C371 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const &, C371 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const &, C371 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C371 const &, C371 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374, C374, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374, C374, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374, C374 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374, C374 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374, C374 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374, C374 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374, C374 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374, C374 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374, C374 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const, C374 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 &, C374, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 &, C374 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 &, C374 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 &, C374 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 &, C374 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 &, C374 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 &, C374 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const &, C374, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const &, C374, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const &, C374 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C374 const &, C374 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375, C375, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375, C375, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375, C375, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375, C375 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375, C375 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375, C375 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375, C375 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375, C375 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375, C375 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const, C375, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const, C375, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const, C375, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const, C375, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const, C375 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const, C375 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const, C375 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const, C375 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const, C375 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 &, C375 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const &, C375, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const &, C375 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const &, C375 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const &, C375 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const &, C375 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C375 const &, C375 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396, C396 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const, C396 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 &, C396, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 &, C396 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 &, C396 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 &, C396 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 &, C396 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 &, C396 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 &, C396 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 &, C396 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 &, C396 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 &, C396 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const &, C396, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const &, C396, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const &, C396, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const &, C396 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C396 const &, C396 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397, C397, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397, C397 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397, C397 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397, C397 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397, C397 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397, C397 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const, C397, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const, C397, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const, C397 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const, C397 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const, C397 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const, C397 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const, C397 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const, C397 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const, C397 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 &, C397, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 &, C397, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 &, C397 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 &, C397 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 &, C397 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 &, C397 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 &, C397 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 &, C397 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const &, C397, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const &, C397, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const &, C397 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const &, C397 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const &, C397 const, ret const & >::value), 0);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_classes9_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_classes9_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,263 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_binary_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const &, C397 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const &, C397 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const &, C397 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C397 const &, C397 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398, C398, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398, C398, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398, C398, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398, C398, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398, C398 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398, C398 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398, C398 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398, C398 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398, C398 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const, C398, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const, C398, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const, C398 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const, C398 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const, C398 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const, C398 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 &, C398 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const &, C398, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const &, C398, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const &, C398 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const &, C398 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const &, C398 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const &, C398 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C398 const &, C398 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401, C401 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401, C401 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401, C401 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401, C401 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401, C401 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401, C401 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const, C401 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 &, C401, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 &, C401, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 &, C401 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 &, C401 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 &, C401 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const &, C401, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const &, C401, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const &, C401 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C401 const &, C401 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402, C402, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402, C402 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402, C402 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402, C402 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402, C402 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402, C402 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402, C402 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const, C402 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 &, C402, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 &, C402, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 &, C402, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 &, C402 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 &, C402 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 &, C402 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 &, C402 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 &, C402 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 &, C402 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const &, C402, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const &, C402, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const &, C402 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const &, C402 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const &, C402 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C402 const &, C402 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405, C405, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405, C405, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405, C405 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405, C405 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405, C405 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405, C405 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const, C405 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 &, C405, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 &, C405, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 &, C405, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 &, C405, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 &, C405 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 &, C405 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 &, C405 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 &, C405 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 &, C405 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const &, C405, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const &, C405, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const &, C405, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const &, C405 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const &, C405 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const &, C405 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const &, C405 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const &, C405 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const &, C405 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C405 const &, C405 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406, C406, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406, C406, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406, C406 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406, C406 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406, C406 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406, C406 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 const, C406, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 const, C406, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 const, C406 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 const, C406 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 const, C406 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 const, C406 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 const, C406 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 &, C406, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 &, C406, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 &, C406 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 &, C406 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 &, C406 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 &, C406 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 const &, C406, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 const &, C406 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C406 const &, C406 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407, C407, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407, C407, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407, C407, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407, C407 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407, C407 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407, C407 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407, C407 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407, C407 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407, C407 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407, C407 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const, C407 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 &, C407, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 &, C407, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 &, C407 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 &, C407 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 &, C407 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 &, C407 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 &, C407 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 &, C407 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const &, C407, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const &, C407, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const &, C407, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const &, C407 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const &, C407 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const &, C407 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const &, C407 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const &, C407 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C407 const &, C407 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410, C410, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410, C410 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410, C410 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410, C410 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410, C410 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410, C410 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const, C410, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const, C410, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const, C410 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const, C410 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const, C410 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const, C410 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const, C410 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const, C410 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 &, C410, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 &, C410 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 &, C410 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 &, C410 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 &, C410 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 &, C410 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const &, C410, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const &, C410, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const &, C410 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const &, C410 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const &, C410 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const &, C410 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C410 const &, C410 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411, C411, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411, C411 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411, C411 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411, C411 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const, C411, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const, C411, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const, C411 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const, C411 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const, C411 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const, C411 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const, C411 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const, C411 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 &, C411, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 &, C411, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 &, C411, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 &, C411 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 &, C411 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 &, C411 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 &, C411 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 &, C411 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const &, C411, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const &, C411 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const &, C411 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const &, C411 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const &, C411 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const &, C411 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const &, C411 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_plus< C411 const &, C411 const &, ret & >::value), 0);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_binary_operators.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_binary_operators.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,145 @@
+// (C) Copyright Frederic Bron 2009-2011.
+// 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)
+
+#ifndef TT_HAS_BINARY_OPERATORS_HPP
+#define TT_HAS_BINARY_OPERATORS_HPP
+
+// test with one template parameter
+#define TEST_T(TYPE,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::boost::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((::boost::BOOST_TT_TRAIT_NAME<TYPE,TYPE,RET>::value), RESULT)
+// test with two template parameters
+#define TEST_TT(TYPE1,TYPE2,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::boost::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((::boost::BOOST_TT_TRAIT_NAME<TYPE1,TYPE2,RET>::value), RESULT)
+
+namespace {
+
+struct without { };
+
+struct ret { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (const internal&) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, const external&);
+
+struct comma1_ret { };
+struct ret_with_comma1 { comma1_ret operator,(int); };
+
+struct internal_comma1 { ret_with_comma1 operator BOOST_TT_TRAIT_OP (const internal_comma1&) const; };
+
+struct external_comma1 { };
+ret_with_comma1 operator BOOST_TT_TRAIT_OP (const external_comma1&, const external_comma1&);
+
+struct ret_with_comma2 { void operator,(int); };
+
+struct internal_comma2 { ret_with_comma2 operator BOOST_TT_TRAIT_OP (const internal_comma2&) const; };
+
+struct external_comma2 { };
+ret_with_comma2 operator BOOST_TT_TRAIT_OP (const external_comma2&, const external_comma2&);
+
+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 ret1 { };
+struct convertible_to_ret1 { operator ret1 () const; };
+struct returns_convertible_to_ret1 { convertible_to_ret1 operator BOOST_TT_TRAIT_OP (const returns_convertible_to_ret1&); };
+
+struct convertible_to_ret2 { };
+struct ret2 { ret2(const convertible_to_ret2); };
+struct returns_convertible_to_ret2 { convertible_to_ret2 operator BOOST_TT_TRAIT_OP (const returns_convertible_to_ret2&); };
+
+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 { };
+
+struct C { };
+struct D { };
+bool operator BOOST_TT_TRAIT_OP (const C&, void*) { return true; }
+bool operator BOOST_TT_TRAIT_OP (void*, const D&) { return true; }
+bool operator BOOST_TT_TRAIT_OP (const C&, const D&) { return true; }
+
+//class internal_private { ret operator BOOST_TT_TRAIT_OP (const internal_private&) const; };
+
+void common() {
+ TEST_T(void, false);
+ TEST_TT(void, void, false);
+ TEST_TTR(void, void, void, false);
+ TEST_TTR(void, void, int, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+ TEST_T(internal_comma1, true);
+ TEST_T(external_comma1, true);
+ TEST_T(internal_comma2, true);
+ TEST_T(external_comma2, true);
+ TEST_T(returns_int, true);
+ TEST_T(returns_void, true);
+ TEST_T(returns_void_star, true);
+ TEST_T(returns_double, true);
+ TEST_T(returns_convertible_to_ret1, true);
+ TEST_T(returns_convertible_to_ret2, true);
+ TEST_T(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, void, false);
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, void, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(internal_comma1, void, false);
+ TEST_TR(internal_comma1, bool, false);
+ TEST_TR(internal_comma1, ret_with_comma1, true);
+ TEST_TR(internal_comma2, void, false);
+ TEST_TR(internal_comma2, bool, false);
+ TEST_TR(internal_comma2, ret_with_comma2, true);
+ TEST_TR(external, void, false);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, void, false);
+ 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, void, false);
+ TEST_TR(returns_double, bool, true);
+ TEST_TR(returns_double, double, true);
+ TEST_TR(returns_convertible_to_ret1, void, false);
+ TEST_TR(returns_convertible_to_ret1, ret1, true);
+ TEST_TR(returns_convertible_to_ret2, ret2, true);
+ TEST_TR(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+// compile time error
+// TEST_T(internal_private, false);
+}
+
+}
+
+#endif

Added: sandbox/type_traits/libs/type_traits/test/has_bit_and_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_bit_and_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_bit_and_assign.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_bit_and_assign
+#define BOOST_TT_TRAIT_OP &=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_bit_and_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_bit_and_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_bit_and.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_bit_and
+#define BOOST_TT_TRAIT_OP &
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_bit_or_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_bit_or_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_bit_or_assign.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_bit_or_assign
+#define BOOST_TT_TRAIT_OP |=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_bit_or_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_bit_or_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_bit_or.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_bit_or
+#define BOOST_TT_TRAIT_OP |
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_bit_xor_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_bit_xor_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_bit_xor_assign.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_bit_xor_assign
+#define BOOST_TT_TRAIT_OP ^=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_bit_xor_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_bit_xor_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_bit_xor.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_bit_xor
+#define BOOST_TT_TRAIT_OP ^
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_complement_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_complement_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_complement.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_complement
+#define BOOST_TT_TRAIT_OP ~
+
+
+#include "has_prefix_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_dereference_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_dereference_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_dereference.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_dereference
+#define BOOST_TT_TRAIT_OP *
+
+
+#include "has_prefix_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool*, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double*, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double*, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double* const &, int const & >::value), 1);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_divides_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_divides_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_divides_assign.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_divides_assign
+#define BOOST_TT_TRAIT_OP /=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_divides_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_divides_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_divides.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_divides
+#define BOOST_TT_TRAIT_OP /
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_equal_to_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_equal_to_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_equal_to.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_equal_to
+#define BOOST_TT_TRAIT_OP ==
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 1);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_greater_equal_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_greater_equal_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_greater_equal.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_greater_equal
+#define BOOST_TT_TRAIT_OP >=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 1);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_greater_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_greater_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_greater.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_greater
+#define BOOST_TT_TRAIT_OP >
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 1);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_left_shift_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_left_shift_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_left_shift_assign.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_left_shift_assign
+#define BOOST_TT_TRAIT_OP <<=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_left_shift_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_left_shift_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,250 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_left_shift.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_left_shift
+#define BOOST_TT_TRAIT_OP <<
+
+#include <ostream>
+#include <string>
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, long, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, unsigned long, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, bool, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, short, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, unsigned short, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, int, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, unsigned int, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, double, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, float, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, void*, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, char, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, signed char, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, unsigned char, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, const char*, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, char*, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, const signed char*, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, signed char*, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, const unsigned char*, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, unsigned char*, std::ostream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, std::string, std::ostream& >::value), 1);
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_less_equal_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_less_equal_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_less_equal.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_less_equal
+#define BOOST_TT_TRAIT_OP <=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 1);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_less_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_less_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_less.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_less
+#define BOOST_TT_TRAIT_OP <
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 1);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_logical_and_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_logical_and_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_logical_and.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_logical_and
+#define BOOST_TT_TRAIT_OP &&
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 1);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_logical_not_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_logical_not_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,231 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_logical_not.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_logical_not
+#define BOOST_TT_TRAIT_OP !
+
+#include <iostream>
+
+#include "has_prefix_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const & >::value), 1);
+
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::ostream, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, bool >::value), 1);
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_logical_or_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_logical_or_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_logical_or.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_logical_or
+#define BOOST_TT_TRAIT_OP ||
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 1);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_minus_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_minus_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_minus_assign.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_minus_assign
+#define BOOST_TT_TRAIT_OP -=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_minus_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_minus_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_minus.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_minus
+#define BOOST_TT_TRAIT_OP -
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const >::value), 1);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_modulus_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_modulus_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_modulus_assign.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_modulus_assign
+#define BOOST_TT_TRAIT_OP %=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_modulus_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_modulus_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_modulus.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_modulus
+#define BOOST_TT_TRAIT_OP %
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_multiplies_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_multiplies_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_multiplies_assign.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_multiplies_assign
+#define BOOST_TT_TRAIT_OP *=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_multiplies_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_multiplies_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_multiplies.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_multiplies
+#define BOOST_TT_TRAIT_OP *
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_negate_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_negate_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_negate.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_negate
+#define BOOST_TT_TRAIT_OP -
+
+
+#include "has_prefix_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_not_equal_to_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_not_equal_to_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_not_equal_to.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_not_equal_to
+#define BOOST_TT_TRAIT_OP !=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 1);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/has_nothrow_assign_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_nothrow_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,208 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/has_nothrow_assign.hpp>
-#endif
-
-TT_TEST_BEGIN(has_nothrow_assign)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<bool>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<bool const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<bool volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<bool const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<signed char>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<signed char const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<signed char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<signed char const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<char>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned char const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<char const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned char const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<char const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<short>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned short const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<short const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned short volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<short volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned short const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<short const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned int const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned int volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned int const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<long>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned long const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<long const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned long volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<long volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned long const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<long const volatile>::value, false);
-#endif
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign< ::boost::long_long_type>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign< ::boost::ulong_long_type const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign< ::boost::long_long_type const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign< ::boost::ulong_long_type volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign< ::boost::long_long_type volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign< ::boost::ulong_long_type const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign< ::boost::long_long_type const volatile>::value, false);
-#endif
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int8>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int8 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int8 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int8 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int8 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int8 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int8 const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int16>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int16 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int16 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int16 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int16 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int16 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int16 const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int32>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int32 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int32 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int32 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int32 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int32 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int32 const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int64>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int64 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int64 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int64 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int64 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<unsigned __int64 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<__int64 const volatile>::value, false);
-#endif
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<float>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<float const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<float volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<float const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<double>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<double const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<double volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<double const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<long double>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<long double const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<long double volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<long double const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<void*>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int*const>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<f2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<f3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<enum_UDT>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int[3][2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<int[2][4][5][6][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<void>::value, true);
-// cases we would like to succeed but can't implement in the language:
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<empty_POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<empty_POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<nothrow_assign_UDT>::value, true, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<nothrow_copy_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<nothrow_construct_UDT>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_assign<test_abc1>::value, false);
-
-TT_TEST_END
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/has_nothrow_constr_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_nothrow_constr_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,166 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/has_nothrow_constructor.hpp>
-#endif
-
-TT_TEST_BEGIN(has_nothrow_constructor)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<bool>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<bool const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<bool volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<bool const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<signed char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<signed char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<signed char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<char const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned short const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<short const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned int const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned long const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<long const volatile>::value, true);
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor< ::boost::long_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor< ::boost::ulong_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor< ::boost::long_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor< ::boost::ulong_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor< ::boost::long_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor< ::boost::ulong_long_type const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor< ::boost::long_long_type const volatile>::value, true);
-
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int8 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int8 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int16 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int16 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int32 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int32 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<unsigned __int64 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<__int64 const volatile>::value, true);
-
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<float const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<float volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<float const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<double const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<long double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<long double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<long double const volatile>::value, true);
-
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<void*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int*const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<f2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<f3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<enum_UDT>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int[3][2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<int[2][4][5][6][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<void>::value, true);
-// cases we would like to succeed but can't implement in the language:
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<empty_POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<empty_POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<nothrow_construct_UDT>::value, true, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<nothrow_assign_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<nothrow_copy_UDT>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_constructor<test_abc1>::value, false);
-
-TT_TEST_END
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/has_nothrow_copy_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_nothrow_copy_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,204 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/has_nothrow_copy.hpp>
-#endif
-
-TT_TEST_BEGIN(has_nothrow_copy)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<bool>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<bool const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<bool volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<bool const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<signed char const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<signed char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<signed char const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<char const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned char const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<char const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<short const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned short volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<short volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned short const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<short const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned int volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned int const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<long const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned long volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<long volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned long const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<long const volatile>::value, false);
-#endif
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy< ::boost::long_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy< ::boost::ulong_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy< ::boost::long_long_type const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy< ::boost::ulong_long_type volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy< ::boost::long_long_type volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy< ::boost::ulong_long_type const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy< ::boost::long_long_type const volatile>::value, false);
-#endif
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int8 const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int8 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int8 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int8 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int8 const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int16 const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int16 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int16 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int16 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int16 const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int32 const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int32 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int32 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int32 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int32 const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int64 const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int64 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int64 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<unsigned __int64 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<__int64 const volatile>::value, false);
-#endif
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<float const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<float volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<float const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<double const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<double volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<double const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<long double const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<long double volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<long double const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<void*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int*const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<f2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<f3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<enum_UDT>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int[3][2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<int[2][4][5][6][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<void>::value, true);
-// cases we would like to succeed but can't implement in the language:
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<empty_POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<empty_POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<nothrow_copy_UDT>::value, true, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<nothrow_assign_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<nothrow_construct_UDT>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_nothrow_copy<test_abc1>::value, false);
-
-TT_TEST_END
-
-
-

Added: sandbox/type_traits/libs/type_traits/test/has_plus_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_plus_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_plus_assign.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_plus_assign
+#define BOOST_TT_TRAIT_OP +=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_plus_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_plus_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_plus.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_plus
+#define BOOST_TT_TRAIT_OP +
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_post_decrement_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_post_decrement_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_post_decrement.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_post_decrement
+#define BOOST_TT_TRAIT_OP --
+
+
+#include "has_postfix_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_post_increment_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_post_increment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_post_increment.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_post_increment
+#define BOOST_TT_TRAIT_OP ++
+
+
+#include "has_postfix_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_postfix_classes.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_classes.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,72 @@
+// (C) Copyright Frederic Bron 2009-2011.
+// 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)
+
+#ifndef TT_HAS_POSTFIX_CLASSES_HPP
+#define TT_HAS_POSTFIX_CLASSES_HPP
+
+struct ret { };
+ret ret_val;
+
+class C000 { C000(); public: C000(int) { } };
+void operator++(C000, int) { }
+
+class C001 { C001(); public: C001(int) { } };
+ret operator++(C001, int) { return ret_val; }
+
+class C002 { C002(); public: C002(int) { } };
+ret const operator++(C002, int) { return ret_val; }
+
+class C005 { C005(); public: C005(int) { } };
+ret & operator++(C005, int) { return ret_val; }
+
+class C006 { C006(); public: C006(int) { } };
+ret const & operator++(C006, int) { return ret_val; }
+
+class C009 { C009(); public: C009(int) { } };
+void operator++(C009 const, int) { }
+
+class C010 { C010(); public: C010(int) { } };
+ret operator++(C010 const, int) { return ret_val; }
+
+class C011 { C011(); public: C011(int) { } };
+ret const operator++(C011 const, int) { return ret_val; }
+
+class C014 { C014(); public: C014(int) { } };
+ret & operator++(C014 const, int) { return ret_val; }
+
+class C015 { C015(); public: C015(int) { } };
+ret const & operator++(C015 const, int) { return ret_val; }
+
+class C036 { C036(); public: C036(int) { } };
+void operator++(C036 &, int) { }
+
+class C037 { C037(); public: C037(int) { } };
+ret operator++(C037 &, int) { return ret_val; }
+
+class C038 { C038(); public: C038(int) { } };
+ret const operator++(C038 &, int) { return ret_val; }
+
+class C041 { C041(); public: C041(int) { } };
+ret & operator++(C041 &, int) { return ret_val; }
+
+class C042 { C042(); public: C042(int) { } };
+ret const & operator++(C042 &, int) { return ret_val; }
+
+class C045 { C045(); public: C045(int) { } };
+void operator++(C045 const &, int) { }
+
+class C046 { C046(); public: C046(int) { } };
+ret operator++(C046 const &, int) { return ret_val; }
+
+class C047 { C047(); public: C047(int) { } };
+ret const operator++(C047 const &, int) { return ret_val; }
+
+class C050 { C050(); public: C050(int) { } };
+ret & operator++(C050 const &, int) { return ret_val; }
+
+class C051 { C051(); public: C051(int) { } };
+ret const & operator++(C051 const &, int) { return ret_val; }
+
+#endif

Added: sandbox/type_traits/libs/type_traits/test/has_postfix_classes0_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_classes0_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,113 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_postfix_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C000 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C001 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C002 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C005 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C006 const &, ret const & >::value), 1);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_postfix_classes1_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_classes1_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,113 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_postfix_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C009 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C010 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C011 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C014 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C015 const &, ret const & >::value), 1);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_postfix_classes2_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_classes2_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,113 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_postfix_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C036 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C037 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C038 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C041 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C042 const &, ret const & >::value), 0);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_postfix_classes3_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_classes3_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,113 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_postfix_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C045 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C046 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C047 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C050 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_post_increment< C051 const &, ret const & >::value), 1);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_postfix_operators.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_postfix_operators.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,131 @@
+// (C) Copyright Frederic Bron 2009-2011.
+// 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)
+
+#ifndef TT_HAS_POSTFIX_OPERATORS_HPP
+#define TT_HAS_POSTFIX_OPERATORS_HPP
+
+// test with one template parameter
+#define TEST_T(TYPE,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::boost::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((::boost::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
+
+namespace {
+
+struct without { };
+
+struct ret { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP (int) const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&, int);
+
+struct comma1_ret { };
+struct ret_with_comma1 { comma1_ret operator,(int); };
+
+struct internal_comma1 { ret_with_comma1 operator BOOST_TT_TRAIT_OP (int) const; };
+
+struct external_comma1 { };
+ret_with_comma1 operator BOOST_TT_TRAIT_OP (const external_comma1&, int);
+
+struct ret_with_comma2 { void operator,(int); };
+
+struct internal_comma2 { ret_with_comma2 operator BOOST_TT_TRAIT_OP (int) const; };
+
+struct external_comma2 { };
+ret_with_comma2 operator BOOST_TT_TRAIT_OP (const external_comma2&, int);
+
+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 ret1 { };
+struct convertible_to_ret1 { operator ret1 () const; };
+struct returns_convertible_to_ret1 { convertible_to_ret1 operator BOOST_TT_TRAIT_OP (int); };
+
+struct convertible_to_ret2 { };
+struct ret2 { ret2(const convertible_to_ret2); };
+struct returns_convertible_to_ret2 { convertible_to_ret2 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 { };
+
+//class internal_private { ret operator BOOST_TT_TRAIT_OP (int) const; };
+
+void common() {
+ TEST_T(void, false);
+ TEST_TR(void, void, false);
+ TEST_TR(void, int, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+ TEST_T(internal_comma1, true);
+ TEST_T(external_comma1, true);
+ TEST_T(internal_comma2, true);
+ TEST_T(external_comma2, true);
+ TEST_T(returns_int, true);
+ TEST_T(returns_void, true);
+ TEST_T(returns_void_star, true);
+ TEST_T(returns_double, true);
+ TEST_T(returns_convertible_to_ret1, true);
+ TEST_T(returns_convertible_to_ret2, true);
+ TEST_T(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, void, false);
+ TEST_TR(without, bool, false);
+ TEST_TR(internal, void, false);
+ TEST_TR(internal, bool, false);
+ TEST_TR(internal, ret, true);
+ TEST_TR(internal_comma1, void, false);
+ TEST_TR(internal_comma1, bool, false);
+ TEST_TR(internal_comma1, ret_with_comma1, true);
+ TEST_TR(internal_comma2, void, false);
+ TEST_TR(internal_comma2, bool, false);
+ TEST_TR(internal_comma2, ret_with_comma2, true);
+ TEST_TR(external, void, false);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, void, false);
+ 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, void, false);
+ TEST_TR(returns_double, bool, true);
+ TEST_TR(returns_double, double, true);
+ TEST_TR(returns_convertible_to_ret1, void, false);
+ TEST_TR(returns_convertible_to_ret1, ret1, true);
+ TEST_TR(returns_convertible_to_ret2, ret2, true);
+ TEST_TR(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+// compile time error
+// TEST_T(internal_private, false);
+}
+
+}
+
+#endif

Added: sandbox/type_traits/libs/type_traits/test/has_pre_decrement_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_pre_decrement_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_pre_decrement.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_pre_decrement
+#define BOOST_TT_TRAIT_OP --
+
+
+#include "has_prefix_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_pre_increment_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_pre_increment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_pre_increment.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_pre_increment
+#define BOOST_TT_TRAIT_OP ++
+
+
+#include "has_prefix_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_prefix_classes.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_classes.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,72 @@
+// (C) Copyright Frederic Bron 2009-2011.
+// 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)
+
+#ifndef TT_HAS_PREFIX_CLASSES_HPP
+#define TT_HAS_PREFIX_CLASSES_HPP
+
+struct ret { };
+ret ret_val;
+
+class C000 { C000(); public: C000(int) { } };
+void operator++(C000) { }
+
+class C001 { C001(); public: C001(int) { } };
+ret operator++(C001) { return ret_val; }
+
+class C002 { C002(); public: C002(int) { } };
+ret const operator++(C002) { return ret_val; }
+
+class C005 { C005(); public: C005(int) { } };
+ret & operator++(C005) { return ret_val; }
+
+class C006 { C006(); public: C006(int) { } };
+ret const & operator++(C006) { return ret_val; }
+
+class C009 { C009(); public: C009(int) { } };
+void operator++(C009 const) { }
+
+class C010 { C010(); public: C010(int) { } };
+ret operator++(C010 const) { return ret_val; }
+
+class C011 { C011(); public: C011(int) { } };
+ret const operator++(C011 const) { return ret_val; }
+
+class C014 { C014(); public: C014(int) { } };
+ret & operator++(C014 const) { return ret_val; }
+
+class C015 { C015(); public: C015(int) { } };
+ret const & operator++(C015 const) { return ret_val; }
+
+class C036 { C036(); public: C036(int) { } };
+void operator++(C036 &) { }
+
+class C037 { C037(); public: C037(int) { } };
+ret operator++(C037 &) { return ret_val; }
+
+class C038 { C038(); public: C038(int) { } };
+ret const operator++(C038 &) { return ret_val; }
+
+class C041 { C041(); public: C041(int) { } };
+ret & operator++(C041 &) { return ret_val; }
+
+class C042 { C042(); public: C042(int) { } };
+ret const & operator++(C042 &) { return ret_val; }
+
+class C045 { C045(); public: C045(int) { } };
+void operator++(C045 const &) { }
+
+class C046 { C046(); public: C046(int) { } };
+ret operator++(C046 const &) { return ret_val; }
+
+class C047 { C047(); public: C047(int) { } };
+ret const operator++(C047 const &) { return ret_val; }
+
+class C050 { C050(); public: C050(int) { } };
+ret & operator++(C050 const &) { return ret_val; }
+
+class C051 { C051(); public: C051(int) { } };
+ret const & operator++(C051 const &) { return ret_val; }
+
+#endif

Added: sandbox/type_traits/libs/type_traits/test/has_prefix_classes0_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_classes0_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,113 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_prefix_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C000 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C001 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C002 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C005 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C006 const &, ret const & >::value), 1);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_prefix_classes1_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_classes1_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,113 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_prefix_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C009 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C010 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C011 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C014 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C015 const &, ret const & >::value), 1);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_prefix_classes2_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_classes2_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,113 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_prefix_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C036 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C037 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C038 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C041 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C042 const &, ret const & >::value), 0);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_prefix_classes3_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_classes3_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,113 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#include <boost/type_traits/has_operator.hpp>
+#include "has_prefix_classes.hpp"
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 const, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 const, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 const, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 const, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 const &, void >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 const &, ret >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 const &, ret const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C045 const &, ret const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C046 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C047 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 const, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 const &, ret & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C050 const &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 const, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 const, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 const, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 const, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 &, ret const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 const &, ret >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 const &, ret const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 const &, ret & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::has_pre_increment< C051 const &, ret const & >::value), 1);
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_prefix_operators.hpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_prefix_operators.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,128 @@
+// (C) Copyright Frederic Bron 2009-2011.
+// 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)
+
+#ifndef TT_HAS_PREFIX_OPERATORS_HPP
+#define TT_HAS_PREFIX_OPERATORS_HPP
+
+// test with one template parameter
+#define TEST_T(TYPE,RESULT) BOOST_CHECK_INTEGRAL_CONSTANT((::boost::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((::boost::BOOST_TT_TRAIT_NAME<TYPE,RET>::value), RESULT)
+
+namespace {
+
+struct without { };
+
+struct ret { };
+
+struct internal { ret operator BOOST_TT_TRAIT_OP () const; };
+
+struct external { };
+ret operator BOOST_TT_TRAIT_OP (const external&);
+
+struct comma1_ret { };
+struct ret_with_comma1 { comma1_ret operator,(int); };
+
+struct internal_comma1 { ret_with_comma1 operator BOOST_TT_TRAIT_OP () const; };
+
+struct external_comma1 { };
+ret_with_comma1 operator BOOST_TT_TRAIT_OP (const external_comma1&);
+
+struct ret_with_comma2 { void operator,(int); };
+
+struct internal_comma2 { ret_with_comma2 operator BOOST_TT_TRAIT_OP () const; };
+
+struct external_comma2 { };
+ret_with_comma2 operator BOOST_TT_TRAIT_OP (const external_comma2&);
+
+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 ret1 { };
+struct convertible_to_ret1 { operator ret1 () const; };
+struct returns_convertible_to_ret1 { convertible_to_ret1 operator BOOST_TT_TRAIT_OP (); };
+
+struct convertible_to_ret2 { };
+struct ret2 { ret2(const convertible_to_ret2); };
+struct returns_convertible_to_ret2 { convertible_to_ret2 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 { };
+
+//class internal_private { ret operator BOOST_TT_TRAIT_OP () const; };
+
+void common() {
+ TEST_T(void, false);
+ TEST_TR(void, void, false);
+ TEST_TR(void, int, false);
+
+ TEST_T(without, false);
+ TEST_T(internal, true);
+ TEST_T(external, true);
+ TEST_T(internal_comma1, true);
+ TEST_T(external_comma1, true);
+ TEST_T(internal_comma2, true);
+ TEST_T(external_comma2, true);
+ TEST_T(returns_int, true);
+ TEST_T(returns_void, true);
+ TEST_T(returns_void_star, true);
+ TEST_T(returns_double, true);
+ TEST_T(returns_convertible_to_ret1, true);
+ TEST_T(returns_convertible_to_ret2, true);
+ TEST_T(Base1, true);
+ TEST_T(Derived1, true);
+ TEST_T(Base2, false);
+ TEST_T(Derived2, true);
+
+ TEST_TR(without, void, false);
+ TEST_TR(without, bool, false);
+ TEST_TR(internal_comma1, void, false);
+ TEST_TR(internal_comma1, bool, false);
+ TEST_TR(internal_comma1, ret_with_comma1, true);
+ TEST_TR(internal_comma2, void, false);
+ TEST_TR(internal_comma2, bool, false);
+ TEST_TR(internal_comma2, ret_with_comma2, true);
+ TEST_TR(external, void, false);
+ TEST_TR(external, bool, false);
+ TEST_TR(external, ret, true);
+ TEST_TR(returns_int, void, false);
+ 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, void, false);
+ TEST_TR(returns_double, bool, true);
+ TEST_TR(returns_double, double, true);
+ TEST_TR(returns_convertible_to_ret1, void, false);
+ TEST_TR(returns_convertible_to_ret1, ret1, true);
+ TEST_TR(returns_convertible_to_ret2, ret2, true);
+ TEST_TR(Base1, bool, true);
+ TEST_TR(Derived1, bool, true);
+ TEST_TR(Base2, bool, false);
+ TEST_TR(Derived2, bool, true);
+// compile time error
+// TEST_T(internal_private, false);
+}
+
+}
+
+#endif

Added: sandbox/type_traits/libs/type_traits/test/has_right_shift_assign_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_right_shift_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_right_shift_assign.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_right_shift_assign
+#define BOOST_TT_TRAIT_OP >>=
+
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_right_shift_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_right_shift_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,247 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_right_shift.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_right_shift
+#define BOOST_TT_TRAIT_OP >>
+
+#include <istream>
+#include <string>
+
+#include "has_binary_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, double const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, double, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, double const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, double const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, double &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, double const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int* const &, int const & >::value), 0);
+
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, bool&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, short&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, unsigned short&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, int&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, unsigned int&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, long&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, unsigned long&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, float&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, double&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, void*&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, char&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, signed char&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, unsigned char&, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, char*, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, signed char*, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, unsigned char*, std::istream& >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< std::istream, std::string&, std::istream& >::value), 1);
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/has_trivial_assign_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_trivial_assign_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,206 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/has_trivial_assign.hpp>
-#endif
-
-TT_TEST_BEGIN(has_trivial_assign)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<bool>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<bool const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<bool volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<bool const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<signed char>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<signed char const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<signed char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<signed char const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<char>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned char const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<char const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned char const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<char const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<short>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned short const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<short const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned short volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<short volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned short const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<short const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned int const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned int volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned int const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<long>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned long const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<long const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned long volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<long volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned long const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<long const volatile>::value, false);
-#endif
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign< ::boost::long_long_type>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign< ::boost::ulong_long_type const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign< ::boost::long_long_type const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign< ::boost::ulong_long_type volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign< ::boost::long_long_type volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign< ::boost::ulong_long_type const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign< ::boost::long_long_type const volatile>::value, false);
-#endif
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int8>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int8 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int8 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int8 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int8 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int8 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int8 const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int16>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int16 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int16 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int16 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int16 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int16 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int16 const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int32>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int32 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int32 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int32 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int32 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int32 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int32 const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int64>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int64 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int64 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int64 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int64 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<unsigned __int64 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<__int64 const volatile>::value, false);
-#endif
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<float>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<float const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<float volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<float const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<double>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<double const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<double volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<double const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<long double>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<long double const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<long double volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<long double const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<void*>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int*const>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<f2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<f3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<enum_UDT>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int[3][2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<int[2][4][5][6][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<void>::value, true);
-// cases we would like to succeed but can't implement in the language:
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<empty_POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<empty_POD_union_UDT>::value, true, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<trivial_except_assign>::value, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<trivial_except_destroy>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<trivial_except_construct>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<trivial_except_copy>::value, true, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<wrap<trivial_except_assign> >::value, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<wrap<trivial_except_destroy> >::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<wrap<trivial_except_construct> >::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_assign<wrap<trivial_except_copy> >::value, true, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<test_abc1>::value, false);
-
-TT_TEST_END
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/has_trivial_constr_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_trivial_constr_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,178 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/has_trivial_constructor.hpp>
-#endif
-
-TT_TEST_BEGIN(has_trivial_constructor)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<bool>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<bool const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<bool volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<bool const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<signed char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<signed char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<signed char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<char const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned short const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<short const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned int const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<int const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned long const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<long const volatile>::value, true);
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor< ::boost::long_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor< ::boost::ulong_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor< ::boost::long_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor< ::boost::ulong_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor< ::boost::long_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor< ::boost::ulong_long_type const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor< ::boost::long_long_type const volatile>::value, true);
-
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int8 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int8 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int16 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int16 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int32 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int32 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<unsigned __int64 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<__int64 const volatile>::value, true);
-
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<float const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<float volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<float const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<double const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<long double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<long double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<long double const volatile>::value, true);
-
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<void*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<int*const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<f2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<f3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<enum_UDT>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<int[3][2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<int[2][4][5][6][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<void>::value, true);
-// cases we would like to succeed but can't implement in the language:
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<empty_POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<empty_POD_union_UDT>::value, true, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<trivial_except_construct>::value, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<trivial_except_destroy>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<trivial_except_assign>::value, true, false);
-//BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<trivial_except_copy>::value, true, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<wrap<trivial_except_construct> >::value, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<wrap<trivial_except_destroy> >::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<wrap<trivial_except_assign> >::value, true, false);
-//BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<wrap<trivial_except_copy> >::value, true, false);
-
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<test_abc1>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/has_trivial_copy_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_trivial_copy_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,211 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/has_trivial_copy.hpp>
-#endif
-
-TT_TEST_BEGIN(has_trivial_copy)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<bool>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<bool const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<bool volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<bool const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<signed char const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<signed char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<signed char const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<char const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned char const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<char const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<short const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned short volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<short volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned short const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<short const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned int volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned int const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<long const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned long volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<long volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned long const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<long const volatile>::value, false);
-#endif
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy< ::boost::long_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy< ::boost::ulong_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy< ::boost::long_long_type const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy< ::boost::ulong_long_type volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy< ::boost::long_long_type volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy< ::boost::ulong_long_type const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy< ::boost::long_long_type const volatile>::value, false);
-#endif
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int8 const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int8 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int8 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int8 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int8 const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int16 const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int16 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int16 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int16 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int16 const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int32 const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int32 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int32 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int32 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int32 const volatile>::value, false);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int64 const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int64 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int64 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<unsigned __int64 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<__int64 const volatile>::value, false);
-#endif
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<float const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<float volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<float const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<double const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<double volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<double const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<long double const>::value, true);
-#ifndef TEST_STD
-// unspecified behaviour:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<long double volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<long double const volatile>::value, false);
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<void*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int*const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<f2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<f3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<enum_UDT>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int[3][2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<int[2][4][5][6][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<void>::value, true);
-// cases we would like to succeed but can't implement in the language:
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<empty_POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<empty_POD_union_UDT>::value, true, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<trivial_except_copy>::value, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<trivial_except_destroy>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<trivial_except_construct>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<trivial_except_assign>::value, true, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<wrap<trivial_except_copy> >::value, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<wrap<trivial_except_destroy> >::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<wrap<trivial_except_construct> >::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_copy<wrap<trivial_except_assign> >::value, true, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<test_abc1>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/has_trivial_destructor_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_trivial_destructor_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,176 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/has_trivial_destructor.hpp>
-#endif
-
-TT_TEST_BEGIN(has_trivial_destructor)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<bool>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<bool const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<bool volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<bool const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<signed char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<signed char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<signed char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<char const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned short const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<short const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned int const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned long const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<long const volatile>::value, true);
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor< ::boost::long_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor< ::boost::ulong_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor< ::boost::long_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor< ::boost::ulong_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor< ::boost::long_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor< ::boost::ulong_long_type const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor< ::boost::long_long_type const volatile>::value, true);
-
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int8 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int8 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int16 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int16 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int32 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int32 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<unsigned __int64 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<__int64 const volatile>::value, true);
-
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<float const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<float volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<float const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<double const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<long double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<long double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<long double const volatile>::value, true);
-
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<void*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int*const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<f2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<f3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<enum_UDT>::value, true);
-
-//
-// These are commented out for now because it's not clear what the semantics should be:
-// on the one hand references always have trivial destructors (in the sence that there is
-// nothing to destruct), on the other hand the thing referenced may not have a trivial
-// destructor, it really depends upon the users code as to what should happen here:
-//
-//BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int&>::value, false);
-//BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int[3][2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<int[2][4][5][6][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<void>::value, true);
-// cases we would like to succeed but can't implement in the language:
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<empty_POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<empty_POD_union_UDT>::value, true, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<trivial_except_destroy>::value, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<trivial_except_copy>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<trivial_except_construct>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<trivial_except_assign>::value, true, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<wrap<trivial_except_destroy> >::value, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<wrap<trivial_except_copy> >::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<wrap<trivial_except_construct> >::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<wrap<trivial_except_assign> >::value, true, false);
-
-TT_TEST_END
-
-
-

Added: sandbox/type_traits/libs/type_traits/test/has_unary_minus_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_unary_minus_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_unary_minus.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_unary_minus
+#define BOOST_TT_TRAIT_OP -
+
+
+#include "has_prefix_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Added: sandbox/type_traits/libs/type_traits/test/has_unary_plus_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/type_traits/libs/type_traits/test/has_unary_plus_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
@@ -0,0 +1,228 @@
+// (C) Copyright 2009-2011 Frederic 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)
+
+#include "test.hpp"
+#include "check_integral_constant.hpp"
+
+#ifdef TEST_STD
+# include <type_traits>
+#else
+# include <boost/type_traits/has_unary_plus.hpp>
+#endif
+
+#define BOOST_TT_TRAIT_NAME has_unary_plus
+#define BOOST_TT_TRAIT_OP +
+
+
+#include "has_prefix_operators.hpp"
+
+void specific() {
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, bool const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< bool const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< double const &, int const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< void* const &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int*, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* &, int const & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, void >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, bool const & >::value), 1);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int & >::value), 0);
+ BOOST_CHECK_INTEGRAL_CONSTANT((::boost::BOOST_TT_TRAIT_NAME< int* const &, int const & >::value), 0);
+
+}
+
+TT_TEST_BEGIN(BOOST_TT_TRAIT_NAME)
+ common();
+ specific();
+TT_TEST_END

Deleted: sandbox/type_traits/libs/type_traits/test/has_virtual_destructor_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/has_virtual_destructor_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,72 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/has_virtual_destructor.hpp>
-#endif
-
-#include <iostream>
-#include <stdexcept>
-#include <new>
-
-class polymorphic_no_virtual_destructor
-{
-public:
- virtual void method() = 0;
-};
-
-TT_TEST_BEGIN(has_virtual_destructor)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<const int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<volatile int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<int*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<int* const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<int[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<mf4>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<enum_UDT>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<empty_UDT>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<UDT*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<UDT[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<UDT&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<void>::value, false);
-
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<VB>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<VD>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<test_abc1>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<test_abc2>::value, true, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<polymorphic_no_virtual_destructor>::value, false);
-#ifndef BOOST_NO_STD_LOCALE
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<std::iostream>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<std::basic_streambuf<char> >::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<std::basic_ios<char> >::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<std::basic_istream<char> >::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<std::basic_streambuf<char> >::value, true, false);
-#endif
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<std::exception>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<std::bad_alloc>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<std::runtime_error>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<std::out_of_range>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::has_virtual_destructor<std::range_error>::value, true, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/init.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/init.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,23 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-
-boost::unit_test_framework::test_suite* get_master_unit(const char* name)
-{
- static boost::unit_test_framework::test_suite* ptest_suite = 0;
- if(0 == ptest_suite)
- ptest_suite = BOOST_TEST_SUITE( name ? name : "" );
- return ptest_suite;
-}
-
-boost::unit_test_framework::test_suite* init_unit_test_suite ( int , char* [] )
-{
- return get_master_unit();
-}
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_abstract_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_abstract_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,438 +0,0 @@
-
-// (C) Copyright Rani Sharoni,Robert Ramey, Pavel Vozenilek and Christoph Ludwig 2004.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_abstract.hpp>
-#endif
-
-
-struct TestA {};
-struct TestB { virtual void foo(void) = 0; };
-struct TestC { private: virtual void foo(void) = 0; };
-struct TestD : TestA {};
-struct TestE : TestB {};
-struct TestF : TestC {};
-struct TestG : TestB { virtual void foo(void) {} };
-struct TestH : TestC { private: virtual void foo(void) {} };
-struct TestI : TestB, TestC {};
-struct TestJ : TestI { virtual void foo(void) {} };
-struct TestK : TestB { virtual void foo(void); virtual void foo2(void) = 0; };
-struct TestL : TestK { virtual void foo2(void) {} };
-struct TestM : virtual TestB {};
-struct TestN : virtual TestC {};
-struct TestO : TestM, TestN {};
-struct TestP : TestO { virtual void foo(void) {} };
-struct TestQ : TestB { virtual void foo(void) = 0; };
-struct TestR : TestC { private: virtual void foo(void) = 0; };
-struct TestS { virtual void foo(void) {} };
-struct TestT { virtual ~TestT(void) {} virtual void foo(void) {} };
-struct TestU : TestT { virtual void foo(void) = 0; };
-struct TestV : TestT { virtual void foo(void) {} };
-struct TestW { virtual void foo1(void) = 0; virtual void foo2(void) = 0; };
-struct TestX : TestW { virtual void foo1(void) {} virtual void foo2(void) {} };
-struct TestY { virtual ~TestY(void) = 0; };
-struct TestZ { virtual ~TestZ(void) = 0; }; TestZ::~TestZ(void) {}
-struct TestAA : TestZ { virtual ~TestAA(void) = 0; }; TestAA::~TestAA(void) {}
-struct TestAB : TestAA { virtual ~TestAB(void) {} };
-struct TestAC { virtual void foo(void) = 0; }; void TestAC::foo(void) {}
-struct TestAD : TestAC {};
-struct TestAE : TestAD { virtual void foo() {} };
-struct TestAF : TestAD { virtual void foo(); }; void TestAF::foo(void) {}
-struct TestAG : virtual TestA {};
-
-// template test types:
-template <class T> struct TTestA {};
-template <class T> struct TTestB { virtual void foo(void) = 0; };
-template <class T> struct TTestC { private: virtual void foo(void) = 0; };
-template <class T> struct TTestD : TTestA<T> {};
-template <class T> struct TTestE : TTestB<T> {};
-template <class T> struct TTestF : TTestC<T> {};
-template <class T> struct TTestG : TTestB<T> { virtual void foo(void) {} };
-template <class T> struct TTestH : TTestC<T> { private: virtual void foo(void) {} };
-template <class T> struct TTestI : TTestB<T>, TTestC<T> {};
-template <class T> struct TTestJ : TTestI<T> { virtual void foo(void) {} };
-template <class T> struct TTestK : TTestB<T> { virtual void foo(void); virtual void foo2(void) = 0; };
-template <class T> struct TTestL : TTestK<T> { virtual void foo2(void) {} };
-template <class T> struct TTestM : virtual TTestB<T> {};
-template <class T> struct TTestN : virtual TTestC<T> {};
-template <class T> struct TTestO : TTestM<T>, TTestN<T> {};
-template <class T> struct TTestP : TTestO<T> { virtual void foo(void) {} };
-template <class T> struct TTestQ : TTestB<T> { virtual void foo(void) = 0; };
-template <class T> struct TTestR : TTestC<T> { private: virtual void foo(void) = 0; };
-template <class T> struct TTestS { virtual void foo(void) {} };
-template <class T> struct TTestT { virtual ~TTestT(void) {} virtual void foo(void) {} };
-template <class T> struct TTestU : TTestT<T> { virtual void foo(void) = 0; };
-template <class T> struct TTestV : TTestT<T> { virtual void foo(void) {} };
-template <class T> struct TTestW { virtual void foo1(void) = 0; virtual void foo2(void) = 0; };
-template <class T> struct TTestX : TTestW<T> { virtual void foo1(void) {} virtual void foo2(void) {} };
-template <class T> struct TTestY { virtual ~TTestY(void) = 0; };
-template <class T> struct TTestZ { virtual ~TTestZ(void) = 0; }; template <class T> TTestZ<T>::~TTestZ(void) {}
-template <class T> struct TTestAA : TTestZ<T> { virtual ~TTestAA(void) = 0; }; template <class T> TTestAA<T>::~TTestAA(void) {}
-template <class T> struct TTestAB : TTestAA<T> { virtual ~TTestAB(void) {} };
-template <class T> struct TTestAC { virtual void foo(void) = 0; }; template <class T> void TTestAC<T>::foo(void) {}
-template <class T> struct TTestAD : TTestAC<T> {};
-template <class T> struct TTestAE : TTestAD<T> { virtual void foo() {} };
-template <class T> struct TTestAF : TTestAD<T> { virtual void foo(); }; template <class T> void TTestAF<T>::foo(void) {}
-template <class T> struct TTestAG : virtual TTestA<T> {};
-
-
-TT_TEST_BEGIN(is_abstract)
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestA>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestB>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestC>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestD>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestE>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestF>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestG>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestH>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestI>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestJ>::value), false); // only one method implemented!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestK>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestL>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestM>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestN>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestO>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestP>::value), false); // ???
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestQ>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestR>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestS>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestT>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestU>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestV>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestW>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestX>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestY>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestZ>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAA>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAB>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAC>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAD>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAE>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAF>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAG>::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestA>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestB>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestC>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestD>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestE>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestF>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestG>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestH>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestI>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestJ>::value), false); // only one method implemented!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestK>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestL>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestM>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestN>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestO>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestP>::value), false); // ???
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestQ>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestR>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestS>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestT>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestU>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestV>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestW>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestX>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestY>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestZ>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestAA>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestAB>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestAC>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestAD>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestAE>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestAF>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TestAG>::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestA>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestB>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestC>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestD>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestE>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestF>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestG>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestH>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestI>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestJ>::value), false); // only one method implemented!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestK>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestL>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestM>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestN>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestO>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestP>::value), false); // ???
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestQ>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestR>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestS>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestT>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestU>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestV>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestW>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestX>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestY>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestZ>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestAA>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestAB>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestAC>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestAD>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestAE>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestAF>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TestAG>::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestA>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestB>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestC>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestD>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestE>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestF>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestG>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestH>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestI>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestJ>::value), false); // only one method implemented!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestK>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestL>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestM>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestN>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestO>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestP>::value), false); // ???
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestQ>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestR>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestS>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestT>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestU>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestV>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestW>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestX>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestY>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestZ>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestAA>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestAB>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestAC>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestAD>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestAE>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestAF>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TestAG>::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestA&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestB&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestC&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestD&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestE&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestF&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestG&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestH&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestI&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestJ&>::value), false); // only one method implemented!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestK&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestL&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestM&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestN&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestO&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestP&>::value), false); // ???
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestQ&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestR&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestS&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestT&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestU&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestV&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestW&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestX&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestY&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestZ&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAA&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAB&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAC&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAD&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAE&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAF&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TestAG&>::value), false);
-#if !(defined(BOOST_MSVC) && (BOOST_MSVC < 1310))
-// MSVC prior to VC7.1 always runs out of swap space trying to
-// compile these, so leave them out for now (the test fails anyway).
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestA<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestB<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestC<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestD<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestE<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestF<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestG<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestH<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestI<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestJ<int> >::value), false); // only one method implemented!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestK<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestL<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestM<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestN<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestO<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestP<int> >::value), false); // ???
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestQ<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestR<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestS<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestT<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestU<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestV<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestW<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestX<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestY<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestZ<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAA<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAB<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAC<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAD<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAE<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAF<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAG<int> >::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestA<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestB<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestC<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestD<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestE<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestF<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestG<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestH<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestI<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestJ<int> >::value), false); // only one method implemented!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestK<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestL<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestM<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestN<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestO<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestP<int> >::value), false); // ???
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestQ<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestR<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestS<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestT<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestU<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestV<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestW<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestX<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestY<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestZ<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestAA<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestAB<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestAC<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestAD<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestAE<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestAF<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<const TTestAG<int> >::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestA<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestB<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestC<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestD<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestE<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestF<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestG<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestH<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestI<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestJ<int> >::value), false); // only one method implemented!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestK<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestL<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestM<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestN<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestO<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestP<int> >::value), false); // ???
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestQ<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestR<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestS<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestT<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestU<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestV<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestW<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestX<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestY<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestZ<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestAA<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestAB<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestAC<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestAD<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestAE<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestAF<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile TTestAG<int> >::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestA<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestB<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestC<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestD<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestE<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestF<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestG<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestH<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestI<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestJ<int> >::value), false); // only one method implemented!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestK<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestL<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestM<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestN<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestO<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestP<int> >::value), false); // ???
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestQ<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestR<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestS<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestT<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestU<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestV<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestW<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestX<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestY<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestZ<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestAA<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestAB<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestAC<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestAD<int> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestAE<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestAF<int> >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<volatile const TTestAG<int> >::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestA<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestB<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestC<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestD<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestE<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestF<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestG<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestH<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestI<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestJ<int>& >::value), false); // only one method implemented!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestK<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestL<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestM<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestN<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestO<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestP<int>& >::value), false); // ???
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestQ<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestR<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestS<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestT<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestU<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestV<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestW<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestX<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestY<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestZ<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAA<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAB<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAC<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAD<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAE<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAF<int>& >::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_abstract<TTestAG<int>& >::value), false);
-#endif
-TT_TEST_END
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_arithmetic_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_arithmetic_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,152 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_arithmetic.hpp>
-#endif
-
-TT_TEST_BEGIN(is_arithmetic)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<bool>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<bool const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<bool volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<bool const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<signed char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<signed char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<signed char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<char const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned short const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<short const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned int const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<int const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned long const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<long const volatile>::value, true);
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic< ::boost::long_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic< ::boost::ulong_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic< ::boost::long_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic< ::boost::ulong_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic< ::boost::long_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic< ::boost::ulong_long_type const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic< ::boost::long_long_type const volatile>::value, true);
-
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int8 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int8 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int16 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int16 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int32 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int32 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<unsigned __int64 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<__int64 const volatile>::value, true);
-
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<float const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<float volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<float const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<double const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<long double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<long double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<long double const volatile>::value, true);
-
-//
-// cases that should not be true:
-//
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<float*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<float&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<const float&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<float[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_arithmetic<incomplete_type>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_array_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_array_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,52 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_array.hpp>
-#endif
-
-struct convertible_to_pointer
-{
- operator char*() const;
-};
-
-TT_TEST_BEGIN(is_array)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<int*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<const int*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<const volatile int*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<int*const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<const int*volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<const volatile int*const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<const int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<const volatile int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<int[2][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<UDT[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<int(&)[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<convertible_to_pointer>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<incomplete_type>::value, false);
-
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_base_and_derived_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_base_and_derived_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,64 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_base_and_derived.hpp>
-#endif
-
-//
-// Additional tests added for VC7.1 bug, 2005/04/21
-//
-struct marker{};
-struct foo{ int x; };
-
-template<class Class,typename Type,Type Class::*PtrToMember>
-struct class_member{};
-template<class Class,typename Type,Type Class::*PtrToMember>
-struct class_member2 : public marker{};
-
-
-TT_TEST_BEGIN(is_base_and_derived)
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<Derived,Base>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<Derived,Derived>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<Base,Base>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<Base,Derived>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<Base,MultiBase>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<Derived,MultiBase>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<Derived2,MultiBase>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<Base,PrivateBase>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<NonDerived,Base>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<Base,void>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<Base,const void>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<void,Derived>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<const void,Derived>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<int, int>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<const int, int>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<VB,VD>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<VD,VB>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<test_abc1,test_abc3>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<test_abc3,test_abc1>::value), false);
-
-typedef class_member<foo,int,&foo::x> mem_type;
-typedef class_member2<foo,int,&foo::x> mem2_type;
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<marker, mem_type>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_and_derived<marker, mem2_type>::value), true);
-
-TT_TEST_END
-
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_base_of_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_base_of_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,49 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_base_of.hpp>
-#endif
-
-
-
-TT_TEST_BEGIN(is_base_of)
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Derived,Base>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Derived,Derived>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Base,Base>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Base,Derived>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Base,MultiBase>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Derived,MultiBase>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Derived2,MultiBase>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Base,PrivateBase>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<NonDerived,Base>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Base,void>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Base,const void>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<void,Derived>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<const void,Derived>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<int, int>::value), true); // really it is!!!!!
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<const int, int>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<VB,VD>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<VD,VB>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<test_abc1,test_abc3>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<test_abc3,test_abc1>::value), false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_class_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_class_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,66 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_class.hpp>
-#endif
-#include <iostream>
-
-TT_TEST_BEGIN(is_class)
-
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<int>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<const int>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<volatile int>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<int*>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<int* const>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<int[2]>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<int const[2]>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<int&>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<mf4>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<f1>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<enum_UDT>::value, false);
-
-#if defined(BOOST_HAS_TYPE_TRAITS_INTRINSICS) && !defined(__sgi)
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<union_UDT>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<POD_union_UDT>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<empty_union_UDT>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<empty_POD_union_UDT>::value, false);
-#else
- std::cout <<
- "\n<note>\n"
- "This compiler version does not provide support for is_class on\n"
- "union types. Such support is not currently required by the\n"
- "C++ Standard. It will be required to support the upcoming\n"
- "Standard Library Technical Report.\n"
- "</note>\n";
-#endif
-
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<UDT>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<UDT const>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<UDT volatile>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<empty_UDT>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<std::iostream>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<test_abc1>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<test_abc1 const>::value, true);
-
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<UDT*>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<UDT[2]>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<UDT&>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<void>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_complex_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_complex_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,45 +0,0 @@
-
-// (C) Copyright John Maddock 2007.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_complex.hpp>
-#endif
-#include <iostream>
-
-struct bad_struct
-{
- operator std::complex<double> ()const;
-};
-
-struct derived_complex : public std::complex<double>
-{
-};
-
-TT_TEST_BEGIN(is_complex)
-
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_complex<int>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_complex<double>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_complex<float>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_complex<bad_struct>::value, false);
- //BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_complex<derived_complex>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_complex<std::complex<long double> >::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_complex<std::complex<double> >::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_complex<std::complex<float> >::value, true);
-
-TT_TEST_END
-
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_compound_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_compound_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,31 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_compound.hpp>
-#endif
-
-TT_TEST_BEGIN(is_compound)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<UDT>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<void*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<test_abc1>::value, true);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_const_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_const_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,46 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_const.hpp>
-#endif
-
-TT_TEST_BEGIN(is_const)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<const void>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<const test_abc1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<const int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<const UDT>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<const volatile UDT>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<cr_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<incomplete_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<const int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<int[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<volatile int[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<const volatile int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<const volatile int[]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<volatile int[]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<const int[]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_const<int[]>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_convertible_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_convertible_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,146 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_convertible.hpp>
-#endif
-
-template <class T>
-struct convertible_from
-{
- convertible_from(T);
-};
-
-struct base2 { };
-struct middle2 : virtual base2 { };
-struct derived2 : middle2 { };
-
-
-TT_TEST_BEGIN(is_convertible)
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<Derived,Base>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<Derived,Derived>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<Base,Base>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<Base,Derived>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<Derived,Derived>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<NonDerived,Base>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,int>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<virtual_inherit2,virtual_inherit1>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<VD,VB>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<polymorphic_derived1,polymorphic_base>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<polymorphic_derived2,polymorphic_base>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<polymorphic_base,polymorphic_derived1>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<polymorphic_base,polymorphic_derived2>::value), false);
-#ifndef TEST_STD
-// Ill-formed behaviour, supported by Boost as an extension:
-#ifndef BOOST_NO_IS_ABSTRACT
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<test_abc1,test_abc1>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<Base,test_abc1>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<polymorphic_derived2,test_abc1>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int,test_abc1>::value), false);
-#endif
-#endif
-
-// The following four do not compile without member template support:
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,void>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<void,void>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<void,float>::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<enum1, int>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<Derived*, Base*>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<Base*, Derived*>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<Derived&, Base&>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<Base&, Derived&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<const Derived*, const Base*>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<const Base*, const Derived*>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<const Derived&, const Base&>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<const Base&, const Derived&>::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<const int *, int*>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<const int&, int&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<const int*, int[3]>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<const int&, int>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int(&)[4], const int*>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int(&)(int), int(*)(int)>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int *, const int*>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int&, const int&>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int[2], int*>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int[2], const int*>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<const int[2], int*>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int*, int[3]>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<test_abc3, const test_abc1&>::value), true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<non_pointer, void*>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<non_pointer, int*>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<non_int_pointer, int*>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<non_int_pointer, void*>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<test_abc1&, test_abc2&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<test_abc1&, int_constructible>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int_constructible, test_abc1&>::value), false);
-#if !defined(BOOST_NO_IS_ABSTRACT) && !(defined(__hppa) && defined(__HP_aCC))
-//
-// This doesn't work with aCC on PA RISC even though the is_abstract tests do
-// all pass, this may indicate a deeper problem...
-//
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<test_abc1&, test_abc2>::value), false);
-#endif
-
-//
-// the following tests all involve user defined conversions which do
-// not compile with Borland C++ Builder 5:
-//
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int, int_constructible>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,convertible_from<float> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,convertible_from<float const&> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,convertible_from<float&> >::value), true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,convertible_from<char> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,convertible_from<char const&> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,convertible_from<char&> >::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<char,convertible_from<char> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<char,convertible_from<char const&> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<char,convertible_from<char&> >::value), true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float&,convertible_from<float> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float const&,convertible_from<float> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float&,convertible_from<float&> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float const&,convertible_from<float const&> >::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float&,convertible_from<float const&> >::value), true);
-
-//
-// the following all generate warnings unless we can find a way to
-// suppress them:
-//
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<float,int>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<double,int>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<double,float>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<long,int>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<int,char>::value), true);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<boost::long_long_type,int>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<boost::long_long_type,char>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<boost::long_long_type,float>::value), true);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<__int64,int>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<__int64,char>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<__int64,float>::value), true);
-#endif
-
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_empty_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_empty_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,51 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_empty.hpp>
-#endif
-
-struct non_default_constructable_UDT
-{
- non_default_constructable_UDT(const non_default_constructable_UDT&){}
-private:
- non_default_constructable_UDT(){}
-};
-
-TT_TEST_BEGIN(is_empty)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<int*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<int[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<mf1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<UDT>::value, false);
-
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_empty<empty_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_empty<empty_POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_empty<non_default_constructable_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_empty<boost::noncopyable>::value, true, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<enum_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<non_empty>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<const non_empty&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<foo4_t>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_enum_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_enum_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,33 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_enum.hpp>
-#endif
-
-TT_TEST_BEGIN(is_enum)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<enum_UDT>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<int_convertible>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<boost::noncopyable>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<test_abc1>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_float_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_float_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,64 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_float.hpp>
-#endif
-
-TT_TEST_BEGIN(is_float)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<float const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<float volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<float const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<double const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<long double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<long double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<long double const volatile>::value, true);
-
-//
-// cases that should not be true:
-//
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<float*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<float&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<const float&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<float[2]>::value, false);
-
-//
-// tricky cases:
-//
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_float<incomplete_type>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_floating_point_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_floating_point_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,64 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_floating_point.hpp>
-#endif
-
-TT_TEST_BEGIN(is_floating_point)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<float const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<float volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<float const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<double const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<long double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<long double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<long double const volatile>::value, true);
-
-//
-// cases that should not be true:
-//
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<float*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<float&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<const float&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<float[2]>::value, false);
-
-//
-// tricky cases:
-//
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_floating_point<incomplete_type>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_function_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_function_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,67 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_function.hpp>
-#endif
-
-TT_TEST_BEGIN(is_function)
-
-typedef void foo0_t();
-typedef void foo1_t(int);
-typedef void foo2_t(int&, double);
-typedef void foo3_t(int&, bool, int, int);
-typedef void foo4_t(int, bool, int*, int[], int, int, int, int, int);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<foo0_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<foo1_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<foo2_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<foo3_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<foo4_t>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<int>::value, false);
-#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION)
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<int&>::value, false);
-#else
-std::cout <<
-"<note>is_function will fail with some types (references for example)"
-"if the compiler doesn't support partial specialisation of class templates."
-"These are *not* tested here</note>" << std::endl;
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<int*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<int[]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<int (*)(int)>::value, false);
-
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-typedef void __stdcall sfoo0_t();
-typedef void __stdcall sfoo1_t(int);
-typedef void __stdcall sfoo2_t(int&, double);
-typedef void __stdcall sfoo3_t(int&, bool, int, int);
-typedef void __stdcall sfoo4_t(int, bool, int*, int[], int, int, int, int, int);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<sfoo0_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<sfoo1_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<sfoo2_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<sfoo3_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<sfoo4_t>::value, true);
-
-#endif
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_fundamental_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_fundamental_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,156 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_fundamental.hpp>
-#endif
-
-TT_TEST_BEGIN(is_fundamental)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<void>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<void const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<void volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<void const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<bool>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<bool const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<bool volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<bool const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<signed char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<signed char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<signed char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<char const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned short const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<short const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned int const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<int const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned long const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<long const volatile>::value, true);
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental< ::boost::long_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental< ::boost::ulong_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental< ::boost::long_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental< ::boost::ulong_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental< ::boost::long_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental< ::boost::ulong_long_type const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental< ::boost::long_long_type const volatile>::value, true);
-
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int8 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int8 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int16 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int16 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int32 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int32 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<unsigned __int64 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<__int64 const volatile>::value, true);
-
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<float const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<float volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<float const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<double const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<long double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<long double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<long double const volatile>::value, true);
-
-//
-// cases that should not be true:
-//
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<float*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<float&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<const float&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<float[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<incomplete_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_fundamental<foo0_t>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_integral_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_integral_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,143 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_integral.hpp>
-#endif
-
-TT_TEST_BEGIN(is_integral)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<bool>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<bool const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<bool volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<bool const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<signed char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<signed char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<signed char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<char const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned short const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<short const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned int const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<int const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned long const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<long const volatile>::value, true);
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::boost::long_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::boost::ulong_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::boost::long_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::boost::ulong_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::boost::long_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::boost::ulong_long_type const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::boost::long_long_type const volatile>::value, true);
-
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int8 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int8 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int16 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int16 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int32 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int32 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<unsigned __int64 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<__int64 const volatile>::value, true);
-
-#endif
-
-//
-// cases that should not be true:
-//
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<float>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<int*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<int[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral<incomplete_type>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_member_func_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_member_func_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,53 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_member_function_pointer.hpp>
-#endif
-
-TT_TEST_BEGIN(is_member_function_pointer)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<f2>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<f3>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<void*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<mf4>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<mp>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<const int[2] >::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<const int[] >::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<void>::value, false);
-
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-typedef void (__stdcall test_abc1::*scall_proc)();
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<scall_proc>::value, true);
-typedef void (__fastcall test_abc1::*fcall_proc)(int);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<fcall_proc>::value, true);
-typedef void (__cdecl test_abc1::*ccall_proc)(int, long, double);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<ccall_proc>::value, true);
-#endif
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_member_obj_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_member_obj_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,42 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_member_object_pointer.hpp>
-#endif
-
-typedef const double (UDT::*mp2) ;
-
-TT_TEST_BEGIN(is_member_object_pointer)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<f2>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<f3>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<void*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<mf1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<mf2>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<mf3>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<mf4>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<cmf>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<mp2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<foo0_t>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_member_pointer_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_member_pointer_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,48 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_member_pointer.hpp>
-#endif
-
-TT_TEST_BEGIN(is_member_pointer)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<f2>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<f3>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<void*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<mf4>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<foo0_t>::value, false);
-
-#ifdef BOOST_TT_TEST_MS_FUNC_SIGS
-typedef void (__stdcall test_abc1::*scall_proc)();
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<scall_proc>::value, true);
-typedef void (__fastcall test_abc1::*fcall_proc)(int);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<fcall_proc>::value, true);
-typedef void (__cdecl test_abc1::*ccall_proc)(int, long, double);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<ccall_proc>::value, true);
-#endif
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_object_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_object_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,35 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_object.hpp>
-#endif
-
-TT_TEST_BEGIN(is_object)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object<UDT>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object<test_abc1>::value, true);
-// this one is only partly correct:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_object<incomplete_type>::value, true);
-
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_pod_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_pod_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,178 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_pod.hpp>
-#endif
-
-TT_TEST_BEGIN(is_pod)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<bool>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<bool const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<bool volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<bool const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<signed char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<signed char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<signed char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<char const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned short const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<short const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned int const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<int const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned long const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<long const volatile>::value, true);
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod< ::boost::long_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod< ::boost::ulong_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod< ::boost::long_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod< ::boost::ulong_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod< ::boost::long_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod< ::boost::ulong_long_type const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod< ::boost::long_long_type const volatile>::value, true);
-
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int8 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int8 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int16 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int16 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int32 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int32 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<unsigned __int64 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<__int64 const volatile>::value, true);
-
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<float const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<float volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<float const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<double const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<long double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<long double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<long double const volatile>::value, true);
-
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<void*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<int*const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<f2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<f3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<enum_UDT>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<int[3][2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<int[2][4][5][6][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<void>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<test_abc1>::value, false);
-
-// cases we would like to succeed but can't implement in the language:
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_pod<empty_POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_pod<POD_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_pod<POD_union_UDT>::value, true, false);
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_pod<empty_POD_union_UDT>::value, true, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<trivial_except_copy>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<trivial_except_destroy>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<trivial_except_assign>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<trivial_except_construct>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<wrap<trivial_except_copy> >::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<wrap<trivial_except_assign> >::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<wrap<trivial_except_destroy> >::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<wrap<trivial_except_construct> >::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_pointer_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_pointer_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,61 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_pointer.hpp>
-#endif
-
-TT_TEST_BEGIN(is_pointer)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<int*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<const int*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<volatile int*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<non_pointer*>::value, true);
- // these were false in previous versions (JM 20 Dec 2000):
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<int*const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<int*volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<int*const volatile>::value, true);
- // JM 02 Oct 2000:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<non_pointer>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<int*&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<int(&)[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<int[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<char[sizeof(void*)]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<void>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<f2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<f3>::value, true);
- // Steve: was 'true', should be 'false', via 3.9.2p3
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<mf1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<mf2>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<mf3>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<mf4>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<test_abc1>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<foo4_t>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<test_abc1>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_polymorphic_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_polymorphic_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,88 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_polymorphic.hpp>
-#endif
-
-#include <exception>
-#include <new>
-#include <stdexcept>
-
-#if defined(BOOST_WINDOWS) && !defined(BOOST_DISABLE_WIN32)
-#include <windows.h> // more things to test
-#endif
-
-// this test was added to check for bug reported on 21 May 2003:
-struct poly_bug { virtual int foo() = 0; };
-
-TT_TEST_BEGIN(is_polymorphic)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<const int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<volatile int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<int*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<int* const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<int[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<mf4>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<enum_UDT>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<empty_UDT>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<UDT*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<UDT[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<UDT&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<void>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<VB>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<VD>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<test_abc1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<test_abc2>::value, true);
-#ifndef BOOST_NO_STD_LOCALE
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::iostream>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::basic_streambuf<char> >::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::basic_ios<char> >::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::basic_istream<char> >::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::basic_streambuf<char> >::value, true);
-// some libraries don't make this one a polymorphic class, since this is a library
-// rather than a type traits issue we won't test this for now...
-//BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::ios_base>::value, true);
-#endif
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::exception>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::bad_alloc>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::runtime_error>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::out_of_range>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<std::range_error>::value, true);
-
-#if defined(BOOST_WINDOWS) && !defined(BOOST_DISABLE_WIN32)
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<IUnknown>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<ITypeInfo>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<ITypeComp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<IDispatch>::value, true);
-#endif
-
-//
-// this test was added to check for bug reported on 21 May 2003:
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<poly_bug>::value, true);
-
-TT_TEST_END
-
-
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_reference_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_reference_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,47 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_reference.hpp>
-#endif
-
-TT_TEST_BEGIN(is_reference)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<int&>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<const int&>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<volatile int &>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<const volatile int &>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<r_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<cr_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<UDT&>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<const UDT&>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<volatile UDT&>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<const volatile UDT&>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<int (&)(int)>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<int (&)[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<int [2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<const int [2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<volatile int [2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<const volatile int [2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<bool>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_reference<incomplete_type>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_same_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_same_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,36 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_same.hpp>
-#endif
-
-TT_TEST_BEGIN(is_same)
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<int, int>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<int, const int>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<int, int&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<const int, int&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<int, const int&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<int*, const int*>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<int*, int*const>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<int, int[2]>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<int*, int[2]>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<int[4], int[2]>::value), false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_scalar_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_scalar_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,157 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_scalar.hpp>
-#endif
-
-TT_TEST_BEGIN(is_scalar)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<bool>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<bool const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<bool volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<bool const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<signed char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<signed char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<signed char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<char const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<char volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned char const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<char const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<short const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<short volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned short const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<short const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<int const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<int volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned int const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<int const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<long const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<long volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned long const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<long const volatile>::value, true);
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar< ::boost::ulong_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar< ::boost::long_long_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar< ::boost::ulong_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar< ::boost::long_long_type const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar< ::boost::ulong_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar< ::boost::long_long_type volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar< ::boost::ulong_long_type const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar< ::boost::long_long_type const volatile>::value, true);
-
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int8>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int8 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int8 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int8 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int8 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int16>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int16 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int16 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int16 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int16 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int32>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int32 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int32 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int32 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int32 const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int64>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int64 const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int64 volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<unsigned __int64 const volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<__int64 const volatile>::value, true);
-
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<float>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<float const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<float volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<float const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<double const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<long double>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<long double const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<long double volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<long double const volatile>::value, true);
-
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<void*>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<int*const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<f2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<f3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<mf1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<mf2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<cmf>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<enum_UDT>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<test_abc1>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_signed_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_signed_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,39 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_signed.hpp>
-#endif
-
-TT_TEST_BEGIN(is_signed)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<signed char>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<unsigned int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<unsigned long>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<unsigned short>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<unsigned char>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<int*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed<int[2]>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_stateless_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_stateless_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,165 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_stateless.hpp>
-#endif
-
-TT_TEST_BEGIN(is_stateless)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<bool>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<bool const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<bool volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<bool const volatile>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<signed char>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<signed char const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<signed char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<signed char const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned char>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<char>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned char const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<char const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<char volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned char const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<char const volatile>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned short>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<short>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned short const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<short const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned short volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<short volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned short const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<short const volatile>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned int const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<int const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned int volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<int volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned int const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<int const volatile>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned long>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<long>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned long const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<long const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned long volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<long volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned long const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<long const volatile>::value, false);
-
-#ifdef BOOST_HAS_LONG_LONG
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless< ::boost::ulong_long_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless< ::boost::long_long_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless< ::boost::ulong_long_type const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless< ::boost::long_long_type const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless< ::boost::ulong_long_type volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless< ::boost::long_long_type volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless< ::boost::ulong_long_type const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless< ::boost::long_long_type const volatile>::value, false);
-
-#endif
-
-#ifdef BOOST_HAS_MS_INT64
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int8>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int8>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int8 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int8 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int8 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int8 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int8 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int8 const volatile>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int16>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int16>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int16 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int16 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int16 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int16 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int16 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int16 const volatile>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int32>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int32>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int32 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int32 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int32 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int32 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int32 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int32 const volatile>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int64>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int64>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int64 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int64 const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int64 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int64 volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<unsigned __int64 const volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<__int64 const volatile>::value, false);
-
-#endif
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<float>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<float const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<float volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<float const volatile>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<double>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<double const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<double volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<double const volatile>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<long double>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<long double const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<long double volatile>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<long double const volatile>::value, false);
-
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<void*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<int*const>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<f2>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<f3>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<mf1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<mf2>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<mf3>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<mp>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<cmf>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<enum_UDT>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<int[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<int[3][2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<int[2][4][5][6][3]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<void>::value, false);
-
-// cases we would like to succeed but can't implement in the language:
-BOOST_CHECK_SOFT_INTEGRAL_CONSTANT(::tt::is_stateless<empty_POD_UDT>::value, true, false);
-
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_union_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_union_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,76 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_union.hpp>
-#endif
-#include <iostream>
-
-TT_TEST_BEGIN(is_union)
-
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<int>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<const int>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<volatile int>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<int*>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<int* const>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<int[2]>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<int&>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<mf4>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<f1>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<enum_UDT>::value, false);
-
-#if defined(BOOST_HAS_TYPE_TRAITS_INTRINSICS) && !defined(__sgi)
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<union_UDT>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<POD_union_UDT>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<empty_union_UDT>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<empty_POD_union_UDT>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<union_UDT const>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<POD_union_UDT volatile>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<empty_union_UDT const volatile>::value, true);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<empty_POD_union_UDT const>::value, true);
-#else
- std::cout <<
- "\n<note>\n"
- "This compiler version does not provide support for is_union on\n"
- "union types. Such support is not currently required by the\n"
- "C++ Standard. It will be required to support the upcoming\n"
- "Standard Library Technical Report.\n"
- "</note>\n";
-#endif
-
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<UDT>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<UDT const>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<UDT volatile>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<empty_UDT>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<std::iostream>::value, false);
-
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<UDT*>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<UDT[2]>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<UDT&>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<void>::value, false);
-
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<test_abc1>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<foo0_t>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<foo1_t>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<foo2_t>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<foo3_t>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<foo4_t>::value, false);
- BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<incomplete_type>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_unsigned_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_unsigned_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,39 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_unsigned.hpp>
-#endif
-
-TT_TEST_BEGIN(is_signed)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<long>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<short>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<signed char>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned long>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned short>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<unsigned char>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<int*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned<int[2]>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_void_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_void_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_void.hpp>
-#endif
-
-TT_TEST_BEGIN(is_void)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<void>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<void const>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<void volatile>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<void const volatile>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<void*>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_void<incomplete_type>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/is_volatile_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/is_volatile_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,44 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_volatile.hpp>
-#endif
-
-TT_TEST_BEGIN(is_volatile)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<void>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<volatile void>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<test_abc1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<volatile test_abc1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<int>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<volatile int>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<volatile UDT>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<volatile const UDT>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<incomplete_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<volatile int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<int[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<const int[2]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<const volatile int[2]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<const volatile int[]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<const int[]>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<volatile int[]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_volatile<int[]>::value, false);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/make_signed_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/make_signed_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,107 +0,0 @@
-
-// (C) Copyright John Maddock 2007.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/make_signed.hpp>
-#endif
-
-TT_TEST_BEGIN(make_signed)
-// signed types:
-BOOST_CHECK_TYPE(::tt::make_signed<signed char>::type, signed char);
-BOOST_CHECK_TYPE(::tt::make_signed<short>::type, short);
-BOOST_CHECK_TYPE(::tt::make_signed<int>::type, int);
-BOOST_CHECK_TYPE(::tt::make_signed<long>::type, long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<boost::long_long_type>::type, boost::long_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_signed<__int64>::type, __int64);
-#endif
-// const signed types:
-BOOST_CHECK_TYPE(::tt::make_signed<const signed char>::type, const signed char);
-BOOST_CHECK_TYPE(::tt::make_signed<const short>::type, const short);
-BOOST_CHECK_TYPE(::tt::make_signed<const int>::type, const int);
-BOOST_CHECK_TYPE(::tt::make_signed<const long>::type, const long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<const boost::long_long_type>::type, const boost::long_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_signed<const __int64>::type, const __int64);
-#endif
-// volatile signed types:
-BOOST_CHECK_TYPE(::tt::make_signed<volatile signed char>::type, volatile signed char);
-BOOST_CHECK_TYPE(::tt::make_signed<volatile short>::type, volatile short);
-BOOST_CHECK_TYPE(::tt::make_signed<volatile int>::type, volatile int);
-BOOST_CHECK_TYPE(::tt::make_signed<volatile long>::type, volatile long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<volatile boost::long_long_type>::type, volatile boost::long_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_signed<volatile __int64>::type, volatile __int64);
-#endif
-// const volatile signed types:
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile signed char>::type, const volatile signed char);
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile short>::type, const volatile short);
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile int>::type, const volatile int);
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile long>::type, const volatile long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile boost::long_long_type>::type, const volatile boost::long_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile __int64>::type, const volatile __int64);
-#endif
-
-// unsigned types:
-BOOST_CHECK_TYPE(::tt::make_signed<unsigned char>::type, signed char);
-BOOST_CHECK_TYPE(::tt::make_signed<unsigned short>::type, short);
-BOOST_CHECK_TYPE(::tt::make_signed<unsigned int>::type, int);
-BOOST_CHECK_TYPE(::tt::make_signed<unsigned long>::type, long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<boost::ulong_long_type>::type, boost::long_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_signed<unsigned __int64>::type, __int64);
-#endif
-// const unsigned types:
-BOOST_CHECK_TYPE(::tt::make_signed<const unsigned char>::type, const signed char);
-BOOST_CHECK_TYPE(::tt::make_signed<const unsigned short>::type, const short);
-BOOST_CHECK_TYPE(::tt::make_signed<const unsigned int>::type, const int);
-BOOST_CHECK_TYPE(::tt::make_signed<const unsigned long>::type, const long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<const boost::ulong_long_type>::type, const boost::long_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_signed<const unsigned __int64>::type, const __int64);
-#endif
-// volatile unsigned types:
-BOOST_CHECK_TYPE(::tt::make_signed<volatile unsigned char>::type, volatile signed char);
-BOOST_CHECK_TYPE(::tt::make_signed<volatile unsigned short>::type, volatile short);
-BOOST_CHECK_TYPE(::tt::make_signed<volatile unsigned int>::type, volatile int);
-BOOST_CHECK_TYPE(::tt::make_signed<volatile unsigned long>::type, volatile long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<volatile boost::ulong_long_type>::type, volatile boost::long_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_signed<volatile unsigned __int64>::type, volatile __int64);
-#endif
-// const volatile unsigned types:
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile unsigned char>::type, const volatile signed char);
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile unsigned short>::type, const volatile short);
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile unsigned int>::type, const volatile int);
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile unsigned long>::type, const volatile long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile boost::ulong_long_type>::type, const volatile boost::long_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_signed<const volatile unsigned __int64>::type, const volatile __int64);
-#endif
-
-// character types:
-BOOST_CHECK_TYPE(::tt::make_signed<char>::type, signed char);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::tt::make_signed<wchar_t>::type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed< ::tt::make_signed<wchar_t>::type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::tt::make_signed<enum_UDT>::type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_signed< ::tt::make_signed<enum_UDT>::type>::value, true);
-TT_TEST_END
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/make_unsigned_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/make_unsigned_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,107 +0,0 @@
-
-// (C) Copyright John Maddock 2007.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/make_unsigned.hpp>
-#endif
-
-TT_TEST_BEGIN(make_unsigned)
-// signed types:
-BOOST_CHECK_TYPE(::tt::make_unsigned<signed char>::type, unsigned char);
-BOOST_CHECK_TYPE(::tt::make_unsigned<short>::type, unsigned short);
-BOOST_CHECK_TYPE(::tt::make_unsigned<int>::type, unsigned int);
-BOOST_CHECK_TYPE(::tt::make_unsigned<long>::type, unsigned long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<boost::long_long_type>::type, boost::ulong_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_unsigned<__int64>::type, unsigned __int64);
-#endif
-// const signed types:
-BOOST_CHECK_TYPE(::tt::make_unsigned<const signed char>::type, const unsigned char);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const short>::type, const unsigned short);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const int>::type, const unsigned int);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const long>::type, const unsigned long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<const boost::long_long_type>::type, const boost::ulong_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_unsigned<const __int64>::type, const unsigned __int64);
-#endif
-// volatile signed types:
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile signed char>::type, volatile unsigned char);
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile short>::type, volatile unsigned short);
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile int>::type, volatile unsigned int);
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile long>::type, volatile unsigned long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile boost::long_long_type>::type, volatile boost::ulong_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile __int64>::type, volatile unsigned __int64);
-#endif
-// const volatile signed types:
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile signed char>::type, const volatile unsigned char);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile short>::type, const volatile unsigned short);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile int>::type, const volatile unsigned int);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile long>::type, const volatile unsigned long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile boost::long_long_type>::type, const volatile boost::ulong_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile __int64>::type, const volatile unsigned __int64);
-#endif
-
-// unsigned types:
-BOOST_CHECK_TYPE(::tt::make_unsigned<unsigned char>::type, unsigned char);
-BOOST_CHECK_TYPE(::tt::make_unsigned<unsigned short>::type, unsigned short);
-BOOST_CHECK_TYPE(::tt::make_unsigned<unsigned int>::type, unsigned int);
-BOOST_CHECK_TYPE(::tt::make_unsigned<unsigned long>::type, unsigned long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<boost::ulong_long_type>::type, boost::ulong_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_unsigned<unsigned __int64>::type, unsigned __int64);
-#endif
-// const unsigned types:
-BOOST_CHECK_TYPE(::tt::make_unsigned<const unsigned char>::type, const unsigned char);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const unsigned short>::type, const unsigned short);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const unsigned int>::type, const unsigned int);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const unsigned long>::type, const unsigned long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<const boost::ulong_long_type>::type, const boost::ulong_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_unsigned<const unsigned __int64>::type, const unsigned __int64);
-#endif
-// volatile unsigned types:
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile unsigned char>::type, volatile unsigned char);
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile unsigned short>::type, volatile unsigned short);
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile unsigned int>::type, volatile unsigned int);
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile unsigned long>::type, volatile unsigned long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile boost::ulong_long_type>::type, volatile boost::ulong_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_unsigned<volatile unsigned __int64>::type, volatile unsigned __int64);
-#endif
-// const volatile unsigned types:
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile unsigned char>::type, const volatile unsigned char);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile unsigned short>::type, const volatile unsigned short);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile unsigned int>::type, const volatile unsigned int);
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile unsigned long>::type, const volatile unsigned long);
-#ifdef BOOST_HAS_LONG_LONG
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile boost::ulong_long_type>::type, const volatile boost::ulong_long_type);
-#elif defined(BOOST_HAS_MS_INT64)
-BOOST_CHECK_TYPE(::tt::make_unsigned<const volatile unsigned __int64>::type, const volatile unsigned __int64);
-#endif
-
-// character types:
-BOOST_CHECK_TYPE(::tt::make_unsigned<char>::type, unsigned char);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::tt::make_unsigned<wchar_t>::type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned< ::tt::make_unsigned<wchar_t>::type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_integral< ::tt::make_unsigned<enum_UDT>::type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_unsigned< ::tt::make_unsigned<enum_UDT>::type>::value, true);
-TT_TEST_END
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/member_object_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/member_object_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,63 +0,0 @@
-
-// (C) Copyright John Maddock 2008.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/member_object.hpp>
-#endif
-
-struct t{};
-
-BOOST_DECL_TRANSFORM_TEST(member_object_test_1, ::tt::member_object, const, const)
-BOOST_DECL_TRANSFORM_TEST(member_object_test_2, ::tt::member_object, volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST0(member_object_test_4, ::tt::member_object)
-BOOST_DECL_TRANSFORM_TEST(member_object_test_5, ::tt::member_object, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(member_object_test_6, ::tt::member_object, &, &)
-BOOST_DECL_TRANSFORM_TEST(member_object_test_8, ::tt::member_object, const [2], const[2])
-BOOST_DECL_TRANSFORM_TEST(member_object_test_9, ::tt::member_object, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(member_object_test_12, ::tt::member_object, const[2][3], const[2][3])
-BOOST_DECL_TRANSFORM_TEST(member_object_test_13, ::tt::member_object, (&)[2], (&)[2])
-
-void member_object_test_14()
-{
- BOOST_CHECK_TYPE(t, ::tt::member_object<int (t::*)>::type);
- BOOST_CHECK_TYPE(t, ::tt::member_object<int (t::*const)>::type);
- BOOST_CHECK_TYPE(t, ::tt::member_object<int (t::*const volatile)>::type);
- BOOST_CHECK_TYPE(t, ::tt::member_object<int (t::*volatile)>::type);
- BOOST_CHECK_TYPE(t, ::tt::member_object<const int (t::*)>::type);
- BOOST_CHECK_TYPE(t, ::tt::member_object<const int (t::*const)>::type);
- BOOST_CHECK_TYPE(t, ::tt::member_object<const int (t::*const volatile)>::type);
- BOOST_CHECK_TYPE(t, ::tt::member_object<const int (t::*volatile)>::type);
-
- BOOST_CHECK_TYPE(t, ::tt::member_object<int (t::*)(short)>::type);
- BOOST_CHECK_TYPE(t, ::tt::member_object<int (t::*const)(short)>::type);
- BOOST_CHECK_TYPE(t, ::tt::member_object<int (t::*const volatile)(short)>::type);
- BOOST_CHECK_TYPE(t, ::tt::member_object<int (t::*volatile)(short)>::type);
-
- BOOST_CHECK_TYPE(const t, ::tt::member_object<int (t::*)(short)const>::type);
- BOOST_CHECK_TYPE(const t, ::tt::member_object<int (t::*const)(short)const>::type);
- BOOST_CHECK_TYPE(const t, ::tt::member_object<int (t::*const volatile)(short)const>::type);
- BOOST_CHECK_TYPE(const t, ::tt::member_object<int (t::*volatile)(short)const>::type);
-}
-
-TT_TEST_BEGIN(member_object)
-
- member_object_test_1();
- member_object_test_2();
- member_object_test_4();
- member_object_test_5();
- member_object_test_6();
- member_object_test_8();
- member_object_test_9();
- member_object_test_12();
- member_object_test_13();
- member_object_test_14();
-
-TT_TEST_END
-

Deleted: sandbox/type_traits/libs/type_traits/test/promote_basic_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/promote_basic_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,153 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#include <climits>
-
-#if !defined(BOOST_NO_CWCHAR)
-#include <cwchar>
-#endif
-
-#include "promote_util.hpp"
-
-struct Struct {};
-
-int main()
-{
- // char types
-
-#if CHAR_MAX <= INT_MAX
- test_cv< char, int >();
-#else
- // TODO: dead branch?
- test_cv< char, unsigned int >();
-#endif
-
- test_cv< signed char, int >();
-
-#if UCHAR_MAX <= INT_MAX
- test_cv< unsigned char, int >();
-#else
- test_cv< unsigned char, unsigned int >();
-#endif
-
-
- // short types
-
- test_cv< short int, int >();
-
-#if USHRT_MAX <= INT_MAX
- test_cv< unsigned short, int >();
-#else
- test_cv< unsigned short, unsigned int >();
-#endif
-
-
- // int and long
-
- test_cv< int, int >();
- test_cv< unsigned int, unsigned int >();
- test_cv< long, long >();
- test_cv< unsigned long, unsigned long >();
-
- // wchar_t
-
-#if !defined(BOOST_NO_CWCHAR) && defined(WCHAR_MAX) && defined(WCHAR_MIN)
-
-// Version prior to VC8 didn't allow WCHAR_MAX in #if expressions
-#if defined(BOOST_MSVC) && BOOST_MSVC < 1400
-# define BOOST_TT_AUX_WCHAR_MAX USHORT_MAX // force test_cv< wchar_t, int >
-#elif defined(WCHAR_MAX) && !defined(__APPLE__)
-# define BOOST_TT_AUX_WCHAR_MAX WCHAR_MAX
-#elif defined(__BORLANDC__) || defined(__CYGWIN__) || defined(__MINGW32__) || (defined(__BEOS__) && defined(__GNUC__))
- // No WCHAR_MIN and WCHAR_MAX, whar_t is short and unsigned:
-# define BOOST_TT_AUX_WCHAR_MAX USHORT_MAX // force test_cv< wchar_t, int >
-#elif (defined(__sgi) && (!defined(__SGI_STL_PORT) || __SGI_STL_PORT < 0x400))\
- || (defined __APPLE__)\
- || (defined(__OpenBSD__) && defined(__GNUC__))\
- || (defined(__NetBSD__) && defined(__GNUC__))\
- || (defined(__FreeBSD__) && defined(__GNUC__))\
- || (defined(__DragonFly__) && defined(__GNUC__))\
- || (defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 3) && !defined(__SGI_STL_PORT))
- // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as int.
- // - SGI MIPSpro with native library
- // - gcc 3.x on HP-UX
- // - Mac OS X with native library
- // - gcc on FreeBSD, OpenBSD and NetBSD
-# define BOOST_TT_AUX_WCHAR_MAX INT_MAX // force test_cv< wchar_t, int >
-#elif defined(__hpux) && defined(__GNUC__) && (__GNUC__ == 2) && !defined(__SGI_STL_PORT)
- // No WCHAR_MIN and WCHAR_MAX, wchar_t has the same range as unsigned int.
- // - gcc 2.95.x on HP-UX
- // (also, std::numeric_limits<wchar_t> appears to return the wrong values).
-# define BOOST_TT_AUX_WCHAR_MAX UINT_MAX // force test_cv< wchar_t, int >
-#endif
-
-// For this PP-logic to work we need a valid WCHAR_MAX etc:
-#if defined(BOOST_TT_AUX_WCHAR_MAX) \
- && !defined(__DECCXX) \
- && !defined(__hpux) \
- && !defined(_WIN32_WCE)
-
-#if BOOST_TT_AUX_WCHAR_MAX <= INT_MAX
- test_cv< wchar_t, int >();
-#elif WCHAR_MIN == 0 && BOOST_TT_AUX_WCHAR_MAX <= UINT_MAX
- test_cv< wchar_t, unsigned int >();
-#elif BOOST_TT_AUX_WCHAR_MAX <= LONG_MAX
- test_cv< wchar_t, long >();
-#else
- test_cv< wchar_t, unsigned long >();
-#endif
-
-#endif
-
-#undef BOOST_TT_AUX_WCHAR_MAX
-
-#endif
-
-
- // floating point promotion
-
- test_cv< float , double >();
- test_cv< double, double >();
-
-
- // Other types
-
- test_cv< Struct, Struct >();
- test_cv< void , void >();
- test_cv< void* , void* >();
-
- // Array types
-
- typedef int arr[3];
- typedef int (&arr_ref)[3];
- typedef int (*arr_ptr)[3];
-
- test_cv< arr , arr >();
- test_cv< arr_ptr, arr_ptr >();
-
- test_no_cv<arr_ref,arr_ref>();
-
-
- // Function types
-
- typedef int (fun)();
- typedef int (&fun_ref)();
- typedef int (*fun_ptr)();
-
- test_no_cv< fun , fun >();
- test_no_cv< fun_ref, fun_ref >();
- test_no_cv< fun_ptr, fun_ptr >();
-
- // Member pointer types
-
- typedef int (Struct::*mem_fun_ptr)();
- typedef int Struct::*mem_ptr;
-
- test_no_cv< mem_ptr, mem_ptr >();
- test_no_cv< mem_fun_ptr, mem_fun_ptr >();
-
- return 0;
-}
-

Deleted: sandbox/type_traits/libs/type_traits/test/promote_enum_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/promote_enum_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,152 +0,0 @@
-// Copyright 2005-2006 Alexander Nasonov.
-// 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)
-
-// Status of some compilers:
-//
-// Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
-// /Za (disable extentions) is totally broken.
-// /Ze (enable extentions) promotes UIntEnum incorrectly to int.
-// See http://lab.msdn.microsoft.com/ProductFeedback/viewfeedback.aspx?feedbackid=22b0a6b7-120f-4ca0-9136-fa1b25b26efe
-//
-// Intel 9.0.028 for Windows has a similar problem:
-// https://premier.intel.com/IssueDetail.aspx?IssueID=365073
-//
-// gcc 3.4.4 with -fshort-enums option on x86
-// Dummy value is required, otherwise gcc promotes Enum1
-// to unsigned int although USHRT_MAX <= INT_MAX.
-// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24063
-//
-// CC: Sun WorkShop 6 update 2 C++ 5.3 Patch 111685-20 2004/03/19
-// on SPARC V9 64-bit processor (-xarch=v9 flag)
-// Dummy values are required for LongEnum3 and LongEnum4.
-//
-// CC: Sun C++ 5.7 Patch 117830-03 2005/07/21
-// ICE in boost/type_traits/is_enum.hpp at line 67.
-
-
-#include <climits>
-
-#include "promote_util.hpp"
-#include <boost/detail/workaround.hpp>
-
-enum IntEnum1 { IntEnum1_min = -5 , IntEnum1_max = 5 };
-enum IntEnum2 { IntEnum2_min = SHRT_MIN, IntEnum2_max = SHRT_MAX };
-enum IntEnum3 { IntEnum3_min = INT_MIN , IntEnum3_max = INT_MAX };
-enum IntEnum4 { IntEnum4_value = INT_MAX };
-enum IntEnum5 { IntEnum5_value = INT_MIN };
-
-void test_promote_to_int()
-{
- test_cv<IntEnum1,int>();
- test_cv<IntEnum2,int>();
- test_cv<IntEnum3,int>();
- test_cv<IntEnum4,int>();
- test_cv<IntEnum5,int>();
-}
-
-
-#if !(defined(__GNUC__) && __GNUC__ == 3 && __GNUC_MINOR__ == 4 && USHRT_MAX <= INT_MAX)
-
-enum Enum1 { Enum1_value = USHRT_MAX };
-
-#else
-
-// workaround for bug #24063 in gcc 3.4
-// http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24063
-namespace gcc_short_enums_workaround {
-
-enum short_enum { value = 1 };
-
-template<bool ShortEnumsIsOn>
-struct select
-{
- // Adding negative dummy value doesn't change
- // promoted type because USHRT_MAX <= INT_MAX.
- enum type { dummy = -1, value = USHRT_MAX };
-};
-
-template<>
-struct select<false>
-{
- // No dummy value
- enum type { value = USHRT_MAX };
-};
-
-} // namespace gcc_short_enums_workaround
-
-typedef gcc_short_enums_workaround::select<
- sizeof(gcc_short_enums_workaround::short_enum) != sizeof(int)
- >::type Enum1;
-
-#endif
-
-void test_promote_to_int_or_uint()
-{
-#if USHRT_MAX <= INT_MAX
- test_cv<Enum1, int>();
-#else
- test_cv<Enum1, unsigned int>();
-#endif
-}
-
-#if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1500) ) || \
- BOOST_WORKAROUND(BOOST_INTEL_WIN, BOOST_TESTED_AT(1000))
-// Don't test UIntEnum on VC++ 8.0 and Intel for Windows 9.0,
-// they are broken. More info is on top of this file.
-#else
-
-enum UIntEnum { UIntEnum_max = UINT_MAX };
-
-void test_promote_to_uint()
-{
- test_cv< UIntEnum, unsigned int >();
-}
-
-#endif
-
-// Enums can't be promoted to [unsigned] long if sizeof(int) == sizeof(long).
-#if INT_MAX < LONG_MAX
-
-enum LongEnum1 { LongEnum1_min = -1 , LongEnum1_max = UINT_MAX };
-enum LongEnum2 { LongEnum2_min = LONG_MIN, LongEnum2_max = LONG_MAX };
-
-enum LongEnum3
-{
- LongEnum3_value = LONG_MAX
-#if defined(__SUNPRO_CC) && __SUNPRO_CC <= 0x530
- , LongEnum3_dummy = -1
-#endif
-};
-
-enum LongEnum4
-{
- LongEnum4_value = LONG_MIN
-#if defined(__SUNPRO_CC) && __SUNPRO_CC <= 0x530
- , LongEnum4_dummy = 1
-#endif
-};
-
-void test_promote_to_long()
-{
- test_cv< LongEnum1, long >();
- test_cv< LongEnum2, long >();
- test_cv< LongEnum3, long >();
- test_cv< LongEnum4, long >();
-}
-
-enum ULongEnum { ULongEnum_value = ULONG_MAX };
-
-void test_promote_to_ulong()
-{
- test_cv< ULongEnum, unsigned long >();
-}
-
-#endif // #if INT_MAX < LONG_MAX
-
-int main()
-{
- return 0;
-}
-

Deleted: sandbox/type_traits/libs/type_traits/test/promote_mpl_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/promote_mpl_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,47 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#include <boost/mpl/at.hpp>
-#include <boost/mpl/lambda.hpp>
-#include <boost/mpl/placeholders.hpp>
-#include <boost/mpl/transform.hpp>
-#include <boost/mpl/vector.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/promote.hpp>
-
-namespace mpl = boost::mpl;
-
-int main()
-{
- using namespace mpl::placeholders;
-
- typedef mpl::vector< char
- , signed char // 1
- , unsigned char
- , short int const // 3
- , unsigned short int
- , int volatile // 5
- , unsigned int // 6
- , long // 7
- , unsigned long // 8
- , float const // 9
- > types;
-
- typedef mpl::transform< types
- , mpl::lambda< boost::promote<_> >::type
- >::type promoted;
-
- BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,1>::type, int >::value ));
- BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,3>::type, int const >::value ));
- BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,5>::type, int volatile >::value ));
- BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,6>::type, unsigned int >::value ));
- BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,7>::type, long >::value ));
- BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,8>::type, unsigned long >::value ));
- BOOST_STATIC_ASSERT(( ::boost::is_same< mpl::at_c<promoted,9>::type, double const >::value ));
-
- return 0;
-}
-

Deleted: sandbox/type_traits/libs/type_traits/test/promote_util.hpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/promote_util.hpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,37 +0,0 @@
-// Copyright 2005 Alexander Nasonov.
-// 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)
-
-#ifndef FILE_boost_libs_type_traits_test_promote_util_hpp_INCLUDED
-#define FILE_boost_libs_type_traits_test_promote_util_hpp_INCLUDED
-
-#include <boost/type_traits/promote.hpp>
-
-#include <boost/config.hpp>
-#include <boost/static_assert.hpp>
-#include <boost/type_traits/is_same.hpp>
-
-template<class T, class Promoted>
-inline void test_no_cv()
-{
- typedef BOOST_DEDUCED_TYPENAME boost::promote<T>::type promoted;
- BOOST_STATIC_ASSERT(( boost::is_same<promoted,Promoted>::value ));
-}
-
-template<class T, class Promoted>
-inline void test_cv()
-{
- typedef BOOST_DEDUCED_TYPENAME boost::promote<T >::type promoted;
- typedef BOOST_DEDUCED_TYPENAME boost::promote<T const >::type promoted_c;
- typedef BOOST_DEDUCED_TYPENAME boost::promote<T volatile>::type promoted_v;
- typedef BOOST_DEDUCED_TYPENAME boost::promote<T const volatile>::type promoted_cv;
-
- BOOST_STATIC_ASSERT(( ::boost::is_same< promoted , Promoted >::value ));
- BOOST_STATIC_ASSERT(( ::boost::is_same< promoted_c , Promoted const >::value ));
- BOOST_STATIC_ASSERT(( ::boost::is_same< promoted_v , Promoted volatile >::value ));
- BOOST_STATIC_ASSERT(( ::boost::is_same< promoted_cv, Promoted const volatile >::value ));
-}
-
-#endif // #ifndef FILE_boost_libs_type_traits_test_promote_util_hpp_INCLUDED
-

Deleted: sandbox/type_traits/libs/type_traits/test/rank_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/rank_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,33 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/rank.hpp>
-#endif
-
-TT_TEST_BEGIN(rank)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank<int>::value, 0);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank<int[]>::value, 1);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank<int[][10]>::value, 2);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank<int[5][10]>::value, 2);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank<int[5][10][40]>::value, 3);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank<int (&)[5][10]>::value, 0);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::rank<int (*)[5][10]>::value, 0);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/remove_all_extents_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/remove_all_extents_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,59 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/remove_all_extents.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_1, ::tt::remove_all_extents, const, const)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_2, ::tt::remove_all_extents, volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST3(remove_all_extents_test_3, ::tt::remove_all_extents, [2])
-BOOST_DECL_TRANSFORM_TEST0(remove_all_extents_test_4, ::tt::remove_all_extents)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_5, ::tt::remove_all_extents, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_6, ::tt::remove_all_extents, *, *)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_7, ::tt::remove_all_extents, *volatile, *volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_8, ::tt::remove_all_extents, const [2], const)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_9, ::tt::remove_all_extents, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_10, ::tt::remove_all_extents, const*, const*)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_11, ::tt::remove_all_extents, volatile*, volatile*)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_12, ::tt::remove_all_extents, const[2][3], const)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_13, ::tt::remove_all_extents, (&)[2], (&)[2])
-BOOST_DECL_TRANSFORM_TEST3(remove_all_extents_test_14, ::tt::remove_all_extents, [])
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_15, ::tt::remove_all_extents, const [], const)
-BOOST_DECL_TRANSFORM_TEST(remove_all_extents_test_16, ::tt::remove_all_extents, const[][3], const)
-
-TT_TEST_BEGIN(remove_all_extents)
-
- remove_all_extents_test_1();
- remove_all_extents_test_2();
- remove_all_extents_test_3();
- remove_all_extents_test_4();
- remove_all_extents_test_5();
- remove_all_extents_test_6();
- remove_all_extents_test_7();
- remove_all_extents_test_8();
- remove_all_extents_test_9();
- remove_all_extents_test_10();
- remove_all_extents_test_11();
- remove_all_extents_test_12();
- remove_all_extents_test_13();
- remove_all_extents_test_14();
- remove_all_extents_test_15();
- remove_all_extents_test_16();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/remove_bounds_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/remove_bounds_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,59 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/remove_bounds.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_1, ::tt::remove_bounds, const, const)
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_2, ::tt::remove_bounds, volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST3(remove_bounds_test_3, ::tt::remove_bounds, [2])
-BOOST_DECL_TRANSFORM_TEST0(remove_bounds_test_4, ::tt::remove_bounds)
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_5, ::tt::remove_bounds, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_6, ::tt::remove_bounds, *, *)
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_7, ::tt::remove_bounds, *volatile, *volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_8, ::tt::remove_bounds, const [2], const)
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_9, ::tt::remove_bounds, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_10, ::tt::remove_bounds, const*, const*)
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_11, ::tt::remove_bounds, volatile*, volatile*)
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_12, ::tt::remove_bounds, const[2][3], const[3])
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_13, ::tt::remove_bounds, (&)[2], (&)[2])
-BOOST_DECL_TRANSFORM_TEST3(remove_bounds_test_14, ::tt::remove_bounds, [])
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_15, ::tt::remove_bounds, const [], const)
-BOOST_DECL_TRANSFORM_TEST(remove_bounds_test_16, ::tt::remove_bounds, const[][3], const[3])
-
-TT_TEST_BEGIN(remove_bounds)
-
- remove_bounds_test_1();
- remove_bounds_test_2();
- remove_bounds_test_3();
- remove_bounds_test_4();
- remove_bounds_test_5();
- remove_bounds_test_6();
- remove_bounds_test_7();
- remove_bounds_test_8();
- remove_bounds_test_9();
- remove_bounds_test_10();
- remove_bounds_test_11();
- remove_bounds_test_12();
- remove_bounds_test_13();
- remove_bounds_test_14();
- remove_bounds_test_15();
- remove_bounds_test_16();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/remove_const_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/remove_const_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,59 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/remove_const.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST3(remove_const_test_1, ::tt::remove_const, const)
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_2, ::tt::remove_const, volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_3, ::tt::remove_const, const volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST0(remove_const_test_4, ::tt::remove_const)
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_6, ::tt::remove_const, *const, *)
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_7, ::tt::remove_const, *volatile, *volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_8, ::tt::remove_const, *const volatile, *volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_9, ::tt::remove_const, *, *)
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_11, ::tt::remove_const, volatile*, volatile*)
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_12, ::tt::remove_const, const[2], [2])
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_13, ::tt::remove_const, volatile[2], volatile[2])
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_14, ::tt::remove_const, const volatile[2], volatile[2])
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_15, ::tt::remove_const, [2], [2])
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_16, ::tt::remove_const, const*, const*)
-BOOST_DECL_TRANSFORM_TEST(remove_const_test_17, ::tt::remove_const, const*const, const*)
-
-TT_TEST_BEGIN(remove_const)
-
-BOOST_CHECK_TYPE(int, int);
-
- remove_const_test_1();
- remove_const_test_2();
- remove_const_test_3();
- remove_const_test_4();
- remove_const_test_6();
- remove_const_test_7();
- remove_const_test_8();
- remove_const_test_9();
- remove_const_test_11();
- remove_const_test_12();
- remove_const_test_13();
- remove_const_test_14();
- remove_const_test_15();
- remove_const_test_16();
- remove_const_test_17();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/remove_cv_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/remove_cv_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,61 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/remove_cv.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST3(remove_cv_test_1, ::tt::remove_cv, const)
-BOOST_DECL_TRANSFORM_TEST3(remove_cv_test_2, ::tt::remove_cv, volatile)
-BOOST_DECL_TRANSFORM_TEST3(remove_cv_test_3, ::tt::remove_cv, const volatile)
-BOOST_DECL_TRANSFORM_TEST0(remove_cv_test_4, ::tt::remove_cv)
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_5, ::tt::remove_cv, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_6, ::tt::remove_cv, *const, *)
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_7, ::tt::remove_cv, *volatile, *)
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_8, ::tt::remove_cv, *const volatile, *)
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_9, ::tt::remove_cv, *, *)
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_10, ::tt::remove_cv, const*, const*)
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_11, ::tt::remove_cv, volatile*, volatile*)
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_12, ::tt::remove_cv, const[2], [2])
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_13, ::tt::remove_cv, volatile[2], [2])
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_14, ::tt::remove_cv, const volatile[2], [2])
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_15, ::tt::remove_cv, [2], [2])
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_16, ::tt::remove_cv, const*, const*)
-BOOST_DECL_TRANSFORM_TEST(remove_cv_test_17, ::tt::remove_cv, const*volatile, const*)
-
-TT_TEST_BEGIN(remove_cv)
-
- remove_cv_test_1();
- remove_cv_test_2();
- remove_cv_test_3();
- remove_cv_test_4();
- remove_cv_test_5();
- remove_cv_test_6();
- remove_cv_test_7();
- remove_cv_test_8();
- remove_cv_test_9();
- remove_cv_test_10();
- remove_cv_test_11();
- remove_cv_test_12();
- remove_cv_test_13();
- remove_cv_test_14();
- remove_cv_test_15();
- remove_cv_test_16();
- remove_cv_test_17();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/remove_extent_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/remove_extent_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,59 +0,0 @@
-
-// (C) Copyright John Maddock 2005.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/remove_extent.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_1, ::tt::remove_extent, const, const)
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_2, ::tt::remove_extent, volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST3(remove_extent_test_3, ::tt::remove_extent, [2])
-BOOST_DECL_TRANSFORM_TEST0(remove_extent_test_4, ::tt::remove_extent)
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_5, ::tt::remove_extent, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_6, ::tt::remove_extent, *, *)
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_7, ::tt::remove_extent, *volatile, *volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_8, ::tt::remove_extent, const [2], const)
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_9, ::tt::remove_extent, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_10, ::tt::remove_extent, const*, const*)
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_11, ::tt::remove_extent, volatile*, volatile*)
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_12, ::tt::remove_extent, const[2][3], const[3])
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_13, ::tt::remove_extent, (&)[2], (&)[2])
-BOOST_DECL_TRANSFORM_TEST3(remove_extent_test_14, ::tt::remove_extent, [])
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_15, ::tt::remove_extent, const [], const)
-BOOST_DECL_TRANSFORM_TEST(remove_extent_test_16, ::tt::remove_extent, const[][3], const[3])
-
-TT_TEST_BEGIN(remove_extent)
-
- remove_extent_test_1();
- remove_extent_test_2();
- remove_extent_test_3();
- remove_extent_test_4();
- remove_extent_test_5();
- remove_extent_test_6();
- remove_extent_test_7();
- remove_extent_test_8();
- remove_extent_test_9();
- remove_extent_test_10();
- remove_extent_test_11();
- remove_extent_test_12();
- remove_extent_test_13();
- remove_extent_test_14();
- remove_extent_test_15();
- remove_extent_test_16();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/remove_mem_pointer_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/remove_mem_pointer_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,81 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/remove_member_pointer.hpp>
-#endif
-
-struct t{};
-
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_1, ::tt::remove_member_pointer, const, const)
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_2, ::tt::remove_member_pointer, volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST3(remove_member_pointer_test_3, ::tt::remove_member_pointer, (t::*))
-BOOST_DECL_TRANSFORM_TEST0(remove_member_pointer_test_4, ::tt::remove_member_pointer)
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_5, ::tt::remove_member_pointer, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_6, ::tt::remove_member_pointer, &, &)
-BOOST_DECL_TRANSFORM_TEST3(remove_member_pointer_test_7, ::tt::remove_member_pointer, (t::*volatile))
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_8, ::tt::remove_member_pointer, const [2], const[2])
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_9, ::tt::remove_member_pointer, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_10, ::tt::remove_member_pointer, const (t::*), const)
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_11, ::tt::remove_member_pointer, volatile (t::*), volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_12, ::tt::remove_member_pointer, const[2][3], const[2][3])
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_13, ::tt::remove_member_pointer, (&)[2], (&)[2])
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_14, ::tt::remove_member_pointer, * (t::*), *)
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_15, ::tt::remove_member_pointer, const (t::*)[2], const[2])
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_16, ::tt::remove_member_pointer, (t::*)(double), (double))
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_17, ::tt::remove_member_pointer, (t::*const)(double), (double))
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_18, ::tt::remove_member_pointer, (t::*volatile)(double), (double))
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_19, ::tt::remove_member_pointer, (t::*const volatile)(double), (double))
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_20, ::tt::remove_member_pointer, (t::*)(double)const, (double))
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_21, ::tt::remove_member_pointer, (t::*const)(double)volatile, (double))
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_22, ::tt::remove_member_pointer, (t::*volatile)(double)const volatile, (double))
-BOOST_DECL_TRANSFORM_TEST(remove_member_pointer_test_23, ::tt::remove_member_pointer, (t::*const volatile)(double)const, (double))
-
-void remove_member_pointer_test_24()
-{
-#ifdef BOOST_MSVC
- typedef int f1(short);
- BOOST_CHECK_TYPE(f1, ::tt::remove_member_pointer<f1 (t::*)>::type);
- typedef int __fastcall f2(short);
- BOOST_CHECK_TYPE(f2, ::tt::remove_member_pointer<f2 (t::*)>::type);
- typedef int __cdecl f3(short);
- BOOST_CHECK_TYPE(f3, ::tt::remove_member_pointer<f3 (t::*)>::type);
-#endif
-}
-
-TT_TEST_BEGIN(remove_member_pointer)
-
- remove_member_pointer_test_1();
- remove_member_pointer_test_2();
- remove_member_pointer_test_3();
- remove_member_pointer_test_4();
- remove_member_pointer_test_5();
- remove_member_pointer_test_6();
- remove_member_pointer_test_7();
- remove_member_pointer_test_8();
- remove_member_pointer_test_9();
- remove_member_pointer_test_10();
- remove_member_pointer_test_11();
- remove_member_pointer_test_12();
- remove_member_pointer_test_13();
- remove_member_pointer_test_14();
- remove_member_pointer_test_15();
- remove_member_pointer_test_16();
- remove_member_pointer_test_17();
- remove_member_pointer_test_18();
- remove_member_pointer_test_19();
- remove_member_pointer_test_20();
- remove_member_pointer_test_21();
- remove_member_pointer_test_22();
- remove_member_pointer_test_23();
- remove_member_pointer_test_24();
-
-TT_TEST_END
-

Deleted: sandbox/type_traits/libs/type_traits/test/remove_pointer_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/remove_pointer_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,53 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/remove_pointer.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_1, ::tt::remove_pointer, const, const)
-BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_2, ::tt::remove_pointer, volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST3(remove_pointer_test_3, ::tt::remove_pointer, *)
-BOOST_DECL_TRANSFORM_TEST0(remove_pointer_test_4, ::tt::remove_pointer)
-BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_5, ::tt::remove_pointer, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_6, ::tt::remove_pointer, &, &)
-BOOST_DECL_TRANSFORM_TEST3(remove_pointer_test_7, ::tt::remove_pointer, *volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_8, ::tt::remove_pointer, const [2], const[2])
-BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_9, ::tt::remove_pointer, const &, const&)
-BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_10, ::tt::remove_pointer, const*, const)
-BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_11, ::tt::remove_pointer, volatile*, volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_12, ::tt::remove_pointer, const[2][3], const[2][3])
-BOOST_DECL_TRANSFORM_TEST(remove_pointer_test_13, ::tt::remove_pointer, (&)[2], (&)[2])
-
-TT_TEST_BEGIN(remove_pointer)
-
- remove_pointer_test_1();
- remove_pointer_test_2();
- remove_pointer_test_3();
- remove_pointer_test_4();
- remove_pointer_test_5();
- remove_pointer_test_6();
- remove_pointer_test_7();
- remove_pointer_test_8();
- remove_pointer_test_9();
- remove_pointer_test_10();
- remove_pointer_test_11();
- remove_pointer_test_12();
- remove_pointer_test_13();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/remove_reference_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/remove_reference_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,53 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/remove_reference.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(remove_reference_test_1, ::tt::remove_reference, const, const)
-BOOST_DECL_TRANSFORM_TEST(remove_reference_test_2, ::tt::remove_reference, volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST3(remove_reference_test_3, ::tt::remove_reference, &)
-BOOST_DECL_TRANSFORM_TEST0(remove_reference_test_4, ::tt::remove_reference)
-BOOST_DECL_TRANSFORM_TEST(remove_reference_test_5, ::tt::remove_reference, const &, const)
-BOOST_DECL_TRANSFORM_TEST(remove_reference_test_6, ::tt::remove_reference, *, *)
-BOOST_DECL_TRANSFORM_TEST(remove_reference_test_7, ::tt::remove_reference, *volatile, *volatile)
-BOOST_DECL_TRANSFORM_TEST3(remove_reference_test_8, ::tt::remove_reference, &)
-BOOST_DECL_TRANSFORM_TEST(remove_reference_test_9, ::tt::remove_reference, const &, const)
-BOOST_DECL_TRANSFORM_TEST(remove_reference_test_10, ::tt::remove_reference, const*, const*)
-BOOST_DECL_TRANSFORM_TEST(remove_reference_test_11, ::tt::remove_reference, volatile*, volatile*)
-BOOST_DECL_TRANSFORM_TEST(remove_reference_test_12, ::tt::remove_reference, const[2], const[2])
-BOOST_DECL_TRANSFORM_TEST(remove_reference_test_13, ::tt::remove_reference, (&)[2], [2])
-
-TT_TEST_BEGIN(remove_reference)
-
- remove_reference_test_1();
- remove_reference_test_2();
- remove_reference_test_3();
- remove_reference_test_4();
- remove_reference_test_5();
- remove_reference_test_6();
- remove_reference_test_7();
- remove_reference_test_8();
- remove_reference_test_9();
- remove_reference_test_10();
- remove_reference_test_11();
- remove_reference_test_12();
- remove_reference_test_13();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/remove_volatile_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/remove_volatile_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,61 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/remove_volatile.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_1, ::tt::remove_volatile, const, const)
-BOOST_DECL_TRANSFORM_TEST3(remove_volatile_test_2, ::tt::remove_volatile, volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_3, ::tt::remove_volatile, const volatile, const)
-BOOST_DECL_TRANSFORM_TEST0(remove_volatile_test_4, ::tt::remove_volatile)
-BOOST_DECL_TRANSFORM_TEST0(remove_volatile_test_5, ::tt::remove_volatile)
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_6, ::tt::remove_volatile, *const, *const)
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_7, ::tt::remove_volatile, *volatile, *)
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_8, ::tt::remove_volatile, *const volatile, *const)
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_9, ::tt::remove_volatile, *, *)
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_10, ::tt::remove_volatile, *, *)
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_11, ::tt::remove_volatile, volatile*, volatile*)
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_12, ::tt::remove_volatile, const[2], const[2])
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_13, ::tt::remove_volatile, volatile[2], [2])
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_14, ::tt::remove_volatile, const volatile[2], const[2])
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_15, ::tt::remove_volatile, [2], [2])
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_16, ::tt::remove_volatile, const*, const*)
-BOOST_DECL_TRANSFORM_TEST(remove_volatile_test_17, ::tt::remove_volatile, const*volatile, const*)
-
-TT_TEST_BEGIN(remove_volatile)
-
- remove_volatile_test_1();
- remove_volatile_test_2();
- remove_volatile_test_3();
- remove_volatile_test_4();
- remove_volatile_test_5();
- remove_volatile_test_6();
- remove_volatile_test_7();
- remove_volatile_test_8();
- remove_volatile_test_9();
- remove_volatile_test_10();
- remove_volatile_test_11();
- remove_volatile_test_12();
- remove_volatile_test_13();
- remove_volatile_test_14();
- remove_volatile_test_15();
- remove_volatile_test_16();
- remove_volatile_test_17();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/tricky_abstract_type_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/tricky_abstract_type_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,31 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_empty.hpp>
-# include <boost/type_traits/is_stateless.hpp>
-#endif
-
-TT_TEST_BEGIN(tricky_abstract_type_test)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_empty<test_abc1>::value, false);
-#ifndef TEST_STD
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_stateless<test_abc1>::value, false);
-#endif
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/tricky_add_pointer_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/tricky_add_pointer_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,40 +0,0 @@
-
-// (C) Copyright John Maddock 2002.
-// 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.tt.org/LICENSE_1_0.txt)
-
-#include "test.hpp"
-#include "check_type.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/add_pointer.hpp>
-#endif
-
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_5, ::tt::add_pointer, const &, const*)
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_6, ::tt::add_pointer, &, *)
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_8, ::tt::add_pointer, const [2], const (*)[2])
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_9, ::tt::add_pointer, const &, const*)
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_12, ::tt::add_pointer, const[2][3], const (*)[2][3])
-BOOST_DECL_TRANSFORM_TEST(add_pointer_test_13, ::tt::add_pointer, (&)[2], (*)[2])
-
-
-TT_TEST_BEGIN(tricky_add_pointer_test)
-
- add_pointer_test_5();
- add_pointer_test_6();
- add_pointer_test_8();
- add_pointer_test_9();
- add_pointer_test_12();
- add_pointer_test_13();
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/tricky_function_type_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/tricky_function_type_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,104 +0,0 @@
-
-// (C) Copyright John Maddock 2002.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_function.hpp>
-# include <boost/type_traits/is_float.hpp>
-# include <boost/type_traits/is_enum.hpp>
-# include <boost/type_traits/is_class.hpp>
-# include <boost/type_traits/is_scalar.hpp>
-# include <boost/type_traits/is_pod.hpp>
-# include <boost/type_traits/has_trivial_constructor.hpp>
-# include <boost/type_traits/has_trivial_copy.hpp>
-# include <boost/type_traits/has_trivial_assign.hpp>
-# include <boost/type_traits/has_trivial_destructor.hpp>
-# include <boost/type_traits/is_compound.hpp>
-# include <boost/type_traits/is_base_of.hpp>
-# include <boost/type_traits/is_convertible.hpp>
-#endif
-
-TT_TEST_BEGIN(tricky_function_type_test)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<const int&>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<int (&)(int)>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<foo0_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<foo0_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<foo0_t, foo0_t>::value), true); // TR1 required behaviour (new to 1.34)
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<foo0_t, int>::value), false);
-
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<foo1_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<foo1_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<foo1_t>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<foo2_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<foo2_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<foo2_t>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<foo3_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<foo3_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<foo3_t>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<foo4_t>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_constructor<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_copy<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_assign<foo4_t>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::has_trivial_destructor<foo4_t>::value, false);
-
-typedef void foo5_t(int, bool, int*, int[], int, int, int, int, int ...);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<foo5_t>::value, true);
-
-typedef void (test_abc1::*vproc1)(...);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<vproc1>::value, true);
-typedef void (test_abc1::*vproc2)(int, char, long, ...);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<vproc2>::value, true);
-typedef void (test_abc1::*vproc3)(int, char, long, long, ...)const;
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<vproc3>::value, true);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/tricky_incomplete_type_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/tricky_incomplete_type_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,37 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits.hpp>
-#endif
-
-TT_TEST_BEGIN(tricky_incomplete_type_test)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<incomplete_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_compound<incomplete_type>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<incomplete_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_scalar<incomplete_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<int[]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<int[][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<const int[]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<const int[][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<volatile int[]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<volatile int[][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<const volatile int[]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_array<const volatile int[][3]>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<incomplete_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_function<incomplete_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<incomplete_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<incomplete_type>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<incomplete_type>::value, false);
-
-TT_TEST_END
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/tricky_is_enum_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/tricky_is_enum_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,27 +0,0 @@
-
-// (C) Copyright Dave Abrahams 2003. Use, modification and distribution is
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_enum.hpp>
-#endif
-
-struct convertible_to_anything
-{
- template<typename T> operator T() { return 0; }
-};
-
-
-TT_TEST_BEGIN(is_enum)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<convertible_to_anything>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_enum<int[] >::value, false);
-
-TT_TEST_END
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/tricky_partial_spec_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/tricky_partial_spec_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,123 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-#include <boost/type_traits/alignment_of.hpp>
-#include <boost/type_traits/has_nothrow_assign.hpp>
-#include <boost/type_traits/has_nothrow_constructor.hpp>
-#include <boost/type_traits/has_nothrow_copy.hpp>
-#include <boost/type_traits/is_base_and_derived.hpp>
-#include <boost/type_traits/is_base_of.hpp>
-#include <boost/type_traits/is_same.hpp>
-#include <boost/type_traits/is_convertible.hpp>
-#include <boost/type_traits/is_polymorphic.hpp>
-#include <boost/type_traits/is_member_pointer.hpp>
-#include <boost/type_traits/is_member_object_pointer.hpp>
-#include <boost/type_traits/is_member_function_pointer.hpp>
-#include <boost/type_traits/is_pointer.hpp>
-#endif
-#include <stdexcept>
-#include <new>
-#include <exception>
-
-//
-// VC++ emits an awful lot of warnings unless we define these:
-#ifdef BOOST_MSVC
-# pragma warning(disable:4244)
-#endif
-
-
-template <class T>
-struct align_calc
-{
- char padding;
- T instance;
- static std::ptrdiff_t get()
- {
- static align_calc<T> a;
- return reinterpret_cast<const char*>(&(a.instance)) - reinterpret_cast<const char*>(&(a.padding));
- }
-};
-
-#define ALIGNOF(x) align_calc<x>::get()
-
-
-TT_TEST_BEGIN(tricky_partial_specialization_test)
-//
-// corner cases which don't compile without partial specialization
-// support:
-//
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<char&>::value, ALIGNOF(void*));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<char (&)(int)>::value, ALIGNOF(void*));
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::alignment_of<char(&)[4]>::value, ALIGNOF(void*));
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Base&,Derived>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Base&,Derived&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Base,Derived&>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_base_of<Base,void>::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<void, int>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<void, void>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<void, const void>::value), false);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<test_abc1, test_abc1>::value), true);
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_same<test_abc1, const test_abc1>::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT((::tt::is_convertible<void,float>::value), false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<const UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<volatile empty_UDT>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<const VB>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<const volatile VD>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<const test_abc1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<volatile test_abc2>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<const std::exception>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<const std::bad_alloc>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<const std::runtime_error>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<const std::out_of_range>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_polymorphic<const std::range_error>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<const f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<volatile f1>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pointer<const volatile f1>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<const f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<const mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<volatile mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<const volatile mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<const mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<volatile mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_pointer<const volatile mf3>::value, true);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<const f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<const mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<volatile mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<const volatile mp>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<const mf3>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<volatile mf3>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_object_pointer<const volatile mf3>::value, false);
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<const f1>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<const mp>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<volatile mp>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<const volatile mp>::value, false);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<const mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<volatile mf3>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_member_function_pointer<const volatile mf3>::value, true);
-
-TT_TEST_END
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/type_with_alignment_test.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/type_with_alignment_test.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,112 +0,0 @@
-
-// (C) Copyright John Maddock 2000.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/alignment_of.hpp>
-# include <boost/type_traits/type_with_alignment.hpp>
-# include <boost/type_traits/is_pod.hpp>
-#endif
-
-#if defined(BOOST_MSVC) || (defined(BOOST_INTEL) && defined(_MSC_VER))
-#if (_MSC_VER >= 1400) && defined(_M_IX86)
-#include <xmmintrin.h>
-#endif
-struct __declspec(align(8)) a8 { char m[8]; };
-struct __declspec(align(16)) a16 { char m[16]; };
-struct __declspec(align(32)) a32 { char m[32]; };
-struct __declspec(align(64)) a64 { char m[64]; };
-struct __declspec(align(128)) a128 { char m[128]; };
-#endif
-
-void check_call2(...){}
-
-template <class T>
-void check_call(const T& v)
-{
- check_call2(v);
-}
-
-#define TYPE_WITH_ALIGNMENT_TEST(T)\
-{\
-std::cout << "\ntesting type " << typeid(T).name() << std::endl;\
-std::cout << "Alignment of T is " << ::tt::alignment_of< T >::value << std::endl;\
-std::cout << "Aligned type is " << typeid(::tt::type_with_alignment< ::tt::alignment_of< T >::value>::type).name() << std::endl;\
-std::cout << "Alignment of aligned type is " << ::tt::alignment_of<\
- ::tt::type_with_alignment<\
- ::tt::alignment_of< T >::value\
- >::type\
->::value << std::endl;\
-BOOST_CHECK(::tt::alignment_of<\
- ::tt::type_with_alignment<\
- ::tt::alignment_of< T >::value\
- >::type\
- >::value == ::boost::alignment_of< T >::value);\
-BOOST_CHECK(::tt::is_pod<\
- ::tt::type_with_alignment<\
- ::tt::alignment_of< T >::value>::type\
- >::value);\
-}
-#define TYPE_WITH_ALIGNMENT_TEST_EX(T)\
- TYPE_WITH_ALIGNMENT_TEST(T)\
-{\
- ::tt::type_with_alignment<\
- ::tt::alignment_of< T >::value\
- >::type val;\
- check_call(val);\
-}
-
-
-TT_TEST_BEGIN(type_with_alignment)
-
-TYPE_WITH_ALIGNMENT_TEST_EX(char)
-TYPE_WITH_ALIGNMENT_TEST_EX(short)
-TYPE_WITH_ALIGNMENT_TEST_EX(int)
-TYPE_WITH_ALIGNMENT_TEST_EX(long)
-TYPE_WITH_ALIGNMENT_TEST_EX(float)
-TYPE_WITH_ALIGNMENT_TEST_EX(double)
-TYPE_WITH_ALIGNMENT_TEST_EX(long double)
-
-#ifdef BOOST_HAS_LONG_LONG
-TYPE_WITH_ALIGNMENT_TEST_EX(::boost::long_long_type)
-#endif
-#ifdef BOOST_HAS_MS_INT64
-TYPE_WITH_ALIGNMENT_TEST_EX(__int64)
-#endif
-TYPE_WITH_ALIGNMENT_TEST_EX(int[4])
-TYPE_WITH_ALIGNMENT_TEST_EX(int(*)(int))
-TYPE_WITH_ALIGNMENT_TEST_EX(int*)
-TYPE_WITH_ALIGNMENT_TEST_EX(VB)
-TYPE_WITH_ALIGNMENT_TEST_EX(VD)
-TYPE_WITH_ALIGNMENT_TEST_EX(enum_UDT)
-TYPE_WITH_ALIGNMENT_TEST_EX(mf2)
-TYPE_WITH_ALIGNMENT_TEST_EX(POD_UDT)
-TYPE_WITH_ALIGNMENT_TEST_EX(empty_UDT)
-TYPE_WITH_ALIGNMENT_TEST_EX(union_UDT)
-
-#if defined(BOOST_MSVC) || (defined(BOOST_INTEL) && defined(_MSC_VER))
-#if (_MSC_VER >= 1400) && defined(_M_IX86)
-TYPE_WITH_ALIGNMENT_TEST(__m128)
-TYPE_WITH_ALIGNMENT_TEST(__m64)
-#endif
-TYPE_WITH_ALIGNMENT_TEST(a8)
-TYPE_WITH_ALIGNMENT_TEST(a16)
-TYPE_WITH_ALIGNMENT_TEST(a32)
-#endif
-
-TT_TEST_END
-
-
-
-
-
-
-
-
-

Deleted: sandbox/type_traits/libs/type_traits/test/udt_specialisations.cpp
==============================================================================
--- sandbox/type_traits/libs/type_traits/test/udt_specialisations.cpp 2011-10-06 22:06:22 EDT (Thu, 06 Oct 2011)
+++ (empty file)
@@ -1,48 +0,0 @@
-
-// (C) Copyright John Maddock 2004.
-// 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 "test.hpp"
-#include "check_integral_constant.hpp"
-#ifdef TEST_STD
-# include <type_traits>
-#else
-# include <boost/type_traits/is_pod.hpp>
-# include <boost/type_traits/is_class.hpp>
-# include <boost/type_traits/is_union.hpp>
-#endif
-
-struct my_pod{};
-struct my_union
-{
- char c;
- int i;
-};
-
-namespace tt
-{
-template<>
-struct is_pod<my_pod>
- : public mpl::true_{};
-template<>
-struct is_pod<my_union>
- : public mpl::true_{};
-template<>
-struct is_union<my_union>
- : public mpl::true_{};
-template<>
-struct is_class<my_union>
- : public mpl::false_{};
-}
-
-TT_TEST_BEGIN(is_pod)
-
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<my_pod>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_pod<my_union>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_union<my_union>::value, true);
-BOOST_CHECK_INTEGRAL_CONSTANT(::tt::is_class<my_union>::value, false);
-
-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