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