2016-09-29 56 views
0

我有一個.h文件定義一個類。這個類有一個成員是嵌套在嵌套在一個地圖地圖的地圖等我在哪裏可以使用#pragma warning(disable:4503)來使其工作?

std::map<ItemWieldMode, 
    std::map<AgentType::HandState, 
     std::map<AgentType::MovementState, 
       std::map<AgentType::BodyState, 
        std::map<Vec2<int>, sp<AnimationEntry>>>>>> standart_animations; 

這是有問題的文件https://github.com/Istrebitel/OpenApoc/blob/master/game/state/battle/battleunitanimationpack.h

自然,C4503警告持久性有機污染物,名字太長,被截斷。

我試圖壓制它。無論我在哪裏放置「#pragma警告(禁用:4503)」它都不起作用。我在.h文件的開頭嘗試使用這個類的.cpp文件的開頭 - 沒有任何工作。編譯器仍然發出警告。

我正在使用VS 2015社區。

+0

http://connect.microsoft.com/VisualStudio/feedbackdetail/view/898267/not-able-to-suppress-warning-4503 -decorated-name-length-exceeded-name-was-truncated –

+0

@HansPassant哦大聲笑,所以他們甚至不打擾修復它?典型的M $ ... – Istrebitel

回答

0

如果你把#pragma warning(disable : 4503)push你會得到警告。如果您在之前加,則有沒有警告。這意味着上面的代碼生成C4503 warnings,即使它是disabled

例如,

#pragma warning (disable:4503) 
#pragma warning (push, 1) 

. 
. 
. 
. 

#pragma warning (pop) 

參考鏈接:https://msdn.microsoft.com/en-us/library/2c8f766e(v=vs.100).aspx

+0

我試着把這個放在.h文件的開頭和結尾,並且警告仍然發生 – Istrebitel

相關問題