Отключить предупреждения в Visual Studio 2008 - PullRequest
4 голосов
/ 15 ноября 2010

Env: Уровень предупреждения Visual Studio установлен на 4, Код в единственном файле в решении:

#pragma warning( push )
#pragma warning( disable: 4503 )
#pragma warning( disable: 4702 )
#include <boost/property_tree/ptree.hpp>
#pragma warning ( pop ) //mark

#include "iostream"

int main()
{
boost::property_tree::ptree pt;
for( boost::property_tree::ptree::const_iterator it = pt.begin();
     it != pt.end();
     ++it )
    {
    std::cout << it->second.data() << '\n';
    }

return 0;
}

Проблема: предупреждение 4503 по-прежнему отображается при компиляции.Что-то еще, что я пробовал:

  1. поставить строку с 'mark' в качестве последней строки приложения, без эффекта.
  2. , если я использую предупреждение #pragma (отключено: 45034702) без push / pop, он работает, но влияет на то, что было скомпилировано впоследствии для всего решения, даже если я поместил предупреждение #pragma (по умолчанию: xx) где-то, похоже, оно не возвращает предупреждение в состояние по умолчанию.*

Кто знает, почему это происходит, и что является лучшим решением для подавления предупреждений в визуальной студии.веселит.

1 Ответ

2 голосов
/ 18 ноября 2010

нашел ответ отсюда: http://connect.microsoft.com/VisualStudio/feedback/details/442051/cannot-suppress-warning-in-template-function

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

...