Vorrei scrivere una routine come printf, non dal punto di vista funzionale, ma preferirei che la routine avesse le stesse caratteristiche di controllo di compilazione di printf.Come ottenere avvisi o errori in fase di compilazione in stile printf
Per esempio se ho:
{
int i;
std::string s;
printf("%d %d",i);
printf("%d",s.c_str());
}
Il compilatore si lamenta in questo modo:
1 cc1plus: warnings being treated as errors
2 In function 'int main()':
3 Line 8: warning: too few arguments for format
4 Line 9: warning: format '%d' expects type 'int', but argument 2 has type 'const char*'
Sono printf e co funzioni speciali che gli ossequi compilatore diverso o c'è qualche trucco per far funzionare tutto questo su qualsiasi funzione definita dall'utente? I compilatori specifici a cui sono interessato sono gcc e msvc
Può fare un po 'più di printf e scanf; l'elenco dei documenti attuali è "printf, scanf, strftime, gnu_printf, gnu_scanf, gnu_strftime o strfmon" – Cascabel
È fantastico. Spero che CodeGear/Embarcadero metta questa caratteristica nel loro compilatore in futuro. –