4.11.3 禁止编译器警告
头文件<boost/config/warning_disable.hpp>可用于禁止特定编译器(目前有微软的VC和intel编译器)的警告,尤其是VC中"讨厌"的C4996警告。
C4996警告表明VC编译器遇到了某个被标记为deprecated的函数调用,但大多数情况下而这些函数可能是标准的C/C++(www.cppentry.com)库函数,用法完全正确--甚至在微软自己的某些库中也使用了这些函数。
例如下面的代码,它调用了C的标准字符串拷贝函数:
- char s1[] = "teststr";
- char s2[20];
- strcpy(s2, s1);
将导致VC8报C4996警告:'strcpy' was declared deprecated。
如果代码编译时出现了大量的C4996警告,而你确信函数调用完全没有问题,为了避免使重要的错误信息淹没在无聊的警告中,可以考虑使用<boost/config/warning_disable. hpp>。
使用该头文件应保证它出现在所有头文件之前,即:
- #include <boost/config/warning_disable.hpp>
- #include <...>
最后提一点忠告,不是所有的警告都可以忽略的,有的警告预示着可能潜在的错误,这也是为什么Boost仅仅禁止了C4996这一个警告的原因。