]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/config/compiler/vacpp.hpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / boost / config / compiler / vacpp.hpp
CommitLineData
7c673cae
FG
1// (C) Copyright John Maddock 2001 - 2003.
2// (C) Copyright Toon Knapen 2001 - 2003.
3// (C) Copyright Lie-Quan Lee 2001.
4// (C) Copyright Markus Schoepflin 2002 - 2003.
5// (C) Copyright Beman Dawes 2002 - 2003.
6// Use, modification and distribution are subject to the
7// Boost Software License, Version 1.0. (See accompanying file
8// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
10// See http://www.boost.org for most recent version.
11
12// Visual Age (IBM) C++ compiler setup:
13
14#if __IBMCPP__ <= 501
15# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
16# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
17#endif
18
19#if (__IBMCPP__ <= 502)
20// Actually the compiler supports inclass member initialization but it
21// requires a definition for the class member and it doesn't recognize
22// it as an integral constant expression when used as a template argument.
23# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
24# define BOOST_NO_INTEGRAL_INT64_T
25# define BOOST_NO_MEMBER_TEMPLATE_KEYWORD
26#endif
27
28#if (__IBMCPP__ <= 600) || !defined(BOOST_STRICT_CONFIG)
29# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
30#endif
31
32#if (__IBMCPP__ <= 1110)
33// XL C++ V11.1 and earlier versions may not always value-initialize
34// a temporary object T(), when T is a non-POD aggregate class type.
35// Michael Wong (IBM Canada Ltd) has confirmed this issue and gave it
36// high priority. -- Niels Dekker (LKEB), May 2010.
37# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
38#endif
39
40//
41// On AIX thread support seems to be indicated by _THREAD_SAFE:
42//
43#ifdef _THREAD_SAFE
44# define BOOST_HAS_THREADS
45#endif
46
47#define BOOST_COMPILER "IBM Visual Age version " BOOST_STRINGIZE(__IBMCPP__)
48
49//
50// versions check:
51// we don't support Visual age prior to version 5:
52#if __IBMCPP__ < 500
53#error "Compiler not supported or configured - please reconfigure"
54#endif
55//
56// last known and checked version is 1210:
57#if (__IBMCPP__ > 1210)
58# if defined(BOOST_ASSERT_CONFIG)
92f5a8d4 59# error "boost: Unknown compiler version - please run the configure tests and report the results"
7c673cae
FG
60# endif
61#endif
62
63// Some versions of the compiler have issues with default arguments on partial specializations
64#if __IBMCPP__ <= 1010
65#define BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
66#endif
67
b32b8144
FG
68// Type aliasing hint. Supported since XL C++ 13.1
69#if (__IBMCPP__ >= 1310)
70# define BOOST_MAY_ALIAS __attribute__((__may_alias__))
71#endif
72
7c673cae
FG
73//
74// C++0x features
75//
76// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
77//
78#if ! __IBMCPP_AUTO_TYPEDEDUCTION
79# define BOOST_NO_CXX11_AUTO_DECLARATIONS
80# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
81#endif
82#if ! __IBMCPP_UTF_LITERAL__
83# define BOOST_NO_CXX11_CHAR16_T
84# define BOOST_NO_CXX11_CHAR32_T
85#endif
86#if ! __IBMCPP_CONSTEXPR
87# define BOOST_NO_CXX11_CONSTEXPR
88#endif
89#if ! __IBMCPP_DECLTYPE
90# define BOOST_NO_CXX11_DECLTYPE
91#else
92# define BOOST_HAS_DECLTYPE
93#endif
94#define BOOST_NO_CXX11_DECLTYPE_N3276
95#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
96#define BOOST_NO_CXX11_DELETED_FUNCTIONS
97#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
98# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
99#endif
100#if ! __IBMCPP_EXTERN_TEMPLATE
101# define BOOST_NO_CXX11_EXTERN_TEMPLATE
102#endif
103#if ! __IBMCPP_VARIADIC_TEMPLATES
104// not enabled separately at this time
105# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
106#endif
107#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
108#define BOOST_NO_CXX11_LAMBDAS
109#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
110#define BOOST_NO_CXX11_NOEXCEPT
111#define BOOST_NO_CXX11_NULLPTR
112#define BOOST_NO_CXX11_RANGE_BASED_FOR
113#define BOOST_NO_CXX11_RAW_LITERALS
114#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
115#if ! __IBMCPP_RVALUE_REFERENCES
116# define BOOST_NO_CXX11_RVALUE_REFERENCES
117#endif
118#if ! __IBMCPP_SCOPED_ENUM
119# define BOOST_NO_CXX11_SCOPED_ENUMS
120#endif
121#define BOOST_NO_SFINAE_EXPR
b32b8144 122#define BOOST_NO_CXX11_SFINAE_EXPR
7c673cae
FG
123#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
124#if ! __IBMCPP_STATIC_ASSERT
125# define BOOST_NO_CXX11_STATIC_ASSERT
126#endif
127#define BOOST_NO_CXX11_TEMPLATE_ALIASES
128#define BOOST_NO_CXX11_UNICODE_LITERALS
129#if ! __IBMCPP_VARIADIC_TEMPLATES
130# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
131#endif
132#if ! __C99_MACRO_WITH_VA_ARGS
133# define BOOST_NO_CXX11_VARIADIC_MACROS
134#endif
135#define BOOST_NO_CXX11_ALIGNAS
136#define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
137#define BOOST_NO_CXX11_INLINE_NAMESPACES
138#define BOOST_NO_CXX11_REF_QUALIFIERS
139#define BOOST_NO_CXX11_FINAL
20effc67 140#define BOOST_NO_CXX11_OVERRIDE
7c673cae 141#define BOOST_NO_CXX11_THREAD_LOCAL
f67539c2 142#define BOOST_NO_CXX11_UNRESTRICTED_UNION
7c673cae
FG
143
144// C++ 14:
145#if !defined(__cpp_aggregate_nsdmi) || (__cpp_aggregate_nsdmi < 201304)
146# define BOOST_NO_CXX14_AGGREGATE_NSDMI
147#endif
148#if !defined(__cpp_binary_literals) || (__cpp_binary_literals < 201304)
149# define BOOST_NO_CXX14_BINARY_LITERALS
150#endif
151#if !defined(__cpp_constexpr) || (__cpp_constexpr < 201304)
152# define BOOST_NO_CXX14_CONSTEXPR
153#endif
154#if !defined(__cpp_decltype_auto) || (__cpp_decltype_auto < 201304)
155# define BOOST_NO_CXX14_DECLTYPE_AUTO
156#endif
157#if (__cplusplus < 201304) // There's no SD6 check for this....
158# define BOOST_NO_CXX14_DIGIT_SEPARATORS
159#endif
160#if !defined(__cpp_generic_lambdas) || (__cpp_generic_lambdas < 201304)
161# define BOOST_NO_CXX14_GENERIC_LAMBDAS
162#endif
163#if !defined(__cpp_init_captures) || (__cpp_init_captures < 201304)
164# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
165#endif
166#if !defined(__cpp_return_type_deduction) || (__cpp_return_type_deduction < 201304)
167# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
168#endif
169#if !defined(__cpp_variable_templates) || (__cpp_variable_templates < 201304)
170# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
171#endif
b32b8144
FG
172
173// C++17
174#if !defined(__cpp_structured_bindings) || (__cpp_structured_bindings < 201606)
175# define BOOST_NO_CXX17_STRUCTURED_BINDINGS
176#endif
177#if !defined(__cpp_inline_variables) || (__cpp_inline_variables < 201606)
178# define BOOST_NO_CXX17_INLINE_VARIABLES
179#endif
180#if !defined(__cpp_fold_expressions) || (__cpp_fold_expressions < 201603)
181# define BOOST_NO_CXX17_FOLD_EXPRESSIONS
182#endif
92f5a8d4
TL
183#if !defined(__cpp_if_constexpr) || (__cpp_if_constexpr < 201606)
184# define BOOST_NO_CXX17_IF_CONSTEXPR
185#endif