есть некоторый препроцессорный код, генерящий структуры со всякими специфическими "потрохами".
этот макрос не генерит дефолтный конструктор, из-за чего мы вкорень устали от неинициализированных мемберов.
ну, подумал я, ща быринько поправлю макрос, чтоб генерит дефолтный конструктор....делов-то!
вот только пользователи этого макроса, уже сами начали вписывать и конструкторы, и всякий остальной код, который вставляется в тело структуры.
типа того:
X>т.е. просто генерить дефолтный конструктор я не могу, коллизии же %)
X>вопрос в том, как разрулить, не рефакая пять проектов, использующих этот макрос?
Здравствуйте, niXman, Вы писали:
X>привет!
X>есть некоторый препроцессорный код, генерящий структуры со всякими специфическими "потрохами". X>этот макрос не генерит дефолтный конструктор, из-за чего мы вкорень устали от неинициализированных мемберов.
не вдавался в детали, но ведь в с++11 появилась возможность дефолтной инициализации членов классов (без использования конструктора)
Здравствуйте, niXman, Вы писали:
X>вот только пользователи этого макроса, уже сами начали вписывать и конструкторы, и всякий остальной код, который вставляется в тело структуры. X>т.е. просто генерить дефолтный конструктор я не могу, коллизии же %) X>вопрос в том, как разрулить, не рефакая пять проектов, использующих этот макрос?
Если пользователи начали вписывать от безысходности — административно пресечь это безобразие.
Да, кровавый рефакторинг, зато после вылизывания кода пять проектов будут блестеть, как то, что должно блестеть после вылизывания.
Если это так и задумано, — то есть, пользователи могут создавать дефолтный конструктор, который делает что-то полезное, — тогда остаётся прямая инициализация членов.
Здравствуйте, night beast, Вы писали:
NB>перегрузка по количеству параметров. NB>если 2, то вставляем {}
так и сделал.
NB>как решать если у типа нет конструктора по умолчанию не знаю
никак не решать. просто отрефакал все использования этого макроса. все прошло успешно =)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)