Io uso le librerie C++ ROOT (root.cern.ch) tutti i giorni ed è stato dando un'occhiata al sorgente quando mi sono imbattuto in questa dichiarazione di funzione:Ti prego, aiutami a capire questa dichiarazione parametro C++ con un argomento
TString TString::Format(const char *va_(fmt), ...)
{
//etc.
Si può essere trovato here.
Non capisco come un const char *
possa avere un argomento o una parentesi nel suo nome. L'espressione va_(fmt)
viene successivamente utilizzata come semplice const char *
anche se sembra una chiamata di funzione o un costruttore. All'inizio pensavo che avesse qualcosa a che fare con la lista degli argomenti variabili, che era anche una novità per me, ma leggere la documentazione su stdarg.h non aiutava affatto questa domanda.
È molto difficile chiedere aiuto a Google perché non sono proprio sicuro di come chiamarlo. Una dichiarazione con una discussione? Questo non dà buoni risultati.
Pensavo di conoscere il C++, ma cosa sta succedendo qui? Tutto l'aiuto sarà apprezzato.
La mia ipotesi è che 'va_' è semplicemente una macro. Probabilmente uno che non fa altro che espandere al suo parametro. –