2

スタックオーバーフローの質問:「引数がゼロの可変長マクロとカンマ」に続いて、次のことを試しました。

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

MAKE_TEMPLATE()
struct Testing{};

コンパイラは次を返します:エラー: '>' トークンの前に識別子が必要です

ただし、g++ -E main.cpp (マクロ展開を取得するため) は次のように表示されます。

template <typename T >
struct Testing{};

そして:

MAKE_TEMPLATE(typename U)
struct Testing{};

コンパイルOKです。何が足りない?

4

1 に答える 1