在我的C ++项目中,我使用预编译头作为编译时优化。但是,当我在编译器设置中启用/ Wall选项时,我无法抑制预编译头文件中的任何警告。
标题文件:
#ifndef _PRECOMPILED_H
#define _PRECOMPILED_H
#pragma warning(push, 0)
#pragma warning(disable: 4514)
#include <vector>
#pragma warning(pop)
#endif /* _PRECOMPILED_H */
源文件:
#include "precompiled.h"
我最终在向量中发出了大量警告。
当我这样做时,但在常规文件中,一切都按预期工作。 针对这个问题的任何解决方案?
我正在使用Visual Studio 2013社区版更新4。
答案 0 :(得分:2)
不要在Visual C ++中使用/Wall
。它与g {+ -Wall
的含义不同。使用/W4
(粗略等同于g ++ -Wall
)。
答案 1 :(得分:0)
我没有得到包含矢量的4514警告。 您只禁用了4514,并且仅在矢量标题中。我认为这恰好发生在碰巧使用vector的其他代码中,并且警告消息(你没有发布)引用了向量头,因为这是优化器删除函数的地方。