В gcc4.6 и более поздних версиях вы можете использовать прагмы для подавления определенных предупреждений и делать это подавление только для определенного блока кода, т.е.:
#pragma GCC diagnostic
push #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
// Code that causes warning goes here
#pragma GCC diagnostic pop
Push / Pop используются для сохранения параметров диагностики, которые были до обработки вашего кода.
Это был бы гораздо лучший подход, чем использование "#pragma GCC system_header
" для подавления всех предупреждений. (Конечно, в старшей версии gcc вы можете «застрять» с подходом #pragma GCC system_header
!)
Вот хорошая ссылка на подавление предупреждений gcc:
http://www.dbp -consulting.com / учебники / SuppressingGCCWarnings.html
На этой странице также описано, как использовать -fdiagnostics-show-option
, чтобы узнать, какая опция управляет конкретным предупреждением.
Конечно, как уже упоминали другие, как правило, гораздо предпочтительнее устранить причину всех предупреждений, чем их подавлять! Однако иногда это невозможно.