Я нашел достойное решение, основанное на том, что @Georg Fritzsche предложил:
Я добавил различные инкриминированные заголовки повышения в файл .pch (предварительно скомпилированный заголовок) и обернул их вокруг блока #pragma push
- #pragma pop
, например:
// We do not want to have warnings about Boost headers!
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wconversion"
#pragma GCC diagnostic ignored "-Wshadow"
#include <boost/date_time/posix_time/posix_time_types.hpp>
...
#pragma GCC diagnostic pop
Это работает отлично, и это не так раздражает, как необходимость заключать в заголовки повышения #pragma
в каждом файле .cpp, как я и опасался.