2015-10-23 81 views
-4

我得看起來像一個警告:迂腐ISO標準

In file included from /[myapplication]/[myfile].h:262:9: erreur: extra ‘;’ [-Wpedantic] 

不過,我想,忽略pedantic錯誤是對ISO C/C++規範。這是真的嗎?

編輯:我編輯迅速看到,該協議棧西這裏充滿downvote,快樂的人:

using namespace my:name:space; 

namespace my 
{ 
    namespace name 
    { 
     namespace space 
     { 

      class myclass 
      { 
       public: 

       [Lots of code like the one below] 

       /** [Comments] */ 

       template<class T> 
        static bool 
        getServerProxy(const std::string & p_sServerName, 
        int p_iProxyInstanceID, shared_ptr<T> &p_ServerProxy) 
       { 
        return getServerProxy(p_sServerName, -1, p_iProxyInstanceID, 
        p_ServerProxy); 
       } 
       ; // Pedantic Error Shown here 

       [Lots of code like the one up there] 

       }; 

      } 
     } 
    } 
+1

ERREUR,請告訴我們問題 – Columbo

+0

文件,請你在哪裏得到這個警告添加代碼.. – HadeS

+3

你可以只取出多餘的分號? – Barry

回答

2

不過,我想,忽略迂腐的錯誤是對ISO C/C++規範

這裏似乎有些相當混亂。讓我嘗試把它分解成單個的誤解,並清除起來:

  1. 沒有C/C++ ISO標準,因爲這是兩個不同的語言,每個都有自己的ISO標準(S):

  2. C++和C標準不區分警告和錯誤。在某些有問題的代碼中,標準要求的內容稱爲「診斷消息」。這個消息看起來像什麼是未指定的,因此是一個質量實施問題。意思是:

    • 如果編譯器只是爲每一種格式不正確的代碼打印「X」,那麼編譯器將100%符合標準(但仍然是低質量)。
    • 對符合標準的錯誤碼發出警告是
    • 從標準的角度來看,如果發出警告或錯誤,它永不重要。
  3. 忽略錯誤不能違反ISO規範。您的代碼可能違反ISO標準,或者您的編譯器(更準確地說,您的編譯器使用一組選項進行調用)可能違反ISO標準。 ISO標準是否重要是您自己的決定。規範是達到目的的手段。當然,如果您的目標是長期兼容性和跨平臺軟件,那麼符合ISO標準肯定是一個好主意。通過使用-Wpedantic,你已經有效地打定了主意:ISO規範對你很重要,所以你最好修改代碼。

+0

恩,非常感謝你回答這個問題!你確實得到了我需要的信息!再次感謝 – xhaltar