--- Joel Falcou
I have two sequences. Both represent sets, one is a subset of the other. What I want to do is for each element in the superset, generate one value if it is in the subset, and another value if it is not in the subset. The problem is that the elements are not numeric (they are just tokens), so I can not seem to compare them to determine if they are the same.
Any sugestions?
What I woukld write is borrowed from the inner mechanics of Boost::PP. let's say you have two token FOO & BAR.
#define IS_SAME_TOKEN_FOO_FOO 1 #define IS_SAME_TOKEN_FOO_BAR 0 #define IS_SAME_TOKEN_BAR_FOO 0 #define IS_SAME_TOKEN_BAR_BAR 0
#define IS_SAME_TOKEN(X,Y)
BOOST_PP_CAT(BOOST_PP_CAT(BOOST_PP_CAT(IS_SAME_TOKEN_,X),_),Y)
then use IS_SAME_TOKEN in BOOST_PP_IF
I knwo it gets cumbersome as the number of tokens increase but I can't see hwo to do it better.
I have not got it working yet, but I think I can avoid the combinatorial explosion. For each token 'foo', I define 'X_foo' and give it a uneque numeric value. Then I can use the following to compare them : #define MY_COMPARE(x,y) BOOST_PP_EQUAL(BOOST_PP_CAT(X_, x), BOOST_PP_CAT(X_,y)) Still not a elegant as I'd like, but no combinatorial explosion. Thanks a lot for putting me on the right track. -EdK Ed Keith e_d_k@yahoo.com Blog: edkeith.blogspot.com ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ