我在哪里放#pragma警告(禁用:4503)才能正常工作?

时间:2016-09-29 12:43:31

标签: c++ warnings pragma visual-studio-2015

我有一个定义类的.h文件。该类有一个成员,它是一个嵌套在嵌套在地图等中的地图的地图。

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警告弹出,名字太长而被截断。

我试图压制它。无论我放在哪里&#34; #pragma warning(禁用:4503)&#34;它没有用。我尝试在.h文件的开头,在.cpp文件的开头使用这个类 - 没有任何作用。编译器仍然会发出警告。

我正在使用VS 2015社区。

2 个答案:

答案 0 :(得分:0)

如果您在#pragma warning(disable : 4503) push之后放置C4503 warnings ,则会收到警告。如果您将置于之前,则无警告。这意味着上面的代码会生成disabled,即使它是#pragma warning (disable:4503) #pragma warning (push, 1) . . . . #pragma warning (pop)

例如,

{{1}}

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

答案 1 :(得分:0)

对于其他可能需要它的人,因为我确定你现在已经弄清楚了:

#pragma行只是在你试图压制警告的行前面。