конструкторы, инициализации
От: niXman Ниоткуда  
Дата: 02.03.17 10:25
Оценка:
привет!

есть некоторый препроцессорный код, генерящий структуры со всякими специфическими "потрохами".
этот макрос не генерит дефолтный конструктор, из-за чего мы вкорень устали от неинициализированных мемберов.
ну, подумал я, ща быринько поправлю макрос, чтоб генерит дефолтный конструктор....делов-то!
вот только пользователи этого макроса, уже сами начали вписывать и конструкторы, и всякий остальной код, который вставляется в тело структуры.
типа того:
#define DECLARE_TYPE(name, seq, ...) \
struct name { \
   __VA_ARGS__ \
   \
   /* тут генерятся мемберы-данные */ \
};

DECLARE_TYPE(
   type0
   ,
   (int, m0)
   (char, v1)
   ,
   type0()
      :m0{-1}
      ,m1{'0'}
   {}
   bool equal(const type0 &r) {...}
)

т.е. просто генерить дефолтный конструктор я не могу, коллизии же %)

вопрос в том, как разрулить, не рефакая пять проектов, использующих этот макрос?


спасибо!
Слово "совпадение" появилось после падения сов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.