2015-06-24 27 views
2

我運行Windows 7.1 64位,升壓1.58.0,和(最近)的MinGW 5.1.0 64位。MinGW的5.1.0似乎不再禁止警告

當我之前是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 

抑制不必要的警告,和它的工作 - 大部分時間。如果代碼中存在合法錯誤,無論如何都會出現這些壓抑的警告 - 但我可以忍受這一點。

昨天,我升級到5.1.0 MinGW的64位。上面顯示的編排似乎不再壓制警告。我在Google上找不到任何會改變任何內容的內容。

我真的想擁有這個功能再次合作,因爲我使用的有幾十個「的std :: auto_ptr的已棄用」的警告加速測試。

+0

請正確標記。沒有'MinGW 4.9.2'這樣的東西,(MinGW-5.1.0'是MinGW GCC-3.4.5'的一個長期不存在的安裝程序)。也許你的意思是'mingw-w64 GCC-4.9.2'和'mingw-w64 GCC-5.1.0',但都不是'MinGW'。 –

+0

我有gcc版本5.2.0(x86_64的-POSIX-SEH-REV0,由MinGW的-W64項目生成)和升壓/ ASIO同樣的問題。然而個下面的代碼工作,因爲它應該(GCC的#pragma診斷推 的#pragma GCC診斷忽略 「-Wunused變量」 空隙f()的 { INT X(0);} 的#pragma GCC診斷彈出) – Renaud

回答

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使它爲我工作。