Отключить / W4 предупреждения для повышения - PullRequest
4 голосов
/ 22 марта 2011

Как я могу отключить все предупреждения MSVC, которые приходят из библиотеки boost?

Я знаю, что могу отключить определенные предупреждения, где они появляются и т. Д. ... но это загромождает мой код, и если я использую макросы boost, тогда онине похоже на работу.Я хотел бы, чтобы у моего компилятора был простой способ не предупреждать меня о повышении.Возможно ли это?

Что касается дополнительной заметки, я немного удивлен, что библиотека boost не отключает все эти предупреждения внутренне, так что мы, пользователи, можем использовать ее "из коробки".

Ответы [ 3 ]

2 голосов
/ 22 марта 2011

Они очень стараются избегать предупреждений, но некоторые компиляторы предупреждают о коде, который является формально правильным, просто немного «подозрительным». Если вы измените код, чтобы отключить предупреждение, другой компилятор может предупредить этот код!

Существует политика предупреждений для кода Boost и различных компиляторов. https://svn.boost.org/trac/boost/wiki/Guidelines/WarningsGuidelines

Они также особенно осторожны, чтобы не отключать предупреждения, потому что у вас могут быть некоторые части вашего кода, где предупреждение действительно верно. Если Boost отключает предупреждение, вы можете не найти ошибки в своем коде!

1 голос
/ 22 марта 2011

Вы можете отключить предупреждения для всех проектов, изменив страницы свойств по умолчанию:

  • Откройте любой проект.
  • Нажмите на вид-> менеджер недвижимости.
  • В диспетчере свойств (возможно, вдоль левой панели) разверните проект, затем раскройте один из профилей, затем дважды щелкните одну из категорий, которые будут использовать все ваши проекты: Microsoft.Cpp.Win32.user, приложения или, возможно, Core Windows библиотеки.
  • Откроется страница Properties , но для всего кода, который вы пишете или пишете.Установите соответствующие определения препроцессора и отключите / wp64 или все, что вам нужно сделать для отдельного проекта.

Поскольку, вероятно, нежелательно отключать эти предупреждения для всех проектов, кажется, что вы можете отключитьпредупреждения в visual_c.hpp, как описано здесь: Повышение предупреждений с помощью VC ++ 9 .Но тогда вам придется вносить изменения каждый раз, когда вы обновляете свои библиотеки.

0 голосов
/ 22 марта 2011

Первое, что приходит на ум, - это создать специальный заголовочный файл, в который будут помещены все Boost #include s.Эти #include s должны быть окружены блоками #pragma

#pragma warning(push, 0)        

#include <boost/bimap.hpp>
#include <boost/function.hpp>

#pragma warning(pop)

Недостаток этого способа: некоторая неэффективность во время компиляции

...