1
// (C) Copyright John Maddock 2001.
2
// (C) Copyright Peter Dimov 2001.
3
// (C) Copyright Jens Maurer 2001.
4
// (C) Copyright David Abrahams 2002 - 2003.
5
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
6
// (C) Copyright Guillaume Melquiond 2002 - 2003.
7
// (C) Copyright Beman Dawes 2003.
8
// (C) Copyright Martin Wille 2003.
9
// Use, modification and distribution are subject to the
10
// Boost Software License, Version 1.0. (See accompanying file
1
// (C) Copyright John Maddock 2001-8.
2
// (C) Copyright Peter Dimov 2001.
3
// (C) Copyright Jens Maurer 2001.
4
// (C) Copyright David Abrahams 2002 - 2003.
5
// (C) Copyright Aleksey Gurtovoy 2002 - 2003.
6
// (C) Copyright Guillaume Melquiond 2002 - 2003.
7
// (C) Copyright Beman Dawes 2003.
8
// (C) Copyright Martin Wille 2003.
9
// Use, modification and distribution are subject to the
10
// Boost Software License, Version 1.0. (See accompanying file
11
11
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
13
13
// See http://www.boost.org for most recent version.
79
79
// supports wchar_t natively. *BUT* there is a problem here: the standard
80
80
// headers define this macro if they typedef wchar_t. Anyway, we're lucky
81
81
// because they define it without a value, while Intel C++ defines it
82
// to 1. So we can check its value to see if the macro was defined natively
84
// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
82
// to 1. So we can check its value to see if the macro was defined natively
84
// Under UNIX, the situation is exactly the same, but the macro _WCHAR_T
85
85
// is used instead.
86
86
# if ((_WCHAR_T_DEFINED + 0) == 0) && ((_WCHAR_T + 0) == 0)
87
87
# define BOOST_NO_INTRINSIC_WCHAR_T
91
91
#if defined(__GNUC__) && !defined(BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL)
93
// Figure out when Intel is emulating this gcc bug:
93
// Figure out when Intel is emulating this gcc bug
94
// (All Intel versions prior to 9.0.26, and versions
95
// later than that if they are set up to emulate gcc 3.2
95
# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL <= 900)
98
# if ((__GNUC__ == 3) && (__GNUC_MINOR__ <= 2)) || (BOOST_INTEL < 900) || (__INTEL_COMPILER_BUILD_DATE < 20050912)
96
99
# define BOOST_FUNCTION_SCOPE_USING_DECLARATION_BREAKS_ADL
102
#if (defined(__GNUC__) && (__GNUC__ < 4)) || defined(_WIN32) || (BOOST_INTEL_CXX_VERSION <= 1110)
103
// GCC or VC emulation:
104
#define BOOST_NO_TWO_PHASE_NAME_LOOKUP
101
107
// Verify that we have actually got BOOST_NO_INTRINSIC_WCHAR_T
102
108
// set correctly, if we don't do this now, we will get errors later
139
146
#if BOOST_INTEL_CXX_VERSION < 500
140
147
# error "Compiler not supported or configured - please reconfigure"
150
// Intel on MacOS requires
151
#if defined(__APPLE__) && defined(__INTEL_COMPILER)
152
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
155
// Intel on Altix Itanium
156
#if defined(__itanium__) && defined(__INTEL_COMPILER)
157
# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
161
// An attempt to value-initialize a pointer-to-member may trigger an
162
// internal error on Intel <= 11.1 (last checked version), as was
163
// reported by John Maddock, Intel support issue 589832, May 2010.
164
// Moreover, according to test results from Huang-Vista-x86_32_intel,
165
// intel-vc9-win-11.1 may leave a non-POD array uninitialized, in some
166
// cases when it should be value-initialized.
167
// (Niels Dekker, LKEB, May 2010)
168
#if defined(__INTEL_COMPILER)
169
# if __INTEL_COMPILER <= 1110
170
# define BOOST_NO_COMPLETE_VALUE_INITIALIZATION
175
// Dynamic shared object (DSO) and dynamic-link library (DLL) support
177
#if defined(__GNUC__) && (__GNUC__ >= 4)
178
# define BOOST_SYMBOL_EXPORT __attribute__((visibility("default")))
179
# define BOOST_SYMBOL_IMPORT
180
# define BOOST_SYMBOL_VISIBLE __attribute__((visibility("default")))
143
184
// last known and checked version:
144
#if (BOOST_INTEL_CXX_VERSION > 900)
185
#if (BOOST_INTEL_CXX_VERSION > 1110)
145
186
# if defined(BOOST_ASSERT_CONFIG)
146
187
# error "Unknown compiler version - please run the configure tests and report the results"
147
188
# elif defined(_MSC_VER)
148
# pragma message("Unknown compiler version - please run the configure tests and report the results")
190
// We don't emit this warning any more, since we have so few
191
// defect macros set anyway (just the one).
193
//# pragma message("Unknown compiler version - please run the configure tests and report the results")