blob: a667657d12ffec9b86230b75a13d28961aad215f [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
Jeff Thompson3d613fd2013-10-15 15:39:04 -070015# define NDNBOOST_NO_MEMBER_TEMPLATE_FRIENDS
16# define NDNBOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
Jeff Thompsonf7d49942013-08-01 16:47:40 -070017#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.
Jeff Thompson3d613fd2013-10-15 15:39:04 -070023# define NDNBOOST_NO_INCLASS_MEMBER_INITIALIZATION
24# define NDNBOOST_NO_INTEGRAL_INT64_T
25# define NDNBOOST_NO_MEMBER_TEMPLATE_KEYWORD
Jeff Thompsonf7d49942013-08-01 16:47:40 -070026#endif
27
Jeff Thompson3d613fd2013-10-15 15:39:04 -070028#if (__IBMCPP__ <= 600) || !defined(NDNBOOST_STRICT_CONFIG)
29# define NDNBOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
Jeff Thompsonf7d49942013-08-01 16:47:40 -070030#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.
Jeff Thompson3d613fd2013-10-15 15:39:04 -070037# define NDNBOOST_NO_COMPLETE_VALUE_INITIALIZATION
Jeff Thompsonf7d49942013-08-01 16:47:40 -070038#endif
39
40//
41// On AIX thread support seems to be indicated by _THREAD_SAFE:
42//
43#ifdef _THREAD_SAFE
Jeff Thompson3d613fd2013-10-15 15:39:04 -070044# define NDNBOOST_HAS_THREADS
Jeff Thompsonf7d49942013-08-01 16:47:40 -070045#endif
46
Jeff Thompson3d613fd2013-10-15 15:39:04 -070047#define NDNBOOST_COMPILER "IBM Visual Age version " NDNBOOST_STRINGIZE(__IBMCPP__)
Jeff Thompsonf7d49942013-08-01 16:47:40 -070048
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 Thompson3d613fd2013-10-15 15:39:04 -070058# if defined(NDNBOOST_ASSERT_CONFIG)
Jeff Thompsonf7d49942013-08-01 16:47:40 -070059# 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
Jeff Thompson3d613fd2013-10-15 15:39:04 -070065#define NDNBOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS
Jeff Thompsonf7d49942013-08-01 16:47:40 -070066#endif
67
68//
69// C++0x features
70//
Jeff Thompson3d613fd2013-10-15 15:39:04 -070071// See boost\config\suffix.hpp for NDNBOOST_NO_LONG_LONG
Jeff Thompsonf7d49942013-08-01 16:47:40 -070072//
73#if ! __IBMCPP_AUTO_TYPEDEDUCTION
Jeff Thompson3d613fd2013-10-15 15:39:04 -070074# define NDNBOOST_NO_CXX11_AUTO_DECLARATIONS
75# define NDNBOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
Jeff Thompsonf7d49942013-08-01 16:47:40 -070076#endif
77#if ! __IBMCPP_UTF_LITERAL__
Jeff Thompson3d613fd2013-10-15 15:39:04 -070078# define NDNBOOST_NO_CXX11_CHAR16_T
79# define NDNBOOST_NO_CXX11_CHAR32_T
Jeff Thompsonf7d49942013-08-01 16:47:40 -070080#endif
81#if ! __IBMCPP_CONSTEXPR
Jeff Thompson3d613fd2013-10-15 15:39:04 -070082# define NDNBOOST_NO_CXX11_CONSTEXPR
Jeff Thompsonf7d49942013-08-01 16:47:40 -070083#endif
84#if ! __IBMCPP_DECLTYPE
Jeff Thompson3d613fd2013-10-15 15:39:04 -070085# define NDNBOOST_NO_CXX11_DECLTYPE
Jeff Thompsonf7d49942013-08-01 16:47:40 -070086#else
Jeff Thompson3d613fd2013-10-15 15:39:04 -070087# define NDNBOOST_HAS_DECLTYPE
Jeff Thompsonf7d49942013-08-01 16:47:40 -070088#endif
Jeff Thompson3d613fd2013-10-15 15:39:04 -070089#define NDNBOOST_NO_CXX11_DECLTYPE_N3276
90#define NDNBOOST_NO_CXX11_DEFAULTED_FUNCTIONS
91#define NDNBOOST_NO_CXX11_DELETED_FUNCTIONS
Jeff Thompsonf7d49942013-08-01 16:47:40 -070092#if ! __IBMCPP_EXPLICIT_CONVERSION_OPERATORS
Jeff Thompson3d613fd2013-10-15 15:39:04 -070093# define NDNBOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
Jeff Thompsonf7d49942013-08-01 16:47:40 -070094#endif
95#if ! __IBMCPP_EXTERN_TEMPLATE
Jeff Thompson3d613fd2013-10-15 15:39:04 -070096# define NDNBOOST_NO_CXX11_EXTERN_TEMPLATE
Jeff Thompsonf7d49942013-08-01 16:47:40 -070097#endif
98#if ! __IBMCPP_VARIADIC_TEMPLATES
99// not enabled separately at this time
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700100# define NDNBOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
Jeff Thompsonf7d49942013-08-01 16:47:40 -0700101#endif
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700102#define NDNBOOST_NO_CXX11_HDR_INITIALIZER_LIST
103#define NDNBOOST_NO_CXX11_LAMBDAS
104#define NDNBOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
105#define NDNBOOST_NO_CXX11_NOEXCEPT
106#define NDNBOOST_NO_CXX11_NULLPTR
107#define NDNBOOST_NO_CXX11_RANGE_BASED_FOR
108#define NDNBOOST_NO_CXX11_RAW_LITERALS
109#define NDNBOOST_NO_CXX11_USER_DEFINED_LITERALS
Jeff Thompsonf7d49942013-08-01 16:47:40 -0700110#if ! __IBMCPP_RVALUE_REFERENCES
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700111# define NDNBOOST_NO_CXX11_RVALUE_REFERENCES
Jeff Thompsonf7d49942013-08-01 16:47:40 -0700112#endif
113#if ! __IBMCPP_SCOPED_ENUM
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700114# define NDNBOOST_NO_CXX11_SCOPED_ENUMS
Jeff Thompsonf7d49942013-08-01 16:47:40 -0700115#endif
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700116#define NDNBOOST_NO_SFINAE_EXPR
117#define NDNBOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
Jeff Thompsonf7d49942013-08-01 16:47:40 -0700118#if ! __IBMCPP_STATIC_ASSERT
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700119# define NDNBOOST_NO_CXX11_STATIC_ASSERT
Jeff Thompsonf7d49942013-08-01 16:47:40 -0700120#endif
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700121#define NDNBOOST_NO_CXX11_TEMPLATE_ALIASES
122#define NDNBOOST_NO_CXX11_UNICODE_LITERALS
Jeff Thompsonf7d49942013-08-01 16:47:40 -0700123#if ! __IBMCPP_VARIADIC_TEMPLATES
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700124# define NDNBOOST_NO_CXX11_VARIADIC_TEMPLATES
Jeff Thompsonf7d49942013-08-01 16:47:40 -0700125#endif
126#if ! __C99_MACRO_WITH_VA_ARGS
Jeff Thompson3d613fd2013-10-15 15:39:04 -0700127# define NDNBOOST_NO_CXX11_VARIADIC_MACROS
Jeff Thompsonf7d49942013-08-01 16:47:40 -0700128#endif
129
130
131