Ошибка компиляции макроса c ++ Variadic

На следующий вопрос: «Макросы Variadic с нулевыми аргументами и запятыми» я попробовал:

#define MAKE_TEMPLATE(...) template <typename T, ## __VA_ARGS__ >

MAKE_TEMPLATE()
struct Testing{};

Компилятор дает: ошибка: ожидаемый идентификатор до токена ‘>’

Но g ++ -E main.cpp (чтобы получить расширение макроса) show:

template <typename T >
struct Testing{};

И с:

MAKE_TEMPLATE(typename U)
struct Testing{};

Это скомпилировано ОК.
Чего не хватает?

1

Решение

http://en.wikipedia.org/wiki/Variadic_macro:
GCC поддерживает следующее (непереносимое) расширение: ## __VA_ARGS__

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]