diff --git a/include/boost/typeof/compliant/concatenate.hpp b/include/boost/typeof/compliant/concatenate.hpp index 6e77cf3..c5fd2d2 100755 --- a/include/boost/typeof/compliant/concatenate.hpp +++ b/include/boost/typeof/compliant/concatenate.hpp @@ -33,9 +33,9 @@ , BOOST_PP_CAT(P, n)>::type #define BOOST_TYPEOF_ENCODE_PARAMS(n, ID) \ - BOOST_PP_REPEAT(n, BOOST_TYPEOF_ENCODE_PARAMS_BEGIN, BOOST_PP_EMPTY()) \ + BOOST_PP_REPEAT(n, BOOST_TYPEOF_ENCODE_PARAMS_BEGIN, ~) \ typename BOOST_TYPEOF_PUSH_BACK >::type \ - BOOST_PP_REPEAT(n, BOOST_TYPEOF_ENCODE_PARAMS_END, BOOST_PP_EMPTY()) + BOOST_PP_REPEAT(n, BOOST_TYPEOF_ENCODE_PARAMS_END, ~) // constant-time push_back for mpl::vector // to be removed once real one is available from MPL @@ -58,7 +58,7 @@ ) \ namespace boost{namespace type_of{namespace detail{ - BOOST_TYPEOF_implement_push_back(); + BOOST_TYPEOF_implement_push_back() }}} #undef BOOST_TYPEOF_spec_push_back diff --git a/include/boost/typeof/register_fundamental.hpp b/include/boost/typeof/register_fundamental.hpp index 70ca569..e8ab8ad 100755 --- a/include/boost/typeof/register_fundamental.hpp +++ b/include/boost/typeof/register_fundamental.hpp @@ -57,7 +57,7 @@ BOOST_TYPEOF_REGISTER_TYPE(__int64) #endif #ifdef BOOST_TYPEOF_COMPLIANT -BOOST_TYPEOF_REGISTER_TYPE(void); +BOOST_TYPEOF_REGISTER_TYPE(void) #endif #endif//BOOST_TYPEOF_REGISTER_FUNDAMENTAL_HPP_INCLUDED diff --git a/test/compliant/lambda/register.hpp b/test/compliant/lambda/register.hpp index c770732..3e65563 100755 --- a/test/compliant/lambda/register.hpp +++ b/test/compliant/lambda/register.hpp @@ -12,19 +12,19 @@ #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() // will pick up shortest -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::tuples::tuple, 10); -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::tuples::tuple, 2); +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::tuples::tuple, 10) +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::tuples::tuple, 2) -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::lambda::lambda_functor, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::lambda::lambda_functor_base, 2); -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::lambda::relational_action, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::lambda::logical_action, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::lambda::other_action, 1); -BOOST_TYPEOF_REGISTER_TYPE(boost::lambda::equal_action); -BOOST_TYPEOF_REGISTER_TYPE(boost::lambda::greater_action); -BOOST_TYPEOF_REGISTER_TYPE(boost::lambda::less_action); -BOOST_TYPEOF_REGISTER_TYPE(boost::lambda::and_action); -BOOST_TYPEOF_REGISTER_TYPE(boost::lambda::subscript_action); -BOOST_TYPEOF_REGISTER_TEMPLATE_X(boost::lambda::placeholder, (int)); +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::lambda::lambda_functor, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::lambda::lambda_functor_base, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::lambda::relational_action, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::lambda::logical_action, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::lambda::other_action, 1) +BOOST_TYPEOF_REGISTER_TYPE(boost::lambda::equal_action) +BOOST_TYPEOF_REGISTER_TYPE(boost::lambda::greater_action) +BOOST_TYPEOF_REGISTER_TYPE(boost::lambda::less_action) +BOOST_TYPEOF_REGISTER_TYPE(boost::lambda::and_action) +BOOST_TYPEOF_REGISTER_TYPE(boost::lambda::subscript_action) +BOOST_TYPEOF_REGISTER_TEMPLATE_X(boost::lambda::placeholder, (int)) #endif//LAMBDA_REGISTER_HPP_INCLUDED diff --git a/test/compliant/spirit/register.hpp b/test/compliant/spirit/register.hpp index e99cd2e..259b498 100755 --- a/test/compliant/spirit/register.hpp +++ b/test/compliant/spirit/register.hpp @@ -10,83 +10,83 @@ #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::action, 2); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::binary, 3); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::chseq, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::ref_const_ref_actor, 3); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::ref_value_actor, 2); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::strlit, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::unary, 2); -BOOST_TYPEOF_REGISTER_TYPE(spirit::alnum_parser); -BOOST_TYPEOF_REGISTER_TYPE(spirit::alpha_parser); -BOOST_TYPEOF_REGISTER_TYPE(spirit::alternative_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::alternative, 2); -BOOST_TYPEOF_REGISTER_TYPE(spirit::anychar_parser); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::as_lower_scanner, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::assign_action); -BOOST_TYPEOF_REGISTER_TYPE(spirit::blank_parser); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::bounded_gen, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::bounded, 2); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::char_parser, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::chlit, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::cntrl_parser); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::contiguous, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::difference_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::difference, 2); -BOOST_TYPEOF_REGISTER_TYPE(spirit::digit_parser); -BOOST_TYPEOF_REGISTER_TYPE(spirit::empty_match_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::empty_match_parser, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::end_parser); -BOOST_TYPEOF_REGISTER_TYPE(spirit::eol_parser); -BOOST_TYPEOF_REGISTER_TYPE(spirit::epsilon_parser); -BOOST_TYPEOF_REGISTER_TYPE(spirit::exclusive_or_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::exclusive_or, 2); -BOOST_TYPEOF_REGISTER_TYPE(spirit::graph_parser); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::inhibit_case_iteration_policy, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::inhibit_case_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::inhibit_case, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::intersection_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::intersection, 2); -BOOST_TYPEOF_REGISTER_TYPE(spirit::kleene_star_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::kleene_star, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::lexeme_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::lexeme_scanner, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::longest_alternative, 2); -BOOST_TYPEOF_REGISTER_TYPE(spirit::longest_parser_gen); -BOOST_TYPEOF_REGISTER_TYPE(spirit::lower_parser); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::max_bounded_gen, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::max_bounded, 2); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::min_bounded_gen, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::min_bounded, 2); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::negated_char_parser, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::negated_empty_match_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::negated_empty_match_parser, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::no_actions_action_policy, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::no_actions_scanner, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::no_skipper_iteration_policy, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::nothing_parser); -BOOST_TYPEOF_REGISTER_TYPE(spirit::optional_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::optional, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::positive_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::positive, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::print_parser); -BOOST_TYPEOF_REGISTER_TYPE(spirit::punct_parser); -BOOST_TYPEOF_REGISTER_TYPE(spirit::push_back_action); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::range, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::real_parser_policies, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::real_parser, 2); -BOOST_TYPEOF_REGISTER_TYPE(spirit::sequence_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::sequence, 2); -BOOST_TYPEOF_REGISTER_TYPE(spirit::sequential_or_parser_gen); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::sequential_or, 2); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::shortest_alternative, 2); -BOOST_TYPEOF_REGISTER_TYPE(spirit::shortest_parser_gen); -BOOST_TYPEOF_REGISTER_TYPE(spirit::sign_parser); -BOOST_TYPEOF_REGISTER_TYPE(spirit::space_parser); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::strict_real_parser_policies, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::strict_ureal_parser_policies, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::upper_parser); -BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::ureal_parser_policies, 1); -BOOST_TYPEOF_REGISTER_TYPE(spirit::xdigit_parser); +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::action, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::binary, 3) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::chseq, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::ref_const_ref_actor, 3) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::ref_value_actor, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::strlit, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::unary, 2) +BOOST_TYPEOF_REGISTER_TYPE(spirit::alnum_parser) +BOOST_TYPEOF_REGISTER_TYPE(spirit::alpha_parser) +BOOST_TYPEOF_REGISTER_TYPE(spirit::alternative_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::alternative, 2) +BOOST_TYPEOF_REGISTER_TYPE(spirit::anychar_parser) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::as_lower_scanner, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::assign_action) +BOOST_TYPEOF_REGISTER_TYPE(spirit::blank_parser) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::bounded_gen, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::bounded, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::char_parser, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::chlit, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::cntrl_parser) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::contiguous, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::difference_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::difference, 2) +BOOST_TYPEOF_REGISTER_TYPE(spirit::digit_parser) +BOOST_TYPEOF_REGISTER_TYPE(spirit::empty_match_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::empty_match_parser, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::end_parser) +BOOST_TYPEOF_REGISTER_TYPE(spirit::eol_parser) +BOOST_TYPEOF_REGISTER_TYPE(spirit::epsilon_parser) +BOOST_TYPEOF_REGISTER_TYPE(spirit::exclusive_or_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::exclusive_or, 2) +BOOST_TYPEOF_REGISTER_TYPE(spirit::graph_parser) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::inhibit_case_iteration_policy, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::inhibit_case_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::inhibit_case, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::intersection_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::intersection, 2) +BOOST_TYPEOF_REGISTER_TYPE(spirit::kleene_star_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::kleene_star, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::lexeme_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::lexeme_scanner, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::longest_alternative, 2) +BOOST_TYPEOF_REGISTER_TYPE(spirit::longest_parser_gen) +BOOST_TYPEOF_REGISTER_TYPE(spirit::lower_parser) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::max_bounded_gen, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::max_bounded, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::min_bounded_gen, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::min_bounded, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::negated_char_parser, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::negated_empty_match_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::negated_empty_match_parser, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::no_actions_action_policy, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::no_actions_scanner, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::no_skipper_iteration_policy, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::nothing_parser) +BOOST_TYPEOF_REGISTER_TYPE(spirit::optional_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::optional, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::positive_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::positive, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::print_parser) +BOOST_TYPEOF_REGISTER_TYPE(spirit::punct_parser) +BOOST_TYPEOF_REGISTER_TYPE(spirit::push_back_action) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::range, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::real_parser_policies, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::real_parser, 2) +BOOST_TYPEOF_REGISTER_TYPE(spirit::sequence_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::sequence, 2) +BOOST_TYPEOF_REGISTER_TYPE(spirit::sequential_or_parser_gen) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::sequential_or, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::shortest_alternative, 2) +BOOST_TYPEOF_REGISTER_TYPE(spirit::shortest_parser_gen) +BOOST_TYPEOF_REGISTER_TYPE(spirit::sign_parser) +BOOST_TYPEOF_REGISTER_TYPE(spirit::space_parser) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::strict_real_parser_policies, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::strict_ureal_parser_policies, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::upper_parser) +BOOST_TYPEOF_REGISTER_TEMPLATE(spirit::ureal_parser_policies, 1) +BOOST_TYPEOF_REGISTER_TYPE(spirit::xdigit_parser) #endif//SPIRIT_REGISTER_HPP_INCLUDED diff --git a/test/main.cpp b/test/main.cpp index c3e29fe..4d38a38 100755 --- a/test/main.cpp +++ b/test/main.cpp @@ -43,7 +43,7 @@ struct typeof_test struct x {}; -BOOST_TYPEOF_REGISTER_TYPE(x); +BOOST_TYPEOF_REGISTER_TYPE(x) template struct with_integrals @@ -58,7 +58,7 @@ BOOST_TYPEOF_REGISTER_TEMPLATE_X(with_integrals, (bool) (bool) (unsigned) - ); + ) #pragma message("integral...") BOOST_STATIC_ASSERT((typeof_test >::value)); @@ -119,7 +119,7 @@ void lvalue_typeof_test() #pragma message("Noncopyable...") -BOOST_TYPEOF_REGISTER_TYPE(boost::noncopyable); +BOOST_TYPEOF_REGISTER_TYPE(boost::noncopyable) struct noncopiable_test { diff --git a/test/mpl/register.hpp b/test/mpl/register.hpp index a4c6188..3ff8c5e 100755 --- a/test/mpl/register.hpp +++ b/test/mpl/register.hpp @@ -10,10 +10,10 @@ #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() -BOOST_TYPEOF_REGISTER_TYPE(boost::mpl::vector0<>); -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::vector1, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::vector2, 2); -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::vector3, 3); -BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::vector4, 4); +BOOST_TYPEOF_REGISTER_TYPE(boost::mpl::vector0<>) +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::vector1, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::vector2, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::vector3, 3) +BOOST_TYPEOF_REGISTER_TEMPLATE(boost::mpl::vector4, 4) #endif//MPL_REGISTER_HPP_INCLUDED diff --git a/test/stl/register.hpp b/test/stl/register.hpp index 8d93a00..9cecf77 100755 --- a/test/stl/register.hpp +++ b/test/stl/register.hpp @@ -14,10 +14,10 @@ #include BOOST_TYPEOF_INCREMENT_REGISTRATION_GROUP() -BOOST_TYPEOF_REGISTER_TEMPLATE_X(std::vector, (class)(class)); -BOOST_TYPEOF_REGISTER_TEMPLATE(std::list, 2); -BOOST_TYPEOF_REGISTER_TEMPLATE(std::set, 3); -BOOST_TYPEOF_REGISTER_TEMPLATE(std::allocator, 1); -BOOST_TYPEOF_REGISTER_TEMPLATE(std::less, 1); +BOOST_TYPEOF_REGISTER_TEMPLATE_X(std::vector, (class)(class)) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::list, 2) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::set, 3) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::allocator, 1) +BOOST_TYPEOF_REGISTER_TEMPLATE(std::less, 1) #endif//STL_REGISTER_HPP_INCLUDED