2017-06-13 165 views
0

我編譯我的C++項目旗-std = C++ 11,因爲我在一個類使用覆蓋,即使這樣我得到這樣的警告:禁用覆蓋警告C++

warning: override controls (override/final) only available with - 
std=c++11 or -std=gnu++11 [enabled by default] 

我想知道如何禁用此警告,或者如果您能告訴我我做錯了什麼,我將不勝感激。

+4

你應該調查爲什麼你得到這個警告而不是禁用它。 –

+3

顯然你沒有使用'-std = C++ 11'。這種情況通常發生在你使用IDE時,你指定了一個額外的編譯器標誌'-std = C++ 11',但稍後它會被不同的「標準選擇設置」覆蓋。您可能可以找到命令行參數來調用編譯器並檢查。 – nwp

+0

您是否確定*沒有指定多個「-std =」選項?運行編譯器時,* actual *命令行的外觀如何? –

回答

1

我不認爲這個警告可以單獨禁用。

而不是禁用警告,我建議您修復該錯誤。您的代碼使用C++ 11中引入的語言功能,但您可以使用早期的標準進行編譯。您有兩種選擇:

  • 不要使用標準功能(「新」;已過了6年...)的標準功能,不支持使用的標準(和編譯器)。
  • 使用支持該標準功能的編譯器編譯啓用的新標準版本。
0

你可以編譯禁用警告

#pragma warning(disable : _WARNING_NUMBER_) 

凡_WARNING_NUMBER_是你的警告數量

然而,你應該總是聽你的編譯器和固定預警,而不是禁用