У меня кроссплатформенный проект.Он компилируется с использованием разных компиляторов (gcc, clang, msvc ++).
На данный момент единственная проблема с моими предупреждениями связана с заголовками Boost.Gcc генерирует их для моего проекта, компилируемого для платформы Android.
Что я хотел бы сделать, это отключить генерацию всех предупреждений для заголовков Boost (потому что это бесполезная вещь для меня).
Итак, я создал следующие два файла:
compiler_warnings_pop.h
//WARNING: no #pragma once here
#if defined(__clang__)
#pragma clang diagnostic pop
#elif defined(__GNUC__) || defined(__GNUG__)
#pragma GCC diagnostic pop
#elif defined(_MSC_VER)
#pragma warning(pop)
#endif
compiler_warnings_push.h
//WARNING: no #pragma once here
#if defined(__clang__)
#pragma clang diagnostic push
#elif defined(__GNUC__) || defined(__GNUG__)
#pragma GCC diagnostic push
#elif defined(_MSC_VER)
#pragma warning(push)
#endif
Теперь мне нужен код, который может временно отключить все предупреждения для любого компилятора.Есть один?Поэтому я мог бы использовать следующий код:
#include <compiler_warnings_push.h>
#include <compiler_warnings_disable.h>
#include <boost/...>
#include <compiler_warnings_pop.h>