Clang 和 GCC 都可以检查 printf 样式函数的格式字符串和参数之间的不匹配。例如,他们会抱怨这样的陈述:
printf("Hello, %s!\n");
Boost.Format是否存在类似的东西?换句话说,是否有任何编译器开关、静态分析工具等可以警告代码,例如
std::string s1 = str(boost::format("Hello, %s!"));
或者
std::string s2 = str(boost::format("Hello, %s!") % "John" % "Doe");