blob: 441a055fa2b5e5d2141262464ae7782e7698b1e7 [file] [log] [blame]
Jeff Thompsonf7d49942013-08-01 16:47:40 -07001// (C) Copyright John Maddock 2001 - 2002.
2// (C) Copyright Jens Maurer 2001.
3// (C) Copyright David Abrahams 2002.
4// (C) Copyright Aleksey Gurtovoy 2002.
5// (C) Copyright Markus Schoepflin 2005.
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//
13// Options common to all edg based compilers.
14//
15// This is included from within the individual compiler mini-configs.
16
17#ifndef __EDG_VERSION__
18# error This file requires that __EDG_VERSION__ be defined.
19#endif
20
21#if (__EDG_VERSION__ <= 238)
22# define BOOST_NO_INTEGRAL_INT64_T
23# define BOOST_NO_SFINAE
24#endif
25
26#if (__EDG_VERSION__ <= 240)
27# define BOOST_NO_VOID_RETURNS
28#endif
29
30#if (__EDG_VERSION__ <= 241) && !defined(BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP)
31# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
32#endif
33
34#if (__EDG_VERSION__ <= 244) && !defined(BOOST_NO_TEMPLATE_TEMPLATES)
35# define BOOST_NO_TEMPLATE_TEMPLATES
36#endif
37
38#if (__EDG_VERSION__ < 300) && !defined(BOOST_NO_IS_ABSTRACT)
39# define BOOST_NO_IS_ABSTRACT
40#endif
41
42#if (__EDG_VERSION__ <= 303) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
43# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
44#endif
45
46// See also kai.hpp which checks a Kai-specific symbol for EH
47# if !defined(__KCC) && !defined(__EXCEPTIONS) && !defined(BOOST_NO_EXCEPTIONS)
48# define BOOST_NO_EXCEPTIONS
49# endif
50
51# if !defined(__NO_LONG_LONG)
52# define BOOST_HAS_LONG_LONG
53# else
54# define BOOST_NO_LONG_LONG
55# endif
56
57//
58// C++0x features
59//
60// See above for BOOST_NO_LONG_LONG
61//
62#if (__EDG_VERSION__ < 310)
63# define BOOST_NO_CXX11_EXTERN_TEMPLATE
64#endif
65#if (__EDG_VERSION__ <= 310)
66// No support for initializer lists
67# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
68#endif
69#if (__EDG_VERSION__ < 400)
70# define BOOST_NO_CXX11_VARIADIC_MACROS
71#endif
72
73#define BOOST_NO_CXX11_AUTO_DECLARATIONS
74#define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
75#define BOOST_NO_CXX11_CHAR16_T
76#define BOOST_NO_CXX11_CHAR32_T
77#define BOOST_NO_CXX11_CONSTEXPR
78#define BOOST_NO_CXX11_DECLTYPE
79#define BOOST_NO_CXX11_DECLTYPE_N3276
80#define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
81#define BOOST_NO_CXX11_DELETED_FUNCTIONS
82#define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
83#define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
84#define BOOST_NO_CXX11_LAMBDAS
85#define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
86#define BOOST_NO_CXX11_NOEXCEPT
87#define BOOST_NO_CXX11_NULLPTR
88#define BOOST_NO_CXX11_RANGE_BASED_FOR
89#define BOOST_NO_CXX11_RAW_LITERALS
90#define BOOST_NO_CXX11_RVALUE_REFERENCES
91#define BOOST_NO_CXX11_SCOPED_ENUMS
92#define BOOST_NO_SFINAE_EXPR
93#define BOOST_NO_CXX11_STATIC_ASSERT
94#define BOOST_NO_CXX11_TEMPLATE_ALIASES
95#define BOOST_NO_CXX11_UNICODE_LITERALS
96#define BOOST_NO_CXX11_VARIADIC_TEMPLATES
97#define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
98
99#ifdef c_plusplus
100// EDG has "long long" in non-strict mode
101// However, some libraries have insufficient "long long" support
102// #define BOOST_HAS_LONG_LONG
103#endif