禁用 Visual Studio 2008 中的警告
Env:Visual Studio 警告级别设置为 4, 解决方案中唯一文件中的代码:
#pragma warning( push )
#pragma warning( disable: 4503 )
#pragma warning( disable: 4702 )
#include <boost/property_tree/ptree.hpp>
#pragma warning ( pop ) //mark
#include "iostream"
int main()
{
boost::property_tree::ptree pt;
for( boost::property_tree::ptree::const_iterator it = pt.begin();
it != pt.end();
++it )
{
std::cout << it->second.data() << '\n';
}
return 0;
}
问题:编译时仍然出现警告 4503。 我尝试过的其他方法:
- 将带有“//mark”的行作为应用程序的最后一行,没有效果。
- 如果我使用#pragma warning(disable: 4503 4702)而不使用push/pop,它可以工作,但它会影响之后为整个解决方案编译的内容,即使我将#pragma warning(default: xx)放在某处,它似乎也没有将警告设置回默认状态。
谁知道为什么会发生这种情况以及在 Visual Studio 中抑制警告的最佳解决方案是什么。干杯。
Env: Visual Studio Warning Level is set to 4,
Code in the only file in solution:
#pragma warning( push )
#pragma warning( disable: 4503 )
#pragma warning( disable: 4702 )
#include <boost/property_tree/ptree.hpp>
#pragma warning ( pop ) //mark
#include "iostream"
int main()
{
boost::property_tree::ptree pt;
for( boost::property_tree::ptree::const_iterator it = pt.begin();
it != pt.end();
++it )
{
std::cout << it->second.data() << '\n';
}
return 0;
}
Problem: Warning 4503 still show up when compiling.
Something else I have tried:
- put the line with '//mark' as last line of the app, no effect.
- if I use #pragma warning( disable: 4503 4702 ) without push/pop, it works, but it affects what's been compiled afterwards for whole solution, even I put #pragma warning( default: xx ) somewhere, it doesn't seem to set the warning back to default status.
Who knows why this is happening and what's the best solution for suppressing warnings in visual studio. cheers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
从这里找到答案:http:// /connect.microsoft.com/VisualStudio/feedback/details/442051/cannot-suppress-warning-in-template-function
粗略地说,原因是因为我的代码中生成的警告而不是在头文件中,因为它是模板。如果代码是在头文件中生成的,那么它就可以工作。
found answer from here:http://connect.microsoft.com/VisualStudio/feedback/details/442051/cannot-suppress-warning-in-template-function
Roughly, the reason is because the warnings generated in my code while not in header file, because it's template. If the code is generated in header files, it would work.