diff --git a/include/boost/fusion/adapted/struct/adapt_struct.hpp b/include/boost/fusion/adapted/struct/adapt_struct.hpp index cb117781..e4cc3d6c 100644 --- a/include/boost/fusion/adapted/struct/adapt_struct.hpp +++ b/include/boost/fusion/adapted/struct/adapt_struct.hpp @@ -51,8 +51,8 @@ NAME_SEQ, \ I, \ BOOST_PP_EMPTY, \ - ATTRIBUTE, \ - 1) + BOOST_PP_TUPLE_ELEM(1, ATTRIBUTE), \ + BOOST_PP_TUPLE_ELEM(0, ATTRIBUTE)) #define BOOST_FUSION_ADAPT_TPL_STRUCT(TEMPLATE_PARAMS_SEQ,NAME_SEQ, ATTRIBUTES) \ BOOST_FUSION_ADAPT_STRUCT_BASE( \ @@ -79,9 +79,9 @@ #define BOOST_FUSION_ADAPT_STRUCT_FILLER_NEWAPI__0(...) \ - ((__VA_ARGS__)) BOOST_FUSION_ADAPT_STRUCT_FILLER_NEWAPI__1 + ((BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), (__VA_ARGS__))) BOOST_FUSION_ADAPT_STRUCT_FILLER_NEWAPI__1 #define BOOST_FUSION_ADAPT_STRUCT_FILLER_NEWAPI__1(...) \ - ((__VA_ARGS__)) BOOST_FUSION_ADAPT_STRUCT_FILLER_NEWAPI__0 + ((BOOST_PP_VARIADIC_SIZE(__VA_ARGS__), (__VA_ARGS__))) BOOST_FUSION_ADAPT_STRUCT_FILLER_NEWAPI__0 #define BOOST_FUSION_ADAPT_STRUCT_FILLER_NEWAPI__0_END #define BOOST_FUSION_ADAPT_STRUCT_FILLER_NEWAPI__1_END diff --git a/include/boost/fusion/adapted/struct/detail/adapt_base.hpp b/include/boost/fusion/adapted/struct/detail/adapt_base.hpp index 344da922..700c3dea 100644 --- a/include/boost/fusion/adapted/struct/detail/adapt_base.hpp +++ b/include/boost/fusion/adapted/struct/detail/adapt_base.hpp @@ -128,7 +128,7 @@ > \ { \ typedef \ - BOOST_PP_IF(BOOST_PP_LESS(/*ATTRIBUTE_TUPEL_SIZE*/1,2), \ + BOOST_PP_IF(BOOST_PP_LESS(ATTRIBUTE_TUPEL_SIZE,2), \ BOOST_FUSION_ATTRIBUTE_TYPE_DEDUCE, BOOST_FUSION_GET_GIVEN_TYPE \ )(NAME_SEQ, ATTRIBUTE, ATTRIBUTE_TUPEL_SIZE) \ attribute_type; \ diff --git a/test/sequence/adapt_struct.cpp b/test/sequence/adapt_struct.cpp index 1faa7bc3..65d2c4b2 100644 --- a/test/sequence/adapt_struct.cpp +++ b/test/sequence/adapt_struct.cpp @@ -59,7 +59,7 @@ namespace ns BOOST_FUSION_ADAPT_STRUCT_NEWAPI( ns::point, (x) - (y) + (int, y) ) #if !BOOST_WORKAROUND(__GNUC__,<4)