Je voudrais écrire une routine comme printf, pas fonctionnellement, mais j'aimerais que la routine compile en même temps les caractéristiques de vérification de printf.Comment obtenir des avertissements ou des erreurs de compilation au format printf
Par exemple, si j'ai:
{
int i;
std::string s;
printf("%d %d",i);
printf("%d",s.c_str());
}
Le compilateur se plaint comme ceci:
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*'
sont des fonctions printf et co spéciales que les compilateur traite différemment ou est-il un peu astuce pour obtenir ce travail sur toute fonction définie par l'utilisateur? Les compilateurs spécifiques qui m'intéressent sont gcc et msvc
Il peut faire un peu plus de printf et scanf; la liste des docs actuels est "printf, scanf, strftime, gnu_printf, gnu_scanf, gnu_strftime ou strfmon" – Cascabel
C'est cool. J'espère que CodeGear/Embarcadero mettra cette fonctionnalité dans leur compilateur dans le futur. –