I have found a decent workaround, based on what @Georg Fritzsche suggested:
I have added the various incriminated boost headers to the .pch file (the pre-compiled header), and wrapped them around a #pragma push - #pragma pop block, like this:
// 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
This works perfectly, and it's not as annoying as having to surround the boost headers with #pragma in each .cpp file, as I feared.