¿Son las macros Variadic no estándar?

Para debugbuilds, generalmente uso Clang, ya que formatea mejor las advertencias y los errores, y hace que sea un poco más fácil rastrearlos y solucionarlos.

Pero recientemente, después de agregar una Macro con argumentos variados, Clang me dijo lo siguiente (de un proyecto ficticio):

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

Yo sé esomacroname(args...) compila bien en una amplia gama de compiladores, incluidos Visualstudio, Sunstudio y, por supuesto, GCC. Pero solo para asegurarme de que el sonido metálico es correcto, probé otras dos formas de expandir los argumentos variados:

Numero 1:

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

Número 2:

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

En ambos recibo este mensaje:

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

... ¿Qué me hace preguntarme si las macros Variadic son realmente parte del estándar de C ++ (y, por supuesto, sé que el preprocesador se interpreta de forma independiente)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta