我正在运行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已被弃用"警告。
答案 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中,它再次为我工作。