
hi, in an ealier post, i was helped to write explicit template instantiations as: #define FINH1 (EC)(EP)(AC)(AP) #define FINH2 (C)(D)(E)(F)(G) #define FINH3 (2)(3) #define M(r, product) template class Tree<BOOST_PP_SEQ_ENUM(product)>; BOOST_PP_SEQ_FOR_EACH_PRODUCT(M, (FINH1)(FINH2)(FINH3)) That nicely generated: template class Tree<EC,C,2>; template class Tree<EC,C,3>; template class Tree<EC,D,2>; template class Tree<EC,D,3>; ... what i need now is coupling FINH2 and FINH3 (i don't want their crossproduct) as in: #define FINH1 (EC)(EP)(AC)(AP) #define FINH2 (C,2)(D,2)(E,3)(F,3)(G,3) #define M(r, product) template class Tree<BOOST_PP_SEQ_ENUM(product)>; BOOST_PP_SEQ_FOR_EACH_PRODUCT(M, (FINH1)(FINH2)) But that does't work because the commas in FINH2 are taken as macro arguments which fails... ideas are appreciated... regards,