IDS peak genericC++
v1.17.0
Loading...
Searching...
No Matches
peak_common_defines.h
Go to the documentation of this file.
1
5
6
#pragma once
7
8
// clang-format off
9
#define PEAK_COMMON_CPP_STANDARD_14 201402L
10
#define PEAK_COMMON_CPP_STANDARD_17 201702L
11
// clang-format on
12
13
#ifdef __has_c_attribute
14
# define PEAK_COMMON_has_c_attribute(x) __has_c_attribute(x)
15
#else
16
# define PEAK_COMMON_has_c_attribute(x) 0
17
#endif
18
19
#if defined(__cplusplus)
20
# define PEAK_COMMON_CPP_STANDARD __cplusplus
21
#elif defined(_MSVC_LANG)
22
# define PEAK_COMMON_CPP_STANDARD _MSVC_LANG
23
#endif
24
25
#if defined(_MSC_VER)
26
# define PEAK_COMMON_BEGIN_DISABLE_DEPRECATED_WARNINGS __pragma(warning(push)) __pragma(warning(disable : 4'996))
27
# define PEAK_COMMON_END_DISABLE_DEPRECATED_WARNINGS __pragma(warning(pop))
28
#elif defined(__clang__) || defined(__GNUC__)
29
# define PEAK_COMMON_BEGIN_DISABLE_DEPRECATED_WARNINGS \
30
_Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
31
# define PEAK_COMMON_END_DISABLE_DEPRECATED_WARNINGS _Pragma("GCC diagnostic pop")
32
#else
33
# define PEAK_COMMON_BEGIN_DISABLE_DEPRECATED_WARNINGS
34
# define PEAK_COMMON_END_DISABLE_DEPRECATED_WARNINGS
35
#endif
36
37
#if !defined(PEAK_COMMON_NO_WARN_DEPRECATED) \
38
&& ((defined(PEAK_COMMON_CPP_STANDARD) && PEAK_COMMON_CPP_STANDARD >= PEAK_COMMON_CPP_STANDARD_14) \
39
|| PEAK_COMMON_has_c_attribute(deprecated))
48
# define PEAK_COMMON_DEPRECATED_MSG(MESSAGE) [[deprecated(MESSAGE)]]
49
#elif !defined(PEAK_COMMON_NO_WARN_DEPRECATED) && (defined(__clang__) || defined(__GNUC__) || defined(__GNUG__))
50
# define PEAK_COMMON_DEPRECATED_MSG(MESSAGE) __attribute__((deprecated(MESSAGE)))
51
#else
52
# define PEAK_COMMON_DEPRECATED_MSG(MESSAGE)
53
#endif
54
55
#if !defined(PEAK_COMMON_NO_WARN_DEPRECATED) && defined(PEAK_COMMON_CPP_STANDARD) \
56
&& PEAK_COMMON_CPP_STANDARD >= PEAK_COMMON_CPP_STANDARD_17
65
# define PEAK_COMMON_DEPRECATED_ENUM_MSG(MESSAGE) [[deprecated(MESSAGE)]]
66
#elif !defined(PEAK_COMMON_NO_WARN_DEPRECATED) && (defined(__clang__) || defined(__GNUC__) || defined(__GNUG__))
67
# define PEAK_COMMON_DEPRECATED_ENUM_MSG(MESSAGE) __attribute__((deprecated(MESSAGE)))
68
#else
69
# define PEAK_COMMON_DEPRECATED_ENUM_MSG(MESSAGE)
70
#endif
71
72
#if (defined(PEAK_COMMON_CPP_STANDARD) && PEAK_COMMON_CPP_STANDARD >= PEAK_COMMON_CPP_STANDARD_17) \
73
|| PEAK_COMMON_has_c_attribute(nodiscard)
82
# define PEAK_COMMON_NO_DISCARD [[nodiscard]]
83
#elif defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
84
# define PEAK_COMMON_NO_DISCARD __attribute__((warn_unused_result))
85
#elif defined(_MSC_VER)
86
# include <sal.h>
87
# define PEAK_COMMON_NO_DISCARD _Check_return_
88
#else
89
# define PEAK_COMMON_NO_DISCARD
90
#endif
91
92
#if (defined(PEAK_COMMON_CPP_STANDARD) && PEAK_COMMON_CPP_STANDARD >= PEAK_COMMON_CPP_STANDARD_17) \
93
|| PEAK_COMMON_has_c_attribute(maybe_unused)
102
# define PEAK_COMMON_MAYBE_UNUSED [[maybe_unused]]
103
#elif defined(__clang__) || defined(__GNUC__) || defined(__GNUG__)
104
# define PEAK_COMMON_MAYBE_UNUSED __attribute__((unused))
105
#else
106
# define PEAK_COMMON_MAYBE_UNUSED
107
#endif
peak_common_c
detail
peak_common_defines.h
Send mail feedback
Generated on Wed Sep 23 2026