MinGW 5.1.0似乎不再禁止警告

时间:2015-06-24 22:03:59

标签: c++ gcc mingw gcc-warning

我正在运行Windows 7.1 64位,Boost 1.58.0和(最近)MinGW 5.1.0 64位。

当我以前运行MinGW 4.9.2时,我使用了以下

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-variable"
#include "boost/asio/ip/host_name.hpp" // for host_name()
#pragma GCC diagnostic pop

抑制不必要的警告,并且大部分时间都有效。如果代码中存在合法错误,则无论如何都会出现这些被抑制的警告 - 但我可以忍受这种错误。

昨天,我升级到64位MinGW 5.1.0。上面显示的pragma似乎不再抑制警告。我在谷歌上找不到任何可以改变的东西。

我真的希望这个功能再次运行,因为我使用的Boost测试有几十个" std :: auto_ptr已被弃用"警告。

1 个答案:

答案 0 :(得分:0)

查看错误:

In file included from C:/C++/MinGW-w64/5.1.0/i686-w64-mingw32/include/c++/memory:81:0,
             from ../common/include/boost/asio/detail/addressof.hpp:21,
             from ../common/include/boost/asio/detail/handler_alloc_helpers.hpp:19,
             from ../common/include/boost/asio/detail/bind_handler.hpp:19,
             from ../common/include/boost/asio/detail/wrapped_handler.hpp:18,
             from ../common/include/boost/asio/io_service.hpp:24,
             [...]:
boost/smart_ptr/shared_ptr.hpp:549:38: warning: 'template<class> class std::auto_ptr' is deprecated [-Wdeprecated-declarations]
     this_type( static_cast< std::auto_ptr<Y> && >( r ) ).swap( *this );
                                  ^

您可以看到编译器标志不再是-Wunused-variable,而是现在-Wdeprecated-declarations。 反映在#pragma中,它再次为我工作。