Boost (изнутри)
От: vpchelko  
Дата: 08.07.10 16:49
Оценка:
Вот у меня сейчас назрел вопрос написать кучу процессорного кода
(макросов — которые бы не генерили бы мне нужный код — например в место обычного обьявления структуры у меня есть макрос
def_struct ( name, fields) \
def_fields fields

В свою очередь def_fields может иметь кучу вариантов:

def_fields (t1,v1)

def_fields (t1,v1,t2,v2)

def_fields (t1,v1,t2,v2,t2,v2)

Видел подобную лабуду в бусте, как это они делают? Тока не пишите что руками)).
Сало Украине, Героям Сала
Re: Boost (изнутри)
От: Vain Россия google.ru
Дата: 08.07.10 17:45
Оценка:
Здравствуйте, vpchelko, Вы писали:

V>Вот у меня сейчас назрел вопрос написать кучу процессорного кода

V>...
V>Видел подобную лабуду в бусте, как это они делают? Тока не пишите что руками)).
Если писать такое, то только со смыслом. А просто для красоты нафиг не сдалось.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re: Boost (изнутри)
От: Sni4ok  
Дата: 08.07.10 18:19
Оценка:
Здравствуйте, vpchelko, Вы писали:

V>Видел подобную лабуду в бусте, как это они делают? Тока не пишите что руками)).


можно использовать макрос BOOST_PP_REPEAT_FROM_TO
Re: Boost (изнутри)
От: jazzer Россия Skype: enerjazzer
Дата: 09.07.10 00:46
Оценка: +1
Здравствуйте, vpchelko, Вы писали:

V>def_fields (t1,v1)

V>def_fields (t1,v1,t2,v2)
V>def_fields (t1,v1,t2,v2,t2,v2)

Посмотри на семейство макросов BOOST_PP_ENUM_*
http://www.boost.org/libs/preprocessor

То, что тебе конкретно в этом примере нужно — это BOOST_PP_ENUM_PARAMS
http://www.boost.org/libs/preprocessor/doc/ref/enum_params.html
но тебе наверняка и другие из этого семейства понадобятся.
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.