ADTF
Loading...
Searching...
No Matches
deprecated.h
Go to the documentation of this file.
1
14
15#ifndef A_UTIL_UTIL_PREPROCESSOR_DEPRECATED_HEADER_INCLUDED
16#define A_UTIL_UTIL_PREPROCESSOR_DEPRECATED_HEADER_INCLUDED
17
19
21#ifdef _MSC_VER
22#define DEV_ESSENTIAL_INTERNAL_PRAGMA_WARNING(msg) \
23 __pragma(message(__FILE__ "(" A_UTIL_TO_STRING(__LINE__) "): " msg))
24#else // ! _MSC_VER
25#define DEV_ESSENTIAL_INTERNAL_TO_PRAGMA_WARNING(msg) A_UTIL_TO_STRING(GCC warning msg)
26#define DEV_ESSENTIAL_INTERNAL_STRINGIFY_PRAGMA_WARNING(msg) \
27 DEV_ESSENTIAL_INTERNAL_TO_PRAGMA_WARNING(#msg)
28#define DEV_ESSENTIAL_INTERNAL_PRAGMA_WARNING(msg) \
29 _Pragma(DEV_ESSENTIAL_INTERNAL_STRINGIFY_PRAGMA_WARNING(msg))
30#endif // _MSC_VER
32
33#ifndef DEV_ESSENTIAL_DISABLE_DEPRECATED_WARNINGS
44#define DEV_ESSENTIAL_DEPRECATED(msg) \
45 [[deprecated(msg " To disable this warning, define " \
46 "DEV_ESSENTIAL_DISABLE_DEPRECATED_WARNINGS.")]]
47
68#ifdef _MSC_VER
69#define DEV_ESSENTIAL_DEPRECATED_MACRO(macro_name, reason) \
70 DEV_ESSENTIAL_INTERNAL_PRAGMA_WARNING( \
71 "\"" #macro_name \
72 "\" is deprecated and will be removed in an upcoming version. Reason: " #reason \
73 " Compile with /D \"DEV_ESSENTIAL_DISABLE_DEPRECATED_WARNINGS\" to disable this warning.")
74#else // !_MSC_VER
75// clang-format off
76#define DEV_ESSENTIAL_DEPRECATED_MACRO(macro_name, reason) \
77 DEV_ESSENTIAL_INTERNAL_PRAGMA_WARNING( \
78 #macro_name is deprecated and will be removed in an upcoming version. Reason: reason \
79 Compile with -DDEV_ESSENTIAL_DISABLE_DEPRECATED_WARNINGS to disable this warning.)
80// clang-format on
81#endif // _MSC_VER
82
83#else // DEV_ESSENTIAL_DISABLE_DEPRECATED_WARNINGS
84#define DEV_ESSENTIAL_DEPRECATED(_)
85#define DEV_ESSENTIAL_DEPRECATED_MACRO(x, y)
86#endif // DEV_ESSENTIAL_DISABLE_DEPRECATED_WARNINGS
87
88#endif // A_UTIL_UTIL_PREPROCESSOR_DEPRECATED_HEADER_INCLUDED