Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
third-party
realsense-file
boost
boost
config
compiler
visualc.hpp
Go to the documentation of this file.
1
// (C) Copyright John Maddock 2001 - 2003.
2
// (C) Copyright Darin Adler 2001 - 2002.
3
// (C) Copyright Peter Dimov 2001.
4
// (C) Copyright Aleksey Gurtovoy 2002.
5
// (C) Copyright David Abrahams 2002 - 2003.
6
// (C) Copyright Beman Dawes 2002 - 2003.
7
// Use, modification and distribution are subject to the
8
// Boost Software License, Version 1.0. (See accompanying file
9
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10
11
// See http://www.boost.org for most recent version.
12
//
13
// Microsoft Visual C++ compiler setup:
14
//
15
// We need to be careful with the checks in this file, as contrary
16
// to popular belief there are versions with _MSC_VER with the final
17
// digit non-zero (mainly the MIPS cross compiler).
18
//
19
// So we either test _MSC_VER >= XXXX or else _MSC_VER < XXXX.
20
// No other comparisons (==, >, or <=) are safe.
21
//
22
23
#define BOOST_MSVC _MSC_VER
24
25
//
26
// Helper macro BOOST_MSVC_FULL_VER for use in Boost code:
27
//
28
#if _MSC_FULL_VER > 100000000
29
# define BOOST_MSVC_FULL_VER _MSC_FULL_VER
30
#else
31
# define BOOST_MSVC_FULL_VER (_MSC_FULL_VER * 10)
32
#endif
33
34
// Attempt to suppress VC6 warnings about the length of decorated names (obsolete):
35
#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
36
37
#define BOOST_HAS_PRAGMA_ONCE
38
39
//
40
// versions check:
41
// we don't support Visual C++ prior to version 7.1:
42
#if _MSC_VER < 1310
43
# error "Compiler not supported or configured - please reconfigure"
44
#endif
45
46
#if _MSC_FULL_VER < 180020827
47
# define BOOST_NO_FENV_H
48
#endif
49
50
#if _MSC_VER < 1400
51
// although a conforming signature for swprint exists in VC7.1
52
// it appears not to actually work:
53
# define BOOST_NO_SWPRINTF
54
// Our extern template tests also fail for this compiler:
55
# define BOOST_NO_CXX11_EXTERN_TEMPLATE
56
// Variadic macros do not exist for VC7.1 and lower
57
# define BOOST_NO_CXX11_VARIADIC_MACROS
58
# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
59
#endif
60
61
#if _MSC_VER < 1500 // 140X == VC++ 8.0
62
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
63
#endif
64
65
#if _MSC_VER < 1600 // 150X == VC++ 9.0
66
// A bug in VC9:
67
# define BOOST_NO_ADL_BARRIER
68
#endif
69
70
71
#ifndef _NATIVE_WCHAR_T_DEFINED
72
# define BOOST_NO_INTRINSIC_WCHAR_T
73
#endif
74
75
//
76
// check for exception handling support:
77
#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
78
# define BOOST_NO_EXCEPTIONS
79
#endif
80
81
//
82
// __int64 support:
83
//
84
#define BOOST_HAS_MS_INT64
85
#if defined(_MSC_EXTENSIONS) || (_MSC_VER >= 1400)
86
# define BOOST_HAS_LONG_LONG
87
#else
88
# define BOOST_NO_LONG_LONG
89
#endif
90
#if (_MSC_VER >= 1400) && !defined(_DEBUG)
91
# define BOOST_HAS_NRVO
92
#endif
93
#if _MSC_VER >= 1600 // 160X == VC++ 10.0
94
# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
95
#endif
96
//
97
// disable Win32 API's if compiler extensions are
98
// turned off:
99
//
100
#if !defined(_MSC_EXTENSIONS) && !defined(BOOST_DISABLE_WIN32)
101
# define BOOST_DISABLE_WIN32
102
#endif
103
#if !defined(_CPPRTTI) && !defined(BOOST_NO_RTTI)
104
# define BOOST_NO_RTTI
105
#endif
106
107
//
108
// TR1 features:
109
//
110
#if _MSC_VER >= 1700
111
// # define BOOST_HAS_TR1_HASH // don't know if this is true yet.
112
// # define BOOST_HAS_TR1_TYPE_TRAITS // don't know if this is true yet.
113
# define BOOST_HAS_TR1_UNORDERED_MAP
114
# define BOOST_HAS_TR1_UNORDERED_SET
115
#endif
116
117
//
118
// C++0x features
119
//
120
// See above for BOOST_NO_LONG_LONG
121
122
// C++ features supported by VC++ 10 (aka 2010)
123
//
124
#if _MSC_VER < 1600
125
# define BOOST_NO_CXX11_AUTO_DECLARATIONS
126
# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
127
# define BOOST_NO_CXX11_LAMBDAS
128
# define BOOST_NO_CXX11_RVALUE_REFERENCES
129
# define BOOST_NO_CXX11_STATIC_ASSERT
130
# define BOOST_NO_CXX11_NULLPTR
131
# define BOOST_NO_CXX11_DECLTYPE
132
#endif // _MSC_VER < 1600
133
134
#if _MSC_VER >= 1600
135
# define BOOST_HAS_STDINT_H
136
#endif
137
138
// C++11 features supported by VC++ 11 (aka 2012)
139
//
140
#if _MSC_VER < 1700
141
# define BOOST_NO_CXX11_FINAL
142
# define BOOST_NO_CXX11_RANGE_BASED_FOR
143
# define BOOST_NO_CXX11_SCOPED_ENUMS
144
#endif // _MSC_VER < 1700
145
146
// C++11 features supported by VC++ 12 (aka 2013).
147
//
148
#if _MSC_FULL_VER < 180020827
149
# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
150
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
151
# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
152
# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
153
# define BOOST_NO_CXX11_RAW_LITERALS
154
# define BOOST_NO_CXX11_TEMPLATE_ALIASES
155
# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
156
# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
157
# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
158
# define BOOST_NO_CXX11_DECLTYPE_N3276
159
#endif
160
161
#if _MSC_FULL_VER >= 180020827
162
#define BOOST_HAS_EXPM1
163
#define BOOST_HAS_LOG1P
164
#endif
165
166
// C++11 features supported by VC++ 14 (aka 2015)
167
//
168
#if (_MSC_FULL_VER < 190023026)
169
# define BOOST_NO_CXX11_NOEXCEPT
170
# define BOOST_NO_CXX11_REF_QUALIFIERS
171
# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
172
# define BOOST_NO_CXX11_ALIGNAS
173
# define BOOST_NO_CXX11_INLINE_NAMESPACES
174
# define BOOST_NO_CXX11_CHAR16_T
175
# define BOOST_NO_CXX11_CHAR32_T
176
# define BOOST_NO_CXX11_UNICODE_LITERALS
177
# define BOOST_NO_CXX14_DECLTYPE_AUTO
178
# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
179
# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
180
# define BOOST_NO_CXX14_BINARY_LITERALS
181
# define BOOST_NO_CXX14_GENERIC_LAMBDAS
182
# define BOOST_NO_CXX14_DIGIT_SEPARATORS
183
# define BOOST_NO_CXX11_THREAD_LOCAL
184
#endif
185
// C++11 features supported by VC++ 14 update 3 (aka 2015)
186
//
187
#if (_MSC_FULL_VER < 190024210)
188
# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
189
# define BOOST_NO_SFINAE_EXPR
190
# define BOOST_NO_CXX11_CONSTEXPR
191
#endif
192
193
// C++14 features supported by VC++ 14.1 (Visual Studio 2017)
194
//
195
#if (_MSC_VER < 1910)
196
# define BOOST_NO_CXX14_AGGREGATE_NSDMI
197
# define BOOST_NO_CXX14_CONSTEXPR
198
#endif
199
200
// MSVC including version 14 has not yet completely
201
// implemented value-initialization, as is reported:
202
// "VC++ does not value-initialize members of derived classes without
203
// user-declared constructor", reported in 2009 by Sylvester Hesp:
204
// https://connect.microsoft.com/VisualStudio/feedback/details/484295
205
// "Presence of copy constructor breaks member class initialization",
206
// reported in 2009 by Alex Vakulenko:
207
// https://connect.microsoft.com/VisualStudio/feedback/details/499606
208
// "Value-initialization in new-expression", reported in 2005 by
209
// Pavel Kuznetsov (MetaCommunications Engineering):
210
// https://connect.microsoft.com/VisualStudio/feedback/details/100744
211
// Reported again by John Maddock in 2015 for VC14:
212
// https://connect.microsoft.com/VisualStudio/feedback/details/1582233/c-subobjects-still-not-value-initialized-correctly
213
// See also: http://www.boost.org/libs/utility/value_init.htm#compiler_issues
214
// (Niels Dekker, LKEB, May 2010)
215
#define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
216
//
217
// C++ 11:
218
//
219
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
220
#define BOOST_NO_CXX11_SFINAE_EXPR
221
222
//
223
// Things that don't work in clr mode:
224
//
225
#ifdef _M_CEE
226
#ifndef BOOST_NO_CXX11_THREAD_LOCAL
227
# define BOOST_NO_CXX11_THREAD_LOCAL
228
#endif
229
#ifndef BOOST_NO_SFINAE_EXPR
230
# define BOOST_NO_SFINAE_EXPR
231
#endif
232
#ifndef BOOST_NO_CXX11_REF_QUALIFIERS
233
# define BOOST_NO_CXX11_REF_QUALIFIERS
234
#endif
235
#endif
236
#ifdef _M_CEE_PURE
237
#ifndef BOOST_NO_CXX11_CONSTEXPR
238
# define BOOST_NO_CXX11_CONSTEXPR
239
#endif
240
#endif
241
242
//
243
// prefix and suffix headers:
244
//
245
#ifndef BOOST_ABI_PREFIX
246
# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
247
#endif
248
#ifndef BOOST_ABI_SUFFIX
249
# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
250
#endif
251
252
#ifndef BOOST_COMPILER
253
// TODO:
254
// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
255
// artificial versions assigned to them only refer to the versions of some IDE
256
// these compilers have been shipped with, and even that is not all of it. Some
257
// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
258
// IOW, you can't use these 'versions' in any sensible way. Sorry.
259
# if defined(UNDER_CE)
260
# if _MSC_VER < 1400
261
// Note: I'm not aware of any CE compiler with version 13xx
262
# if defined(BOOST_ASSERT_CONFIG)
263
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
264
# else
265
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
266
# endif
267
# elif _MSC_VER < 1500
268
# define BOOST_COMPILER_VERSION evc8
269
# elif _MSC_VER < 1600
270
# define BOOST_COMPILER_VERSION evc9
271
# elif _MSC_VER < 1700
272
# define BOOST_COMPILER_VERSION evc10
273
# elif _MSC_VER < 1800
274
# define BOOST_COMPILER_VERSION evc11
275
# elif _MSC_VER < 1900
276
# define BOOST_COMPILER_VERSION evc12
277
# elif _MSC_VER < 2000
278
# define BOOST_COMPILER_VERSION evc14
279
# else
280
# if defined(BOOST_ASSERT_CONFIG)
281
# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
282
# else
283
# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
284
# endif
285
# endif
286
# else
287
# if _MSC_VER < 1310
288
// Note: Versions up to 7.0 aren't supported.
289
# define BOOST_COMPILER_VERSION 5.0
290
# elif _MSC_VER < 1300
291
# define BOOST_COMPILER_VERSION 6.0
292
# elif _MSC_VER < 1310
293
# define BOOST_COMPILER_VERSION 7.0
294
# elif _MSC_VER < 1400
295
# define BOOST_COMPILER_VERSION 7.1
296
# elif _MSC_VER < 1500
297
# define BOOST_COMPILER_VERSION 8.0
298
# elif _MSC_VER < 1600
299
# define BOOST_COMPILER_VERSION 9.0
300
# elif _MSC_VER < 1700
301
# define BOOST_COMPILER_VERSION 10.0
302
# elif _MSC_VER < 1800
303
# define BOOST_COMPILER_VERSION 11.0
304
# elif _MSC_VER < 1900
305
# define BOOST_COMPILER_VERSION 12.0
306
# elif _MSC_VER < 1910
307
# define BOOST_COMPILER_VERSION 14.0
308
# elif _MSC_VER < 1920
309
# define BOOST_COMPILER_VERSION 14.1
310
# else
311
# define BOOST_COMPILER_VERSION _MSC_VER
312
# endif
313
# endif
314
315
# define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
316
#endif
317
318
//
319
// last known and checked version is 19.10.25017 (VC++ 2017):
320
#if (_MSC_VER > 1910)
321
# if defined(BOOST_ASSERT_CONFIG)
322
# error "Unknown compiler version - please run the configure tests and report the results"
323
# else
324
# pragma message("Unknown compiler version - please run the configure tests and report the results")
325
# endif
326
#endif
librealsense2
Author(s): Sergey Dorodnicov
, Doron Hirshberg
, Mark Horn
, Reagan Lopez
, Itay Carpis
autogenerated on Mon May 3 2021 02:50:14