Refureku v2.2.0
C++17 runtime reflection library.
DisableWarningMacros.h
1
8#pragma once
9
10#if defined(__GNUC__) || defined(__clang__)
11
12#define __RFK_PRAGMATIZE(param) _Pragma(#param)
13#define __RFK_DISABLE_WARNING_PUSH __RFK_PRAGMATIZE(GCC diagnostic push)
14#define __RFK_DISABLE_WARNING_POP __RFK_PRAGMATIZE(GCC diagnostic pop)
15#define __RFK_DISABLE_WARNING(warningName) __RFK_PRAGMATIZE(GCC diagnostic ignored #warningName)
16
17#define __RFK_DISABLE_WARNING_INIT_SEG
18#define __RFK_DISABLE_WARNING_OFFSETOF __RFK_DISABLE_WARNING(-Winvalid-offsetof)
19#define __RFK_DISABLE_WARNING_UNSCOPED_ENUM
20#define __RFK_DISABLE_WARNING_UNUSED_RESULT __RFK_DISABLE_WARNING(-Wunused-result)
21
22#if defined (__clang__)
23//clang specific warning flags
24#define __RFK_DISABLE_WARNING_UNUSED_PRIVATE_FIELD __RFK_DISABLE_WARNING(-Wunused-private-field)
25#define __RFK_DISABLE_WARNING_LANGUAGE_EXTENSION_TOKEN __RFK_DISABLE_WARNING(-Wlanguage-extension-token)
26#define __RFK_DISABLE_WARNING_MISSING_OVERRIDE __RFK_DISABLE_WARNING(-Winconsistent-missing-override)
27#define __RFK_DISABLE_WARNING_UNDEFINED_INLINE __RFK_DISABLE_WARNING(-Wundefined-inline)
28
29#else
30//gcc specific warning flags
31#define __RFK_DISABLE_WARNING_UNUSED_PRIVATE_FIELD
32#define __RFK_DISABLE_WARNING_LANGUAGE_EXTENSION_TOKEN
33#define __RFK_DISABLE_WARNING_MISSING_OVERRIDE
34#define __RFK_DISABLE_WARNING_UNDEFINED_INLINE
35
36#endif
37
38#elif defined(_MSC_VER)
39
40#define __RFK_DISABLE_WARNING_PUSH __pragma(warning(push))
41#define __RFK_DISABLE_WARNING_POP __pragma(warning(pop))
42#define __RFK_DISABLE_WARNING(warningNumber) __pragma(warning(disable: warningNumber))
43
44#define __RFK_DISABLE_WARNING_INIT_SEG __RFK_DISABLE_WARNING(4073)
45#define __RFK_DISABLE_WARNING_OFFSETOF
46#define __RFK_DISABLE_WARNING_UNSCOPED_ENUM __RFK_DISABLE_WARNING(26812)
47#define __RFK_DISABLE_WARNING_UNUSED_PRIVATE_FIELD
48#define __RFK_DISABLE_WARNING_LANGUAGE_EXTENSION_TOKEN
49#define __RFK_DISABLE_WARNING_UNUSED_RESULT __RFK_DISABLE_WARNING(4834)
50#define __RFK_DISABLE_WARNING_MISSING_OVERRIDE
51#define __RFK_DISABLE_WARNING_UNDEFINED_INLINE
52
53#else
54
55#define __RFK_DISABLE_WARNING_PUSH
56#define __RFK_DISABLE_WARNING_POP
57#define __RFK_DISABLE_WARNING(param)
58
59#define __RFK_DISABLE_WARNING_INIT_SEG
60#define __RFK_DISABLE_WARNING_OFFSETOF
61#define __RFK_DISABLE_WARNING_UNSCOPED_ENUM
62#define __RFK_DISABLE_WARNING_UNUSED_PRIVATE_FIELD
63#define __RFK_DISABLE_WARNING_LANGUAGE_EXTENSION_TOKEN
64#define __RFK_DISABLE_WARNING_UNUSED_RESULT
65#define __RFK_DISABLE_WARNING_MISSING_OVERRIDE
66#define __RFK_DISABLE_WARNING_UNDEFINED_INLINE
67
68#endif