1 //  (C) Copyright John Maddock 2006.
2 //  Use, modification and distribution are subject to the
3 //  Boost Software License, Version 1.0. (See accompanying file
4 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 //  See http://www.boost.org for most recent version.
7 
8 //  GCC-XML C++ compiler setup:
9 
10 #  if !defined(__GCCXML_GNUC__) || ((__GCCXML_GNUC__ <= 3) && (__GCCXML_GNUC_MINOR__ <= 3))
11 #     define BOOST_NO_IS_ABSTRACT
12 #  endif
13 
14 //
15 // Threading support: Turn this on unconditionally here (except for
16 // those platforms where we can know for sure). It will get turned off again
17 // later if no threading API is detected.
18 //
19 #if !defined(__MINGW32__) && !defined(_MSC_VER) && !defined(linux) && !defined(__linux) && !defined(__linux__)
20 # define BOOST_HAS_THREADS
21 #endif
22 
23 //
24 // gcc has "long long"
25 //
26 #define BOOST_HAS_LONG_LONG
27 
28 // C++0x features:
29 //
30 #  define BOOST_NO_CXX11_CONSTEXPR
31 #  define BOOST_NO_CXX11_NULLPTR
32 #  define BOOST_NO_CXX11_TEMPLATE_ALIASES
33 #  define BOOST_NO_CXX11_DECLTYPE
34 #  define BOOST_NO_CXX11_DECLTYPE_N3276
35 #  define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
36 #  define BOOST_NO_CXX11_RVALUE_REFERENCES
37 #  define BOOST_NO_CXX11_STATIC_ASSERT
38 #  define BOOST_NO_CXX11_VARIADIC_TEMPLATES
39 #  define BOOST_NO_CXX11_VARIADIC_MACROS
40 #  define BOOST_NO_CXX11_AUTO_DECLARATIONS
41 #  define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
42 #  define BOOST_NO_CXX11_CHAR16_T
43 #  define BOOST_NO_CXX11_CHAR32_T
44 #  define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
45 #  define BOOST_NO_CXX11_DELETED_FUNCTIONS
46 #  define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
47 #  define BOOST_NO_CXX11_SCOPED_ENUMS
48 #  define BOOST_NO_SFINAE_EXPR
49 #  define BOOST_NO_CXX11_SFINAE_EXPR
50 #  define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
51 #  define BOOST_NO_CXX11_LAMBDAS
52 #  define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
53 #  define BOOST_NO_CXX11_RANGE_BASED_FOR
54 #  define BOOST_NO_CXX11_RAW_LITERALS
55 #  define BOOST_NO_CXX11_UNICODE_LITERALS
56 #  define BOOST_NO_CXX11_NOEXCEPT
57 #  define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
58 #  define BOOST_NO_CXX11_USER_DEFINED_LITERALS
59 #  define BOOST_NO_CXX11_ALIGNAS
60 #  define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
61 #  define BOOST_NO_CXX11_INLINE_NAMESPACES
62 #  define BOOST_NO_CXX11_REF_QUALIFIERS
63 #  define BOOST_NO_CXX11_FINAL
64 #  define BOOST_NO_CXX11_OVERRIDE
65 #  define BOOST_NO_CXX11_THREAD_LOCAL
66 #  define BOOST_NO_CXX11_UNRESTRICTED_UNION
67 
68 // C++ 14:
69 #if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
70 #  define BOOST_NO_CXX14_AGGREGATE_NSDMI
71 #endif
72 #if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
73 #  define BOOST_NO_CXX14_BINARY_LITERALS
74 #endif
75 #if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
76 #  define BOOST_NO_CXX14_CONSTEXPR
77 #endif
78 #if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
79 #  define BOOST_NO_CXX14_DECLTYPE_AUTO
80 #endif
81 #if (__cplusplus < 201304) // There's no SD6 check for this....
82 #  define BOOST_NO_CXX14_DIGIT_SEPARATORS
83 #endif
84 #if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
85 #  define BOOST_NO_CXX14_GENERIC_LAMBDAS
86 #endif
87 #if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
88 #  define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
89 #endif
90 #if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
91 #  define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
92 #endif
93 #if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
94 #  define BOOST_NO_CXX14_VARIABLE_TEMPLATES
95 #endif
96 
97 // C++17
98 #if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
99 #  define BOOST_NO_CXX17_STRUCTURED_BINDINGS
100 #endif
101 #if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
102 #  define BOOST_NO_CXX17_INLINE_VARIABLES
103 #endif
104 #if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
105 #  define BOOST_NO_CXX17_FOLD_EXPRESSIONS
106 #endif
107 #if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
108 #  define BOOST_NO_CXX17_IF_CONSTEXPR
109 #endif
110 
111 #define BOOST_COMPILER "GCC-XML C++ version " __GCCXML__
112 
113 
114