Макрос. Возможно сделать такое?
От: maloi_alex СССР  
Дата: 13.10.09 14:44
Оценка:
Добрый вечер!

Подскажите, реально ли написать макрос такого вида:


inc module1, module2, module3;


Чтобы он разворачивался в такой вот код:


#include "module1.h"
#include "module2.h"
#include "module3.h"


Понимаю, что это извращение, но очень хотелось бы...
Re: Макрос. Возможно сделать такое?
От: zaufi Земля  
Дата: 13.10.09 14:58
Оценка:
Здравствуйте, maloi_alex, Вы писали:

_>Добрый вечер!


_>Подскажите, реально ли написать макрос такого вида:


главная проблема в том что в теле макроса нельзя использовать препроцессорные директивы... т.е. тебе тупо не удастся написать определение макроса в котором присутствует #include...


_>Понимаю, что это извращение, но очень хотелось бы...


а зачем? наверняка есь более лечшее решение...

зы: максимум что можно сделать это завести препроцессорный список из файлов инклудов и с помощью этого попробовать чонить налепить... но anyway как хочется не получится...
Re: Макрос. Возможно сделать такое?
От: Vain Россия google.ru
Дата: 13.10.09 16:02
Оценка:
Здравствуйте, 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.]
[Даю очевидные ответы на риторические вопросы]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.