J'ai peu de code C++ qui imprime un size_t
:
size_t a;
printf("%lu", a);
Je voudrais compiler sans mises en garde sur les versions 32 et 64 bits architectures.
Si c'était le C99, je pourrais utiliser printf("%z", a);
. Mais AFAICT %z
n'existe pas dans n'importe quel standard de C++ dialecte. Donc, au lieu de cela, j'ai à faire
printf("%lu", (unsigned long) a);
ce qui est vraiment moche.
Si il n'y a pas d'installation pour l'impression d' size_t
s construite dans la langue, je me demande si il est possible d'écrire un printf wrapper ou somesuch tels que va insérer le jette sur size_t
s, de manière à éliminer les parasites des avertissements du compilateur, tout en conservant les bonnes.
Des idées?
Modifier
Afin de clarifier la raison pour laquelle je suis à l'aide de printf: j'ai une assez grande base de code que je suis le nettoyage. Il utilise printf wrappers pour faire des choses comme "écrire un avertissement, l'enregistrer dans un fichier, et éventuellement de quitter le code avec une erreur". Je pourrais être en mesure de rassembler assez de C++-foo de le faire avec un cout wrapper, mais je préfère ne pas en changer tous les warn() appel dans le programme juste pour se débarrasser de certains des avertissements du compilateur.