As macros Variadic não são padrão?

Para construções de depuração, eu geralmente uso o Clang, pois formata melhor os avisos e erros e facilita um pouco a localização e a correção dos erros.

Mas recentemente, depois de adicionar uma macro com argumentos variados, Clang me disse o seguinte (de um projeto fictício):

main.cpp:5:20: warning: named variadic macros are a GNU extension [-Wvariadic-macros]
#define stuff3(args...)  stuff_i(args)

Eu sei dissomacroname(args...) compila bem em uma ampla variedade de compiladores, incluindo Visualstudio, Sunstudio e, claro, o GCC. Mas, apenas para garantir que o clang esteja correto, tentei duas outras maneiras de expandir os argumentos variados:

Número 1:

#define stuff1(...)  stuff_i(...)

Número 2:

#define stuff2(...)  stuff_i(__VA_ARGS__)

Em ambos, recebo esta mensagem:

main.cpp:3:16: warning: variadic macros were introduced in C99 [-Wvariadic-macros]

... O que me faz pensar se as macros Variadic são realmente parte do padrão de C ++ (e é claro que eu sei que o pré-processador é interpretado independentemente)?

questionAnswers(4)

yourAnswerToTheQuestion