Вложенный макрос с начальными запятыми
У меня был 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
потому что запятая не будет удалена! В чем здесь проблема?