diff --git a/example/array_arithmetic_helpers.hpp b/example/array_arithmetic_helpers.hpp index 18160b5..56efd86 100644 --- a/example/array_arithmetic_helpers.hpp +++ b/example/array_arithmetic_helpers.hpp @@ -27,13 +27,13 @@ #ifndef DOXYGEN_SHOULD_SKIP_THIS #define BOOST_PP_LIST_FOR_EACH_PRODUCT_R(R,F,P,LL)\ BOOST_PP_FOR##R\ - ( (BOOST_PP_LIST_FIRST(LL),BOOST_PP_LIST_REST(LL),BOOST_PP_LIST_NIL,F,P)\ + ( (BOOST_PP_TUPLE3_ELEM0 LL,BOOST_PP_TUPLE3_ELEM1 LL,(_,_,0),F,P)\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_C\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_F\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_I0\ ) #define BOOST_PP_LIST_FOR_EACH_PRODUCT_C(R,P)\ - BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE5_ELEM0 P) + BOOST_PP_TUPLE3_ELEM2 BOOST_PP_TUPLE5_ELEM0 P #define BOOST_PP_LIST_FOR_EACH_PRODUCT_F(R,P)\ ( BOOST_PP_LIST_REST(BOOST_PP_TUPLE5_ELEM0 P)\ , BOOST_PP_TUPLE5_ELEM1 P\ @@ -42,48 +42,47 @@ , BOOST_PP_TUPLE5_ELEM4 P\ ) #define BOOST_PP_LIST_FOR_EACH_PRODUCT_I_HELPER(P,C,F,I)\ - BOOST_PP_LIST_FOR_EACH_PRODUCT_I_HELPER_HELPER(BOOST_PP_TUPLE5_ELEM3 P(BOOST_PP_TUPLE5_ELEM4 P,BOOST_PP_TUPLE5_ELEM2 P)) -#define BOOST_PP_LIST_FOR_EACH_PRODUCT_I_HELPER_HELPER(X) X + BOOST_PP_TUPLE5_ELEM3 P(BOOST_PP_TUPLE5_ELEM4 P,BOOST_PP_TUPLE5_ELEM2 P) #define BOOST_PP_LIST_FOR_EACH_PRODUCT_I0(R,P)\ BOOST_PP_IF\ - ( BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE5_ELEM1 P)\ + ( BOOST_PP_TUPLE3_ELEM2 BOOST_PP_TUPLE5_ELEM1 P\ , BOOST_PP_FOR##R\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_I_HELPER\ )\ - ( (BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE5_ELEM1 P),BOOST_PP_LIST_REST(BOOST_PP_TUPLE5_ELEM1 P),(BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE5_ELEM0 P),BOOST_PP_TUPLE5_ELEM2 P,1),BOOST_PP_TUPLE5_ELEM3 P,BOOST_PP_TUPLE5_ELEM4 P)\ + ( (BOOST_PP_TUPLE3_ELEM0 BOOST_PP_TUPLE5_ELEM1 P,BOOST_PP_TUPLE3_ELEM1 BOOST_PP_TUPLE5_ELEM1 P,(BOOST_PP_TUPLE3_ELEM0 BOOST_PP_TUPLE5_ELEM0 P,BOOST_PP_TUPLE5_ELEM2 P,1),BOOST_PP_TUPLE5_ELEM3 P,BOOST_PP_TUPLE5_ELEM4 P)\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_C\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_F\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_I##1\ ) #define BOOST_PP_LIST_FOR_EACH_PRODUCT_I1(R,P)\ BOOST_PP_IF\ - ( BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE5_ELEM1 P)\ + ( BOOST_PP_TUPLE3_ELEM2 BOOST_PP_TUPLE5_ELEM1 P\ , BOOST_PP_FOR##R\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_I_HELPER\ )\ - ( (BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE5_ELEM1 P),BOOST_PP_LIST_REST(BOOST_PP_TUPLE5_ELEM1 P),(BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE5_ELEM0 P),BOOST_PP_TUPLE5_ELEM2 P,1),BOOST_PP_TUPLE5_ELEM3 P,BOOST_PP_TUPLE5_ELEM4 P)\ + ( (BOOST_PP_TUPLE3_ELEM0 BOOST_PP_TUPLE5_ELEM1 P,BOOST_PP_TUPLE3_ELEM1 BOOST_PP_TUPLE5_ELEM1 P,(BOOST_PP_TUPLE3_ELEM0 BOOST_PP_TUPLE5_ELEM0 P,BOOST_PP_TUPLE5_ELEM2 P,1),BOOST_PP_TUPLE5_ELEM3 P,BOOST_PP_TUPLE5_ELEM4 P)\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_C\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_F\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_I##2\ ) #define BOOST_PP_LIST_FOR_EACH_PRODUCT_I2(R,P)\ BOOST_PP_IF\ - ( BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE5_ELEM1 P)\ + ( BOOST_PP_TUPLE3_ELEM2 BOOST_PP_TUPLE5_ELEM1 P\ , BOOST_PP_FOR##R\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_I_HELPER\ )\ - ( (BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE5_ELEM1 P),BOOST_PP_LIST_REST(BOOST_PP_TUPLE5_ELEM1 P),(BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE5_ELEM0 P),BOOST_PP_TUPLE5_ELEM2 P,1),BOOST_PP_TUPLE5_ELEM3 P,BOOST_PP_TUPLE5_ELEM4 P)\ + ( (BOOST_PP_TUPLE3_ELEM0 BOOST_PP_TUPLE5_ELEM1 P,BOOST_PP_TUPLE3_ELEM1 BOOST_PP_TUPLE5_ELEM1 P,(BOOST_PP_TUPLE3_ELEM0 BOOST_PP_TUPLE5_ELEM0 P,BOOST_PP_TUPLE5_ELEM2 P,1),BOOST_PP_TUPLE5_ELEM3 P,BOOST_PP_TUPLE5_ELEM4 P)\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_C\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_F\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_I##3\ ) #define BOOST_PP_LIST_FOR_EACH_PRODUCT_I3(R,P)\ BOOST_PP_IF\ - ( BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE5_ELEM1 P)\ + ( BOOST_PP_TUPLE3_ELEM2 BOOST_PP_TUPLE5_ELEM1 P\ , BOOST_PP_FOR##R\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_I_HELPER\ )\ - ( (BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE5_ELEM1 P),BOOST_PP_LIST_REST(BOOST_PP_TUPLE5_ELEM1 P),(BOOST_PP_LIST_FIRST(BOOST_PP_TUPLE5_ELEM0 P),BOOST_PP_TUPLE5_ELEM2 P,1),BOOST_PP_TUPLE5_ELEM3 P,BOOST_PP_TUPLE5_ELEM4 P)\ + ( (BOOST_PP_TUPLE3_ELEM0 BOOST_PP_TUPLE5_ELEM1 P,BOOST_PP_TUPLE3_ELEM1 BOOST_PP_TUPLE5_ELEM1 P,(BOOST_PP_TUPLE3_ELEM0 BOOST_PP_TUPLE5_ELEM0 P,BOOST_PP_TUPLE5_ELEM2 P,1),BOOST_PP_TUPLE5_ELEM3 P,BOOST_PP_TUPLE5_ELEM4 P)\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_C\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_F\ , BOOST_PP_LIST_FOR_EACH_PRODUCT_I##4\