Подавить предупреждение о предварительно скомпилированном заголовке msvc

В моем проекте 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 Community Edition, обновление 4.


person Gotcha    schedule 14.02.2015    source источник


Ответы (2)


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

person Cheers and hth. - Alf    schedule 14.02.2015

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

person Kenny Ostrom    schedule 14.02.2015