Добрый вечер!
Подскажите, реально ли написать макрос такого вида:
inc module1, module2, module3;
Чтобы он разворачивался в такой вот код:
#include "module1.h"
#include "module2.h"
#include "module3.h"
Понимаю, что это извращение, но очень хотелось бы...
Здравствуйте, maloi_alex, Вы писали:
_>Добрый вечер!
_>Подскажите, реально ли написать макрос такого вида:
главная проблема в том что в теле макроса нельзя использовать препроцессорные директивы... т.е. тебе тупо не удастся написать определение макроса в котором присутствует #include...
_>Понимаю, что это извращение, но очень хотелось бы...
а зачем? наверняка есь более лечшее решение...
зы: максимум что можно сделать это завести препроцессорный список из файлов инклудов и с помощью
этого попробовать чонить налепить... но anyway как хочется не получится...
Здравствуйте, maloi_alex, Вы писали:
_>_>inc module1, module2, module3;
_>
_>Чтобы он разворачивался в такой вот код:
_>_>#include "module1.h"
_>#include "module2.h"
_>#include "module3.h"
_>
_>Понимаю, что это извращение, но очень хотелось бы...
Можно вот так сделать:
#define INCLUDE_LIST (module1)(module2)(module3)
#include "includer.h"
см. boost.preprocessor
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]