|
|
От: | IROV.. | |
| Дата: | 05.11.05 16:05 | ||
| Оценка: | |||
# define IROV_PP_DEFINE_RESULT(res) IROV_PP_DEFINE_RESULT_I(res)
# define IROV_PP_DEFINE_RESULT_I(x) x
# define IROV_PP_SEQ_TAIL(Q) IROV_PP_DEFINE_RESULT(IROV_PP_SEQ_TAIL_I Q)
# define IROV_PP_SEQ_TAIL_I(x)
# define IROV_PP_SEQ_ENUM(Q) IROV_PP_SEQ_HEAD(Q) ## IROV_PP_SEQ_ENUM_I(IROV_PP_SEQ_TAIL(Q))
# define IROV_PP_SEQ_ENUM_I(Q) IROV_PP_DEFINE_RESULT(IROV_PP_DEFINE_RESULT(IROV_PP_SEQ_FE_I1 Q) ## _END)
# define IROV_PP_SEQ_HEAD(Q) IROV_PP_DEFINE_RESULT(IROV_PP_DEFINE_RESULT(IROV_PP_SEQ_HEAD_I Q) ## _END)
# define IROV_PP_SEQ_HEAD_I(Q) Q IROV_PP_SEQ_EMPTY
# define IROV_PP_SEQ_EMPTY(Q) IROV_PP_SEQ_EMPTY_I
# define IROV_PP_SEQ_EMPTY_I(Q) IROV_PP_SEQ_EMPTY
# define IROV_PP_SEQ_EMPTY_END
# define IROV_PP_SEQ_EMPTY_I_END
# define IROV_PP_SEQ_FE_I1_END
# define IROV_PP_SEQ_FE_I2_END
# define IROV_PP_SEQ_FE_I1(x) , x IROV_PP_SEQ_FE_I2
# define IROV_PP_SEQ_FE_I2(x) , x IROV_PP_SEQ_FE_I1
# define SEQ_D (1)(2)(3)(4)
void main()
{
printf("SEQ = [%s]\n",BOOST_PP_STRINGIZE(SEQ_D ));
printf("ENUM = [%s]\n",BOOST_PP_STRINGIZE(IROV_PP_SEQ_ENUM(SEQ_D) ));
printf("TAIL = [%s]\n",BOOST_PP_STRINGIZE(IROV_PP_SEQ_TAIL(SEQ_D) ));
printf("HEAD = [%s]\n",BOOST_PP_STRINGIZE(IROV_PP_SEQ_HEAD(SEQ_D) ));
printf("\n\n\n");
}IROV_PP_DEFINE_RESULT(IROV_PP_DEFINE_RESULT(IROV_PP_SEQ_HEAD_I Q) ## _END)