Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
third-party
realsense-file
boost
boost
detail
detail/workaround.hpp
Go to the documentation of this file.
1
// Copyright David Abrahams 2002.
2
// Distributed under the Boost Software License, Version 1.0. (See
3
// accompanying file LICENSE_1_0.txt or copy at
4
// http://www.boost.org/LICENSE_1_0.txt)
5
#ifndef WORKAROUND_DWA2002126_HPP
6
# define WORKAROUND_DWA2002126_HPP
7
8
// Compiler/library version workaround macro
9
//
10
// Usage:
11
//
12
// #if BOOST_WORKAROUND(BOOST_MSVC, < 1300)
13
// // workaround for eVC4 and VC6
14
// ... // workaround code here
15
// #endif
16
//
17
// When BOOST_STRICT_CONFIG is defined, expands to 0. Otherwise, the
18
// first argument must be undefined or expand to a numeric
19
// value. The above expands to:
20
//
21
// (BOOST_MSVC) != 0 && (BOOST_MSVC) < 1300
22
//
23
// When used for workarounds that apply to the latest known version
24
// and all earlier versions of a compiler, the following convention
25
// should be observed:
26
//
27
// #if BOOST_WORKAROUND(BOOST_MSVC, BOOST_TESTED_AT(1301))
28
//
29
// The version number in this case corresponds to the last version in
30
// which the workaround was known to have been required. When
31
// BOOST_DETECT_OUTDATED_WORKAROUNDS is not the defined, the macro
32
// BOOST_TESTED_AT(x) expands to "!= 0", which effectively activates
33
// the workaround for any version of the compiler. When
34
// BOOST_DETECT_OUTDATED_WORKAROUNDS is defined, a compiler warning or
35
// error will be issued if the compiler version exceeds the argument
36
// to BOOST_TESTED_AT(). This can be used to locate workarounds which
37
// may be obsoleted by newer versions.
38
39
# ifndef BOOST_STRICT_CONFIG
40
41
#include "../config.hpp"
42
43
#ifndef __BORLANDC__
44
#define __BORLANDC___WORKAROUND_GUARD 1
45
#else
46
#define __BORLANDC___WORKAROUND_GUARD 0
47
#endif
48
#ifndef __CODEGEARC__
49
#define __CODEGEARC___WORKAROUND_GUARD 1
50
#else
51
#define __CODEGEARC___WORKAROUND_GUARD 0
52
#endif
53
#ifndef _MSC_VER
54
#define _MSC_VER_WORKAROUND_GUARD 1
55
#else
56
#define _MSC_VER_WORKAROUND_GUARD 0
57
#endif
58
#ifndef _MSC_FULL_VER
59
#define _MSC_FULL_VER_WORKAROUND_GUARD 1
60
#else
61
#define _MSC_FULL_VER_WORKAROUND_GUARD 0
62
#endif
63
#ifndef BOOST_MSVC
64
#define BOOST_MSVC_WORKAROUND_GUARD 1
65
#else
66
#define BOOST_MSVC_WORKAROUND_GUARD 0
67
#endif
68
#ifndef BOOST_MSVC_FULL_VER
69
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 1
70
#else
71
#define BOOST_MSVC_FULL_VER_WORKAROUND_GUARD 0
72
#endif
73
#ifndef __GNUC__
74
#define __GNUC___WORKAROUND_GUARD 1
75
#else
76
#define __GNUC___WORKAROUND_GUARD 0
77
#endif
78
#ifndef __GNUC_MINOR__
79
#define __GNUC_MINOR___WORKAROUND_GUARD 1
80
#else
81
#define __GNUC_MINOR___WORKAROUND_GUARD 0
82
#endif
83
#ifndef __GNUC_PATCHLEVEL__
84
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 1
85
#else
86
#define __GNUC_PATCHLEVEL___WORKAROUND_GUARD 0
87
#endif
88
#ifndef __IBMCPP__
89
#define __IBMCPP___WORKAROUND_GUARD 1
90
#else
91
#define __IBMCPP___WORKAROUND_GUARD 0
92
#endif
93
#ifndef __SUNPRO_CC
94
#define __SUNPRO_CC_WORKAROUND_GUARD 1
95
#else
96
#define __SUNPRO_CC_WORKAROUND_GUARD 0
97
#endif
98
#ifndef __DECCXX_VER
99
#define __DECCXX_VER_WORKAROUND_GUARD 1
100
#else
101
#define __DECCXX_VER_WORKAROUND_GUARD 0
102
#endif
103
#ifndef __MWERKS__
104
#define __MWERKS___WORKAROUND_GUARD 1
105
#else
106
#define __MWERKS___WORKAROUND_GUARD 0
107
#endif
108
#ifndef __EDG__
109
#define __EDG___WORKAROUND_GUARD 1
110
#else
111
#define __EDG___WORKAROUND_GUARD 0
112
#endif
113
#ifndef __EDG_VERSION__
114
#define __EDG_VERSION___WORKAROUND_GUARD 1
115
#else
116
#define __EDG_VERSION___WORKAROUND_GUARD 0
117
#endif
118
#ifndef __HP_aCC
119
#define __HP_aCC_WORKAROUND_GUARD 1
120
#else
121
#define __HP_aCC_WORKAROUND_GUARD 0
122
#endif
123
#ifndef __hpxstd98
124
#define __hpxstd98_WORKAROUND_GUARD 1
125
#else
126
#define __hpxstd98_WORKAROUND_GUARD 0
127
#endif
128
#ifndef _CRAYC
129
#define _CRAYC_WORKAROUND_GUARD 1
130
#else
131
#define _CRAYC_WORKAROUND_GUARD 0
132
#endif
133
#ifndef __DMC__
134
#define __DMC___WORKAROUND_GUARD 1
135
#else
136
#define __DMC___WORKAROUND_GUARD 0
137
#endif
138
#ifndef MPW_CPLUS
139
#define MPW_CPLUS_WORKAROUND_GUARD 1
140
#else
141
#define MPW_CPLUS_WORKAROUND_GUARD 0
142
#endif
143
#ifndef __COMO__
144
#define __COMO___WORKAROUND_GUARD 1
145
#else
146
#define __COMO___WORKAROUND_GUARD 0
147
#endif
148
#ifndef __COMO_VERSION__
149
#define __COMO_VERSION___WORKAROUND_GUARD 1
150
#else
151
#define __COMO_VERSION___WORKAROUND_GUARD 0
152
#endif
153
#ifndef __INTEL_COMPILER
154
#define __INTEL_COMPILER_WORKAROUND_GUARD 1
155
#else
156
#define __INTEL_COMPILER_WORKAROUND_GUARD 0
157
#endif
158
#ifndef __ICL
159
#define __ICL_WORKAROUND_GUARD 1
160
#else
161
#define __ICL_WORKAROUND_GUARD 0
162
#endif
163
#ifndef _COMPILER_VERSION
164
#define _COMPILER_VERSION_WORKAROUND_GUARD 1
165
#else
166
#define _COMPILER_VERSION_WORKAROUND_GUARD 0
167
#endif
168
169
#ifndef _RWSTD_VER
170
#define _RWSTD_VER_WORKAROUND_GUARD 1
171
#else
172
#define _RWSTD_VER_WORKAROUND_GUARD 0
173
#endif
174
#ifndef BOOST_RWSTD_VER
175
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 1
176
#else
177
#define BOOST_RWSTD_VER_WORKAROUND_GUARD 0
178
#endif
179
#ifndef __GLIBCPP__
180
#define __GLIBCPP___WORKAROUND_GUARD 1
181
#else
182
#define __GLIBCPP___WORKAROUND_GUARD 0
183
#endif
184
#ifndef _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC
185
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 1
186
#else
187
#define _GLIBCXX_USE_C99_FP_MACROS_DYNAMIC_WORKAROUND_GUARD 0
188
#endif
189
#ifndef __SGI_STL_PORT
190
#define __SGI_STL_PORT_WORKAROUND_GUARD 1
191
#else
192
#define __SGI_STL_PORT_WORKAROUND_GUARD 0
193
#endif
194
#ifndef _STLPORT_VERSION
195
#define _STLPORT_VERSION_WORKAROUND_GUARD 1
196
#else
197
#define _STLPORT_VERSION_WORKAROUND_GUARD 0
198
#endif
199
#ifndef __LIBCOMO_VERSION__
200
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 1
201
#else
202
#define __LIBCOMO_VERSION___WORKAROUND_GUARD 0
203
#endif
204
#ifndef _CPPLIB_VER
205
#define _CPPLIB_VER_WORKAROUND_GUARD 1
206
#else
207
#define _CPPLIB_VER_WORKAROUND_GUARD 0
208
#endif
209
210
#ifndef BOOST_INTEL_CXX_VERSION
211
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 1
212
#else
213
#define BOOST_INTEL_CXX_VERSION_WORKAROUND_GUARD 0
214
#endif
215
#ifndef BOOST_INTEL_WIN
216
#define BOOST_INTEL_WIN_WORKAROUND_GUARD 1
217
#else
218
#define BOOST_INTEL_WIN_WORKAROUND_GUARD 0
219
#endif
220
#ifndef BOOST_DINKUMWARE_STDLIB
221
#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 1
222
#else
223
#define BOOST_DINKUMWARE_STDLIB_WORKAROUND_GUARD 0
224
#endif
225
#ifndef BOOST_INTEL
226
#define BOOST_INTEL_WORKAROUND_GUARD 1
227
#else
228
#define BOOST_INTEL_WORKAROUND_GUARD 0
229
#endif
230
// Always define to zero, if it's used it'll be defined my MPL:
231
#define BOOST_MPL_CFG_GCC_WORKAROUND_GUARD 0
232
233
# define BOOST_WORKAROUND(symbol, test) \
234
((symbol ## _WORKAROUND_GUARD + 0 == 0) && \
235
(symbol != 0) && (1 % (( (symbol test) ) + 1)))
236
// ^ ^ ^ ^
237
// The extra level of parenthesis nesting above, along with the
238
// BOOST_OPEN_PAREN indirection below, is required to satisfy the
239
// broken preprocessor in MWCW 8.3 and earlier.
240
//
241
// The basic mechanism works as follows:
242
// (symbol test) + 1 => if (symbol test) then 2 else 1
243
// 1 % ((symbol test) + 1) => if (symbol test) then 1 else 0
244
//
245
// The complication with % is for cooperation with BOOST_TESTED_AT().
246
// When "test" is BOOST_TESTED_AT(x) and
247
// BOOST_DETECT_OUTDATED_WORKAROUNDS is #defined,
248
//
249
// symbol test => if (symbol <= x) then 1 else -1
250
// (symbol test) + 1 => if (symbol <= x) then 2 else 0
251
// 1 % ((symbol test) + 1) => if (symbol <= x) then 1 else divide-by-zero
252
//
253
254
# ifdef BOOST_DETECT_OUTDATED_WORKAROUNDS
255
# define BOOST_OPEN_PAREN (
256
# define BOOST_TESTED_AT(value) > value) ?(-1): BOOST_OPEN_PAREN 1
257
# else
258
# define BOOST_TESTED_AT(value) != ((value)-(value))
259
# endif
260
261
# else
262
263
# define BOOST_WORKAROUND(symbol, test) 0
264
265
# endif
266
267
#endif // WORKAROUND_DWA2002126_HPP
librealsense2
Author(s): Sergey Dorodnicov
, Doron Hirshberg
, Mark Horn
, Reagan Lopez
, Itay Carpis
autogenerated on Mon May 3 2021 02:50:23