consideri this articolo di MSDN ('argomenti di default') e il seguente codice:C: MSDN dice che "gli argomenti predefiniti possono essere forniti per i puntatori alle funzioni", ma è vero?
#include <stdio.h>
void print(int x) {
printf("%d\n", x + 537);
}
typedef void (*Func)(int x = 0);
int main() {
Func f = print;
f();
return 0;
}
L'articolo afferma che "argomenti predefinite possono essere ovided per puntatori a funzioni. Per esempio: int (*pShowIntVal)(int i = 0);
". Come ho capito, significa che il codice sopra dovrebbe compilare con successo. Tuttavia, non è così:
a.cpp
a.cpp(7) : error C2383: 'Func' : default-arguments are not allowed on this symbol
a.cpp(11) : error C2198: 'Func' : too few arguments for call
Sembra che abbia frainteso l'articolo. Qual è il punto, qual è l'interpretazione corretta?
non posso nemmeno dire semplicemente 'int (* pShowIntVal) (int i = 0); 'nel codice! "errore 2383: 'pShowIntVal': gli argomenti predefiniti non sono consentiti su questo simbolo" –