Вложенный макрос с начальными запятыми

У меня был variadic макрос, который работал отлично:

#define COMPONENT_CLASS(name, inheritance...) \
                class name : public Component, ##inheritance {

По другой причине я старался избегать такого разнообразного использования. Мой подход выглядит так

#define COMPONENT_CLASS_Inherits(...) , ##__VA_ARGS__
#define COMPONENT_CLASS(name, inheritance) \
            class name : public Component inheritance {

который я хочу использовать так:

COMPONENT_CLASS(Test, COMPONENT_CLASS_Inherits(SomeInterface))
};

Это работает, когда есть некоторые интерфейсы, но это терпит неудачу, когда нет аргументов для COMPONENT_CLASS_Inherits потому что запятая не будет удалена! В чем здесь проблема?

0 ответов

Другие вопросы по тегам