我正在使用一個開源項目(一個服務器),基本上啓動它加載一個大的XML項目數據庫,數百個項目屬性。它使用了大量的else/ifs來檢查這些屬性,我冒昧地再增加大約20個,現在看來我打破了編譯器。我搜索了周圍,沒有我找到的答案實際上給了我一個可行的選擇,所以我只是想知道如果你可以禁用這個,我已經嘗試使用#pragma(因爲他們使用這個在其他一些警告本身)。我對這部分C++沒有太多經驗,所以我可能做錯了。C++禁用C1061錯誤 - 塊嵌套深?
#pragma warning(disable:1061)
是我試過了,沒有工作給我和錯誤,它不是一個有效的警告。是否有可能禁用此錯誤?
謝謝。
//編輯 - 解決方案 只是想增加我如何解決這個問題。我最終創建了一個函數,將所有的自定義屬性都放入了,所以我不能通過128級限制。
bool isCustomAttribute(std::string strValue, int intValue, xmlNodePtr itemAttributesNode, ItemType& it)
,我插入別人IFS笑,也許不是漂亮的陣列,但它是一個快速簡便的解決辦法。
我想這個錯誤不能被禁用,似乎是某種形式的靜態限制,編譯器不能超過。作爲一般規則,您不能(也不應該)禁止錯誤消息。警告可以被抑制,但只有當你確信警告在這種情況下無效時才能進行警告。 – Will
如果你真的在重載編譯器,要求它不要告訴你這些信息不會有多大幫助。我會考慮簡化代碼,比如剪掉一些部分並將它們放在不同的函數中。 –
取決於您的編譯器,您可能可以提高最大塊深度,但我認爲您應該改爲問如何更好地考慮代碼。 – cgmb