我在VS 2015上创建了一个默认的空项目,并将警告设置为/Wall
。我有一个包含以下内容的单个源文件:
#pragma warning(push, 3)
#include <functional>
#pragma warning(pop)
//#pragma warning( disable : 4710 )
int main()
{
}
我收到以下错误:
1>c:\users\flatmouse\documents\visual studio 2015\projects\project72\project72\source.cpp(10): warning C4710: 'std::exception_ptr std::exception_ptr::_Current_exception(void) throw()': function not inlined
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\exception(299): note: see declaration of 'std::exception_ptr::_Current_exception'
1>c:\users\flatmouse\documents\visual studio 2015\projects\project72\project72\source.cpp(10): warning C4710: 'std::exception_ptr std::current_exception(void) noexcept': function not inlined
1> c:\program files (x86)\microsoft visual studio 14.0\vc\include\exception(358): note: see declaration of 'std::current_exception'
接下来,我尝试将弹出窗口移到最后一行,将所有源代码的警告级别保持在3:
#pragma warning(push, 3)
#include <functional>
//#pragma warning( disable : 4710 )
int main()
{
}
#pragma warning(pop)
但我仍然会遇到同样的错误。
为什么还会报告警告?
答案 0 :(得分:2)
使用Visual C ++时使用/W4
,而不是/Wall
。后者只是要求大量的愚蠢警告。过去,/W4
会对Windows API和C ++标准库头文件发出大量警告,但很高兴在Visual C ++ 2015中不再如此。