2015-02-14 5 views
0

В моем проекте на C++ я использую предварительно скомпилированные заголовки в качестве оптимизации времени компиляции. Однако, когда я включаю параметр/Wall в настройках компилятора, я не могу подавить какие-либо предупреждения в предварительно скомпилированном файле заголовка.msvc precompiled header warning suppress

Заголовочный файл:

#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.

ответ

2

Не используйте /Wall с Visual C++. Это не значит, что -Wall с g ++. Используйте /W4 (грубая эквивалентность с g ++ -Wall).

0

Я не получил предупреждение 4514 от включения вектора. Вы отключили только 4514 и только в заголовке вектора. Я думаю, что это происходит в другом коде, который используется для использования вектора, а предупреждающее сообщение (которое вы не отправляли) ссылается на заголовок вектора, так как там объявлена ​​функция, которую удаляет оптимизатор.