I read through some sample code, and caught up with this ## syntax that I have never seen before. The code sample as following:
#define DEF_MAKE_BT_1_COMP(BT)\
inline i_##BT make_i_##BT(i_##BT::vtype x) { return make_##BT(x); }
#define DEF_MAKE_BT2(T) \
DEF_MAKE_BT_1_COMP(T##1); \
DEF_MAKE_BT_2_COMP(T##2);
DEF_MAKE_BT2(double);
When I got error at the last line which is "make_double1" is undefined. Has anyone seen this syntax before?