-----Original Message-----
From: boost-users-bounces@lists.boost.org
[mailto:boost-users-bounces@lists.boost.org] On Behalf Of
Roman Perepelitsa
I have implemented macro which converts SEQ to ((a, b)) ((c,
d)) but implementation is huge (I copy-pasted a lot of code
from boost.preprocessor).
Now I need to enumerate sequence of triples and I don't want
to copy-paste again.
Any tips?
#include
#define BINARY_SEQ_TO_SEQ(seq) \
BOOST_PP_CAT(BINARY_SEQ_TO_SEQ_A seq, 0) \
/**/
#define BINARY_SEQ_TO_SEQ_A(x, y) ((x, y)) BINARY_SEQ_TO_SEQ_B
#define BINARY_SEQ_TO_SEQ_B(x, y) ((x, y)) BINARY_SEQ_TO_SEQ_A
#define BINARY_SEQ_TO_SEQ_A0
#define BINARY_SEQ_TO_SEQ_B0
BINARY_SEQ_TO_SEQ( (a, b)(c, d)(e, f) )
// ((a, b))((c, d))((e, f))
#define TERNARY_SEQ_TO_SEQ(seq) \
BOOST_PP_CAT(TERNARY_SEQ_TO_SEQ_A seq, 0) \
/**/
#define TERNARY_SEQ_TO_SEQ_A(x, y, z) ((x, y, z)) TERNARY_SEQ_TO_SEQ_B
#define TERNARY_SEQ_TO_SEQ_B(x, y, z) ((x, y, z)) TERNARY_SEQ_TO_SEQ_A
#define TERNARY_SEQ_TO_SEQ_A0
#define TERNARY_SEQ_TO_SEQ_B0
TERNARY_SEQ_TO_SEQ( (a, b, c)(d, e, f)(g, h, i) )
// ((a, b, c))((d, e, f))((g, h, i))
Regards,
Paul Mensonides