1
Clang和GCC都可以檢查printf樣式函數的格式字符串與參數之間的不匹配。例如,他們會抱怨這樣的語句:編譯時檢查Boost.Format
printf("Hello, %s!\n");
是否任何類似存在Boost.Format?換句話說,有沒有編譯器開關,靜態分析工具等,可以警告有關代碼像
std::string s1 = str(boost::format("Hello, %s!"));
或
std::string s2 = str(boost::format("Hello, %s!") % "John" % "Doe");