Я создаю общую конфигурацию функций.Я планирую определить структуру объекта, как показано ниже.
#define DEFINE_FEATURE(NAME) struct Feature##NAME {};
и я могу определить их несколько как:
DEFINE_FEATURE(A)
DEFINE_FEATURE(B)
DEFINE_FEATURE(C)
Как реализовать универсальный класс, который я могу использовать для определения различных комбинаций функций?И он содержит все функции.
#define DEFINE_CONFIG(NAME, FeatureA,...) \
auto config_##NAME = Config::create().set_feature(FeatureA{}).set_feature(FeatureB).set_feature(....)()
Например, я определяю новую / старую конфигурацию продукта как
DEFINE_CONFIG(NewProduct, FeatureA, FeatureB, FeatureC);
DEFINE_CONFIG(OldProduct, FeatureA);
Спасибо!