我想寫一個像printf這樣的例程,而不是功能上明智的,但是我希望例程能夠像printf一樣編譯檢查特性。如何獲得printf風格的編譯時警告或錯誤
例如,如果我有:
{
int i;
std::string s;
printf("%d %d",i);
printf("%d",s.c_str());
}
編譯器會抱怨像這樣:
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*'
是printf和共同的特殊函數,編譯器將不同的或者是有一些訣竅讓這工作在任何用戶定義的功能?我感興趣的具體編譯器是gcc和msvc
它可以做得比printf和scanf多一點;從當前文檔列表是「printf,scanf,strftime,gnu_printf,gnu_scanf,gnu_strftime或strfmon」 – Cascabel 2010-06-23 20:58:09
這很酷。我希望CodeGear/Embarcadero將這個功能放到他們的編譯器中。 – 2010-06-23 21:00:45