1#ifndef RBIMPL_WARNING_PUSH_H
2#define RBIMPL_WARNING_PUSH_H
49#if RBIMPL_COMPILER_SINCE(MSVC, 12, 0, 0)
51# define RBIMPL_WARNING_PUSH() __pragma(warning(push))
52# define RBIMPL_WARNING_POP() __pragma(warning(pop))
53# define RBIMPL_WARNING_ERROR(flag) __pragma(warning(error: flag))
54# define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag))
56#elif RBIMPL_COMPILER_SINCE(Intel, 13, 0, 0)
57# define RBIMPL_WARNING_PUSH() __pragma(warning(push))
58# define RBIMPL_WARNING_POP() __pragma(warning(pop))
59# define RBIMPL_WARNING_ERROR(flag) __pragma(warning(error: flag))
60# define RBIMPL_WARNING_IGNORED(flag) __pragma(warning(disable: flag))
62#elif RBIMPL_COMPILER_IS(Clang) || RBIMPL_COMPILER_IS(Apple)
64# define RBIMPL_WARNING_PRAGMA0(x) _Pragma(# x)
65# define RBIMPL_WARNING_PRAGMA1(x) RBIMPL_WARNING_PRAGMA0(clang diagnostic x)
66# define RBIMPL_WARNING_PRAGMA2(x, y) RBIMPL_WARNING_PRAGMA1(x # y)
67# define RBIMPL_WARNING_PUSH() RBIMPL_WARNING_PRAGMA1(push)
68# define RBIMPL_WARNING_POP() RBIMPL_WARNING_PRAGMA1(pop)
69# define RBIMPL_WARNING_ERROR(flag) RBIMPL_WARNING_PRAGMA2(error, flag)
70# define RBIMPL_WARNING_IGNORED(flag) RBIMPL_WARNING_PRAGMA2(ignored, flag)
72#elif RBIMPL_COMPILER_SINCE(GCC, 4, 6, 0)
74# define RBIMPL_WARNING_PRAGMA0(x) _Pragma(# x)
75# define RBIMPL_WARNING_PRAGMA1(x) RBIMPL_WARNING_PRAGMA0(GCC diagnostic x)
76# define RBIMPL_WARNING_PRAGMA2(x, y) RBIMPL_WARNING_PRAGMA1(x # y)
77# define RBIMPL_WARNING_PUSH() RBIMPL_WARNING_PRAGMA1(push)
78# define RBIMPL_WARNING_POP() RBIMPL_WARNING_PRAGMA1(pop)
79# define RBIMPL_WARNING_ERROR(flag) RBIMPL_WARNING_PRAGMA2(error, flag)
80# define RBIMPL_WARNING_IGNORED(flag) RBIMPL_WARNING_PRAGMA2(ignored, flag)
84# define RBIMPL_WARNING_PUSH()
85# define RBIMPL_WARNING_POP()
86# define RBIMPL_WARNING_ERROR(flag)
87# define RBIMPL_WARNING_IGNORED(flag)
Defines RBIMPL_COMPILER_IS.
Defines RBIMPL_COMPILER_SINCE.