forked from boostorg/preprocessor
Minor simplification
[SVN r12726]
This commit is contained in:
@ -118,9 +118,8 @@
|
||||
#define IS_VALID_BINARY_OP_AND_TYPE_COMBINATION(O,L,R) BOOST_PP_IF(BOOST_PP_OR(TYPE_IS_FLOATING(L),TYPE_IS_FLOATING(R)),OP_IS_FLOATING(O),1)
|
||||
|
||||
/* Generates code for all all unary operators and integral types. */
|
||||
#define UNARY_ARRAY_OP(R,L) UNARY_ARRAY_OP2(BOOST_PP_TUPLE_ELEM(2,0,L),BOOST_PP_TUPLE_ELEM(2,1,L))
|
||||
#define UNARY_ARRAY_OP2(O,T) BOOST_PP_IF(IS_VALID_UNARY_OP_AND_TYPE_COMBINATION(O,T),UNARY_ARRAY_OP3,BOOST_PP_TUPLE2_EAT)(O,T)
|
||||
#define UNARY_ARRAY_OP3(O,T)\
|
||||
#define UNARY_ARRAY_OP(_,OT) BOOST_PP_IF(IS_VALID_UNARY_OP_AND_TYPE_COMBINATION OT,UNARY_ARRAY_OP_CODE,BOOST_PP_TUPLE2_EAT) OT
|
||||
#define UNARY_ARRAY_OP_CODE(O,T)\
|
||||
void BOOST_PP_LIST_CAT(BOOST_PP_TUPLE_TO_LIST(4,(array_,OP_NAME(O),_,TYPE_ABBREVIATION(T))))\
|
||||
( const TYPE_NAME(T)* in\
|
||||
, TYPE_NAME(TYPE_OF_UNARY_OP(O,T))* out\
|
||||
@ -134,9 +133,8 @@
|
||||
BOOST_PP_LIST_FOR_EACH_PRODUCT(UNARY_ARRAY_OP,2,(APPLICATIVE_UNARY_OPS,BUILTIN_TYPES))
|
||||
|
||||
/* Generates code for all binary operators and integral type pairs. */
|
||||
#define BINARY_ARRAY_OP(R,L) BINARY_ARRAY_OP2(BOOST_PP_TUPLE_ELEM(3,0,L),BOOST_PP_TUPLE_ELEM(3,1,L),BOOST_PP_TUPLE_ELEM(3,2,L))
|
||||
#define BINARY_ARRAY_OP2(O,L,R) BOOST_PP_IF(IS_VALID_BINARY_OP_AND_TYPE_COMBINATION(O,L,R),BINARY_ARRAY_OP3,BOOST_PP_TUPLE3_EAT)(O,L,R)
|
||||
#define BINARY_ARRAY_OP3(O,L,R)\
|
||||
#define BINARY_ARRAY_OP(_,OLR) BOOST_PP_IF(IS_VALID_BINARY_OP_AND_TYPE_COMBINATION OLR,BINARY_ARRAY_OP_CODE,BOOST_PP_TUPLE3_EAT) OLR
|
||||
#define BINARY_ARRAY_OP_CODE(O,L,R)\
|
||||
void BOOST_PP_LIST_CAT(BOOST_PP_TUPLE_TO_LIST(6,(array_,OP_NAME(O),_,TYPE_ABBREVIATION(L),_,TYPE_ABBREVIATION(R))))\
|
||||
( const TYPE_NAME(L)* lhs_in\
|
||||
, const TYPE_NAME(R)* rhs_in\
|
||||
|
Reference in New Issue
Block a user