boost::preprocessor
там есть и IF и прочее (вплоть до циклов (мне даже приходилось делать вложенные

) )
если лень таскать целый целый boost можно практически безболезненно выдрать пару файлов из preprocessor и в путь
--
основная идея в следующем
#define if0(Param1,Param2) Param2
#define if1(Param1,Param2) Param1
#define if2(Param1,Param2) Param1
...
#define if(N,b,c) if##N(b,c)
Сообщение отредактировал WiseAlex - Nov 22 2007, 15:13