Electroneum
warnings.h
Go to the documentation of this file.
1 #pragma once
2 
3 #if defined(_MSC_VER)
4 
5 #define PUSH_WARNINGS __pragma(warning(push))
6 #define POP_WARNINGS __pragma(warning(pop))
7 #define DISABLE_VS_WARNINGS(w) __pragma(warning(disable: w))
8 #define DISABLE_GCC_WARNING(w)
9 #define DISABLE_CLANG_WARNING(w)
10 #define DISABLE_GCC_AND_CLANG_WARNING(w)
11 
12 #else
13 
14 #include <boost/preprocessor/stringize.hpp>
15 
16 #define PUSH_WARNINGS _Pragma("GCC diagnostic push")
17 #define POP_WARNINGS _Pragma("GCC diagnostic pop")
18 #define DISABLE_VS_WARNINGS(w)
19 
20 #if defined(__clang__)
21 #define DISABLE_GCC_WARNING(w)
22 #define DISABLE_CLANG_WARNING DISABLE_GCC_AND_CLANG_WARNING
23 #else
24 #define DISABLE_GCC_WARNING DISABLE_GCC_AND_CLANG_WARNING
25 #define DISABLE_CLANG_WARNING(w)
26 #endif
27 
28 #define DISABLE_GCC_AND_CLANG_WARNING(w) _Pragma(BOOST_PP_STRINGIZE(GCC diagnostic ignored BOOST_PP_STRINGIZE(-W##w)))
29 
30 #endif