Wie man printf-Stil compile-Zeit Warnungen oder Fehler

Ich würde gerne eine routine zu schreiben, wie bei printf, nicht funktional-Weise, sondern ich möchte die routine, um die gleiche Zeit, kompilieren, überprüfen Eigenschaften wie printf.

Wenn ich beispielsweise habe:

{
   int i;
   std::string s;
   printf("%d %d",i);
   printf("%d",s.c_str());
}

Der compiler beschwert sich etwa so:

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*'

code-Beispiel

Sind printf und co spezielle Funktionen, die der compiler behandelt anders, oder gibt es ein trick, um zu bekommen, dies funktioniert auf jeder Benutzer-definierter Funktion? Die spezifischen Compilern, die ich bin daran interessiert, sind gcc und msvc

InformationsquelleAutor Hippicoder | 2010-06-23
Schreibe einen Kommentar