环境: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),似乎也无法将警告设置回默认状态。