VirtualBox

source: vbox/trunk/src/libs/boost-1.37.0/boost/config/compiler/visualc.hpp@ 18769

Last change on this file since 18769 was 16204, checked in by vboxsync, 16 years ago

export the boost stuff required for Main

File size: 6.1 KB
Line 
1// (C) Copyright John Maddock 2001 - 2003.
2// (C) Copyright Darin Adler 2001 - 2002.
3// (C) Copyright Peter Dimov 2001.
4// (C) Copyright Aleksey Gurtovoy 2002.
5// (C) Copyright David Abrahams 2002 - 2003.
6// (C) Copyright Beman Dawes 2002 - 2003.
7// Use, modification and distribution are subject to the
8// Boost Software License, Version 1.0. (See accompanying file
9// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
10
11// See http://www.boost.org for most recent version.
12
13// Microsoft Visual C++ compiler setup:
14
15#define BOOST_MSVC _MSC_VER
16
17// turn off the warnings before we #include anything
18#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
19
20#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
21# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
22# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
23# define BOOST_NO_VOID_RETURNS
24# define BOOST_NO_EXCEPTION_STD_NAMESPACE
25 // disable min/max macro defines on vc6:
26 //
27#endif
28
29#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
30
31# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
32# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
33# endif
34
35# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
36# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
37# define BOOST_NO_PRIVATE_IN_AGGREGATE
38# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
39# define BOOST_NO_INTEGRAL_INT64_T
40# define BOOST_NO_DEDUCED_TYPENAME
41# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
42
43// VC++ 6/7 has member templates but they have numerous problems including
44// cases of silent failure, so for safety we define:
45# define BOOST_NO_MEMBER_TEMPLATES
46// For VC++ experts wishing to attempt workarounds, we define:
47# define BOOST_MSVC6_MEMBER_TEMPLATES
48
49# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
50# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
51# define BOOST_NO_CV_VOID_SPECIALIZATIONS
52# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
53# define BOOST_NO_USING_TEMPLATE
54# define BOOST_NO_SWPRINTF
55# define BOOST_NO_TEMPLATE_TEMPLATES
56# define BOOST_NO_SFINAE
57# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
58# define BOOST_NO_IS_ABSTRACT
59# define BOOST_NO_FUNCTION_TYPE_SPECIALIZATIONS
60// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
61# if (_MSC_VER > 1200)
62# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
63# endif
64
65#endif
66
67#if _MSC_VER < 1400
68// although a conforming signature for swprint exists in VC7.1
69// it appears not to actually work:
70# define BOOST_NO_SWPRINTF
71#endif
72
73#if defined(UNDER_CE)
74// Windows CE does not have a conforming signature for swprintf
75# define BOOST_NO_SWPRINTF
76#endif
77
78#if _MSC_VER <= 1400 // 1400 == VC++ 8.0
79# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
80#endif
81
82#if _MSC_VER <= 1500 // 1500 == VC++ 9.0
83# define BOOST_NO_TWO_PHASE_NAME_LOOKUP
84#endif
85
86#if _MSC_VER == 1500 // 1500 == VC++ 9.0
87 // A bug in VC9:
88# define BOOST_NO_ADL_BARRIER
89#endif
90
91#ifndef _NATIVE_WCHAR_T_DEFINED
92# define BOOST_NO_INTRINSIC_WCHAR_T
93#endif
94
95#if defined(_WIN32_WCE) || defined(UNDER_CE)
96# define BOOST_NO_THREADEX
97# define BOOST_NO_GETSYSTEMTIMEASFILETIME
98# define BOOST_NO_SWPRINTF
99#endif
100
101//
102// check for exception handling support:
103#ifndef _CPPUNWIND
104# define BOOST_NO_EXCEPTIONS
105#endif
106
107//
108// __int64 support:
109//
110#if (_MSC_VER >= 1200)
111# define BOOST_HAS_MS_INT64
112#endif
113#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS)
114# define BOOST_HAS_LONG_LONG
115#endif
116#if (_MSC_VER >= 1400) && !defined(_DEBUG)
117# define BOOST_HAS_NRVO
118#endif
119//
120// disable Win32 API's if compiler extentions are
121// turned off:
122//
123#ifndef _MSC_EXTENSIONS
124# define BOOST_DISABLE_WIN32
125#endif
126#ifndef _CPPRTTI
127# define BOOST_NO_RTTI
128#endif
129
130//
131// all versions support __declspec:
132//
133#define BOOST_HAS_DECLSPEC
134//
135// prefix and suffix headers:
136//
137#ifndef BOOST_ABI_PREFIX
138# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
139#endif
140#ifndef BOOST_ABI_SUFFIX
141# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
142#endif
143
144// TODO:
145// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
146// artificial versions assigned to them only refer to the versions of some IDE
147// these compilers have been shipped with, and even that is not all of it. Some
148// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
149// IOW, you can't use these 'versions' in any sensible way. Sorry.
150# if defined(UNDER_CE)
151# if _MSC_VER < 1200
152 // Note: these are so far off, they are not really supported
153# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
154# define BOOST_COMPILER_VERSION evc4.0
155# elif _MSC_VER == 1400
156# define BOOST_COMPILER_VERSION evc8
157# else
158# if defined(BOOST_ASSERT_CONFIG)
159# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
160# else
161# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
162# endif
163# endif
164# else
165# if _MSC_VER < 1200
166 // Note: these are so far off, they are not really supported
167# define BOOST_COMPILER_VERSION 5.0
168# elif _MSC_VER < 1300
169# define BOOST_COMPILER_VERSION 6.0
170# elif _MSC_VER == 1300
171# define BOOST_COMPILER_VERSION 7.0
172# elif _MSC_VER == 1310
173# define BOOST_COMPILER_VERSION 7.1
174# elif _MSC_VER == 1400
175# define BOOST_COMPILER_VERSION 8.0
176# elif _MSC_VER == 1500
177# define BOOST_COMPILER_VERSION 9.0
178# else
179# define BOOST_COMPILER_VERSION _MSC_VER
180# endif
181# endif
182
183#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
184
185//
186// versions check:
187// we don't support Visual C++ prior to version 6:
188#if _MSC_VER < 1200
189#error "Compiler not supported or configured - please reconfigure"
190#endif
191//
192// last known and checked version is 1500 (VC9):
193#if (_MSC_VER > 1500)
194# if defined(BOOST_ASSERT_CONFIG)
195# error "Unknown compiler version - please run the configure tests and report the results"
196# else
197# pragma message("Unknown compiler version - please run the configure tests and report the results")
198# endif
199#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette