]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/config/compiler/digitalmars.hpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / boost / config / compiler / digitalmars.hpp
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
74 #define BOOST_NO_CXX11_SFINAE_EXPR
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_OVERRIDE
87 #define BOOST_NO_CXX11_THREAD_LOCAL
88 #define BOOST_NO_CXX11_UNRESTRICTED_UNION
89
90 // C++ 14:
91 #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
92 # define BOOST_NO_CXX14_AGGREGATE_NSDMI
93 #endif
94 #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
95 # define BOOST_NO_CXX14_BINARY_LITERALS
96 #endif
97 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
98 # define BOOST_NO_CXX14_CONSTEXPR
99 #endif
100 #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
101 # define BOOST_NO_CXX14_DECLTYPE_AUTO
102 #endif
103 #if (__cplusplus < 201304) // There's no SD6 check for this....
104 # define BOOST_NO_CXX14_DIGIT_SEPARATORS
105 #endif
106 #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
107 # define BOOST_NO_CXX14_GENERIC_LAMBDAS
108 #endif
109 #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
110 # define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
111 #endif
112 #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
113 # define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
114 #endif
115 #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
116 # define BOOST_NO_CXX14_VARIABLE_TEMPLATES
117 #endif
118
119 // C++17
120 #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
121 # define BOOST_NO_CXX17_STRUCTURED_BINDINGS
122 #endif
123 #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
124 # define BOOST_NO_CXX17_INLINE_VARIABLES
125 #endif
126 #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
127 # define BOOST_NO_CXX17_FOLD_EXPRESSIONS
128 #endif
129 #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
130 # define BOOST_NO_CXX17_IF_CONSTEXPR
131 #endif
132
133 #if (__DMC__ <= 0x840)
134 #error "Compiler not supported or configured - please reconfigure"
135 #endif
136 //
137 // last known and checked version is ...:
138 #if (__DMC__ > 0x848)
139 # if defined(BOOST_ASSERT_CONFIG)
140 # error "boost: Unknown compiler version - please run the configure tests and report the results"
141 # endif
142 #endif