У меня есть несколько объявлений struct
, помеченных макросом COMPONENT
.Я хотел бы построить список типов из этих объявлений.Учитывая этот код:
// a.hpp
COMPONENT(A) {
// struct body
};
// bc.hpp
COMPONENT(B) {
// struct body
};
COMPONENT(C) {
// struct body
};
Я хотел бы создать кортеж, который выглядит следующим образом:
constexpr auto components = std::make_tuple(
Comp<A>{“A”},
Comp<B>{“B”},
Comp<C>{“C”}
);
Порядок элементов в кортеже не имеет значения.Мне также нужно будет вручную включить все заголовки, которые содержат COMPONENT
объявлений.
Я мог бы написать скрипт Python, который генерирует файл во время сборки, но я хотел бы сделать это с препроцессором, если это возможно.Я не думаю, что это возможно, но я видел, как люди делали какие-то сумасшедшие вещи с препроцессором, поэтому я решил спросить.Я не понимаю макропрограммирование макросов так же хорошо, как метапрограммирование шаблонов.