blob: 47b990315bf094368477d2bbacf5d2a3f10702d9 [file] [log] [blame]
Jeff Thompsonf7d49942013-08-01 16:47:40 -07001// (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//
Jeff Thompsona28eed82013-08-22 16:21:10 -070056// last known and checked version is 1210:
57#if (__IBMCPP__ > 1210)
Jeff Thompsonf7d49942013-08-01 16:47:40 -070058# if defined(BOOST_ASSERT_CONFIG)
59# error "Unknown compiler version - please run the configure tests and report the results"
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
68//
69// C++0x features
70//
71// See boost\config\suffix.hpp for BOOST_NO_LONG_LONG
72//
73#if ! __IBMCPP_AUTO_TYPEDEDUCTION
74# define BOOST_NO_CXX11_AUTO_DECLARATIONS
75# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
76#endif
77#if ! __IBMCPP_UTF_LITERAL__
78# define BOOST_NO_CXX11_CHAR16_T
79# define BOOST_NO_CXX11_CHAR32_T
80#endif
81#if ! __IBMCPP_CONSTEXPR
82# define BOOST_NO_CXX11_CONSTEXPR
83#endif
84#if ! __IBMCPP_DECLTYPE
85# define BOOST_NO_CXX11_DECLTYPE
86#else
87# define BOOST_HAS_DECLTYPE
88#endif
89#define BOOST_NO_CXX11_DECLTYPE_N3276
90#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
91#define BOOST_NO_CXX11_DELETED_FUNCTIONS
92#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
93# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
94#endif
95#if ! __IBMCPP_EXTERN_TEMPLATE
96# define BOOST_NO_CXX11_EXTERN_TEMPLATE
97#endif
98#if ! __IBMCPP_VARIADIC_TEMPLATES
99// not enabled separately at this time
100# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
101#endif
102#define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
103#define BOOST_NO_CXX11_LAMBDAS
104#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
105#define BOOST_NO_CXX11_NOEXCEPT
106#define BOOST_NO_CXX11_NULLPTR
107#define BOOST_NO_CXX11_RANGE_BASED_FOR
108#define BOOST_NO_CXX11_RAW_LITERALS
Jeff Thompsona28eed82013-08-22 16:21:10 -0700109#define BOOST_NO_CXX11_USER_DEFINED_LITERALS
Jeff Thompsonf7d49942013-08-01 16:47:40 -0700110#if ! __IBMCPP_RVALUE_REFERENCES
111# define BOOST_NO_CXX11_RVALUE_REFERENCES
112#endif
113#if ! __IBMCPP_SCOPED_ENUM
114# define BOOST_NO_CXX11_SCOPED_ENUMS
115#endif
116#define BOOST_NO_SFINAE_EXPR
117#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
118#if ! __IBMCPP_STATIC_ASSERT
119# define BOOST_NO_CXX11_STATIC_ASSERT
120#endif
121#define BOOST_NO_CXX11_TEMPLATE_ALIASES
122#define BOOST_NO_CXX11_UNICODE_LITERALS
123#if ! __IBMCPP_VARIADIC_TEMPLATES
124# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
125#endif
126#if ! __C99_MACRO_WITH_VA_ARGS
127# define BOOST_NO_CXX11_VARIADIC_MACROS
128#endif
129
130
131