2015-04-22 2 views
-1

У меня есть приложение, которое использует многочисленные шаблоны и специализированные шаблоны, а во время компиляции MSVC выводится много сообщений, показывающих, как скомпилируются шаблоны. Это приводит к невероятно трудному времени нахождения фактической ошибки компиляции. Эти сообщения не выводятся, когда приложение скомпилировано в Linux с помощью g ++.MSVC - Подавление шаблона, скомпилированного с сообщениями

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\INCLUDE\map(382) 
: see reference to function template instantiation 'std::pair<std::_Tree_iterator<std::_Tree_val<std::_Tree_simple_types<std::pair<const _Kty,_Ty>>>>,bool> std: 
:_Tree<std::_Tmap_traits<_Kty,_Ty,_Pr,_Alloc,true>>::insert<std::pair<std::string,uint64_t>>(_Valty &&)' being compiled 
    with 
    [ 
     _Kty=std::string 
,   _Ty=size_t 
,   _Pr=std::less<std::string> 
,   _Alloc=std::allocator<std::pair<const std::string,size_t>> 
,   _Valty=std::pair<std::string,uint64_t> 
    ] 

Есть ли способ подавить эти более или менее бесполезные сообщения? Или, возможно, понизить настройку подробностей? Я пробовал посмотреть на link, но я не уверен, есть ли флаг, который относится к сообщениям, которые я вижу.

ответ

0

Сообщение связано с предупреждением (или ошибкой) с конкретным экземпляром шаблона. Если это предупреждение, вы можете его подавить (с помощью предупреждения #pragma или настроек проекта), и это сообщение также исчезнет. Или вы можете исправить причину предупреждения. Невозможно подавить это сообщение, не подавив предупреждение, потому что без него предупреждение не имеет большого смысла.

Смежные вопросы