]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/config/compiler/digitalmars.hpp
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / boost / boost / config / compiler / digitalmars.hpp
CommitLineData
7c673cae
FG
1// Copyright (C) Christof Meerwald 2003
2// Copyright (C) Dan Watkins 2003
3//
4// Use, modification and distribution are subject to the
5// Boost Software License, Version 1.0. (See accompanying file
6// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7
8// Digital Mars C++ compiler setup:
9#define BOOST_COMPILER __DMC_VERSION_STRING__
10
11#define BOOST_HAS_LONG_LONG
12#define BOOST_HAS_PRAGMA_ONCE
13
14#if !defined(BOOST_STRICT_CONFIG)
15#define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
16#define BOOST_NO_OPERATORS_IN_NAMESPACE
17#define BOOST_NO_UNREACHABLE_RETURN_DETECTION
18#define BOOST_NO_SFINAE
19#define BOOST_NO_USING_TEMPLATE
20#define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
21#endif
22
23//
24// has macros:
25#define BOOST_HAS_DIRENT_H
26#define BOOST_HAS_STDINT_H
27#define BOOST_HAS_WINTHREADS
28
29#if (__DMC__ >= 0x847)
30#define BOOST_HAS_EXPM1
31#define BOOST_HAS_LOG1P
32#endif
33
34//
35// Is this really the best way to detect whether the std lib is in namespace std?
36//
37#ifdef __cplusplus
38#include <cstddef>
39#endif
40#if !defined(__STL_IMPORT_VENDOR_CSTD) && !defined(_STLP_IMPORT_VENDOR_CSTD)
41# define BOOST_NO_STDC_NAMESPACE
42#endif
43
44
45// check for exception handling support:
46#if !defined(_CPPUNWIND) && !defined(BOOST_NO_EXCEPTIONS)
47# define BOOST_NO_EXCEPTIONS
48#endif
49
50//
51// C++0x features
52//
53#define BOOST_NO_CXX11_AUTO_DECLARATIONS
54#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
55#define BOOST_NO_CXX11_CHAR16_T
56#define BOOST_NO_CXX11_CHAR32_T
57#define BOOST_NO_CXX11_CONSTEXPR
58#define BOOST_NO_CXX11_DECLTYPE
59#define BOOST_NO_CXX11_DECLTYPE_N3276
60#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
61#define BOOST_NO_CXX11_DELETED_FUNCTIONS
62#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
63#define BOOST_NO_CXX11_EXTERN_TEMPLATE
64#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
65#define BOOST_NO_CXX11_LAMBDAS
66#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
67#define BOOST_NO_CXX11_NOEXCEPT
68#define BOOST_NO_CXX11_NULLPTR
69#define BOOST_NO_CXX11_RANGE_BASED_FOR
70#define BOOST_NO_CXX11_RAW_LITERALS
71#define BOOST_NO_CXX11_RVALUE_REFERENCES
72#define BOOST_NO_CXX11_SCOPED_ENUMS
73#define BOOST_NO_SFINAE_EXPR
b32b8144 74#define BOOST_NO_CXX11_SFINAE_EXPR
7c673cae
FG
75#define BOOST_NO_CXX11_STATIC_ASSERT
76#define BOOST_NO_CXX11_TEMPLATE_ALIASES
77#define BOOST_NO_CXX11_UNICODE_LITERALS
78#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
79#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
80#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
81#define BOOST_NO_CXX11_ALIGNAS
82#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
83#define BOOST_NO_CXX11_INLINE_NAMESPACES
84#define BOOST_NO_CXX11_REF_QUALIFIERS
85#define BOOST_NO_CXX11_FINAL
86#define BOOST_NO_CXX11_THREAD_LOCAL
f67539c2 87#define BOOST_NO_CXX11_UNRESTRICTED_UNION
7c673cae
FG
88
89// C++ 14:
90#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
91# define BOOST_NO_CXX14_AGGREGATE_NSDMI
92#endif
93#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
94# define BOOST_NO_CXX14_BINARY_LITERALS
95#endif
96#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
97# define BOOST_NO_CXX14_CONSTEXPR
98#endif
99#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
100# define BOOST_NO_CXX14_DECLTYPE_AUTO
101#endif
102#if (__cplusplus < 201304) // There's no SD6 check for this....
103# define BOOST_NO_CXX14_DIGIT_SEPARATORS
104#endif
105#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
106# define BOOST_NO_CXX14_GENERIC_LAMBDAS
107#endif
108#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
109# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
110#endif
111#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
112# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
113#endif
114#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
115# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
116#endif
117
b32b8144
FG
118// C++17
119#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
120# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
121#endif
122#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
123# define BOOST_NO_CXX17_INLINE_VARIABLES
124#endif
125#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
126# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
127#endif
92f5a8d4
TL
128#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
129# define BOOST_NO_CXX17_IF_CONSTEXPR
130#endif
b32b8144 131
7c673cae
FG
132#if (__DMC__ <= 0x840)
133#error "Compiler not supported or configured - please reconfigure"
134#endif
135//
136// last known and checked version is ...:
137#if (__DMC__ > 0x848)
138# if defined(BOOST_ASSERT_CONFIG)
92f5a8d4 139# error "boost: Unknown compiler version - please run the configure tests and report the results"
7c673cae
FG
140# endif
141#endif