1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/os/ossrv/ossrv_pub/boost_apis/boost/config/compiler/visualc.hpp Fri Jun 15 03:10:57 2012 +0200
1.3 @@ -0,0 +1,178 @@
1.4 +// (C) Copyright John Maddock 2001 - 2003.
1.5 +// (C) Copyright Darin Adler 2001 - 2002.
1.6 +// (C) Copyright Peter Dimov 2001.
1.7 +// (C) Copyright Aleksey Gurtovoy 2002.
1.8 +// (C) Copyright David Abrahams 2002 - 2003.
1.9 +// (C) Copyright Beman Dawes 2002 - 2003.
1.10 +// Use, modification and distribution are subject to the
1.11 +// Boost Software License, Version 1.0. (See accompanying file
1.12 +// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
1.13 +
1.14 +// See http://www.boost.org for most recent version.
1.15 +
1.16 +// Microsoft Visual C++ compiler setup:
1.17 +
1.18 +#define BOOST_MSVC _MSC_VER
1.19 +
1.20 +// turn off the warnings before we #include anything
1.21 +#pragma warning( disable : 4503 ) // warning: decorated name length exceeded
1.22 +
1.23 +#if _MSC_VER < 1300 // 1200 == VC++ 6.0, 1200-1202 == eVC++4
1.24 +# pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
1.25 +# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
1.26 +# define BOOST_NO_VOID_RETURNS
1.27 +# define BOOST_NO_EXCEPTION_STD_NAMESPACE
1.28 + // disable min/max macro defines on vc6:
1.29 + //
1.30 +#endif
1.31 +
1.32 +#if (_MSC_VER <= 1300) // 1300 == VC++ 7.0
1.33 +
1.34 +# if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS) // VC7 bug with /Za
1.35 +# define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
1.36 +# endif
1.37 +
1.38 +# define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
1.39 +# define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
1.40 +# define BOOST_NO_PRIVATE_IN_AGGREGATE
1.41 +# define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
1.42 +# define BOOST_NO_INTEGRAL_INT64_T
1.43 +# define BOOST_NO_DEDUCED_TYPENAME
1.44 +# define BOOST_NO_USING_DECLARATION_OVERLOADS_FROM_TYPENAME_BASE
1.45 +
1.46 +// VC++ 6/7 has member templates but they have numerous problems including
1.47 +// cases of silent failure, so for safety we define:
1.48 +# define BOOST_NO_MEMBER_TEMPLATES
1.49 +// For VC++ experts wishing to attempt workarounds, we define:
1.50 +# define BOOST_MSVC6_MEMBER_TEMPLATES
1.51 +
1.52 +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
1.53 +# define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
1.54 +# define BOOST_NO_CV_VOID_SPECIALIZATIONS
1.55 +# define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
1.56 +# define BOOST_NO_USING_TEMPLATE
1.57 +# define BOOST_NO_SWPRINTF
1.58 +# define BOOST_NO_TEMPLATE_TEMPLATES
1.59 +# define BOOST_NO_SFINAE
1.60 +# define BOOST_NO_POINTER_TO_MEMBER_TEMPLATE_PARAMETERS
1.61 +# define BOOST_NO_IS_ABSTRACT
1.62 +// TODO: what version is meant here? Have there really been any fixes in cl 12.01 (as e.g. shipped with eVC4)?
1.63 +# if (_MSC_VER > 1200)
1.64 +# define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
1.65 +# endif
1.66 +
1.67 +#endif
1.68 +
1.69 +#if _MSC_VER < 1400
1.70 +// although a conforming signature for swprint exists in VC7.1
1.71 +// it appears not to actually work:
1.72 +# define BOOST_NO_SWPRINTF
1.73 +#endif
1.74 +
1.75 +#if _MSC_VER <= 1400 // 1400 == VC++ 8.0
1.76 +# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
1.77 +#endif
1.78 +
1.79 +#ifndef _NATIVE_WCHAR_T_DEFINED
1.80 +# define BOOST_NO_INTRINSIC_WCHAR_T
1.81 +#endif
1.82 +
1.83 +#ifdef _WIN32_WCE
1.84 +# define BOOST_NO_THREADEX
1.85 +# define BOOST_NO_GETSYSTEMTIMEASFILETIME
1.86 +#endif
1.87 +
1.88 +//
1.89 +// check for exception handling support:
1.90 +#ifndef _CPPUNWIND
1.91 +# define BOOST_NO_EXCEPTIONS
1.92 +#endif
1.93 +
1.94 +//
1.95 +// __int64 support:
1.96 +//
1.97 +#if (_MSC_VER >= 1200)
1.98 +# define BOOST_HAS_MS_INT64
1.99 +#endif
1.100 +#if (_MSC_VER >= 1310) && defined(_MSC_EXTENSIONS)
1.101 +# define BOOST_HAS_LONG_LONG
1.102 +#endif
1.103 +#if (_MSC_VER >= 1400) && !defined(_DEBUG)
1.104 +# define BOOST_HAS_NRVO
1.105 +#endif
1.106 +//
1.107 +// disable Win32 API's if compiler extentions are
1.108 +// turned off:
1.109 +//
1.110 +#ifndef _MSC_EXTENSIONS
1.111 +# define BOOST_DISABLE_WIN32
1.112 +#endif
1.113 +
1.114 +//
1.115 +// all versions support __declspec:
1.116 +//
1.117 +#define BOOST_HAS_DECLSPEC
1.118 +//
1.119 +// prefix and suffix headers:
1.120 +//
1.121 +#ifndef BOOST_ABI_PREFIX
1.122 +# define BOOST_ABI_PREFIX "boost/config/abi/msvc_prefix.hpp"
1.123 +#endif
1.124 +#ifndef BOOST_ABI_SUFFIX
1.125 +# define BOOST_ABI_SUFFIX "boost/config/abi/msvc_suffix.hpp"
1.126 +#endif
1.127 +
1.128 +// TODO:
1.129 +// these things are mostly bogus. 1200 means version 12.0 of the compiler. The
1.130 +// artificial versions assigned to them only refer to the versions of some IDE
1.131 +// these compilers have been shipped with, and even that is not all of it. Some
1.132 +// were shipped with freely downloadable SDKs, others as crosscompilers in eVC.
1.133 +// IOW, you can't use these 'versions' in any sensible way. Sorry.
1.134 +# if defined(UNDER_CE)
1.135 +# if _MSC_VER < 1200
1.136 + // Note: these are so far off, they are not really supported
1.137 +# elif _MSC_VER < 1300 // eVC++ 4 comes with 1200-1202
1.138 +# define BOOST_COMPILER_VERSION evc4.0
1.139 +# elif _MSC_VER == 1400
1.140 +# define BOOST_COMPILER_VERSION evc8
1.141 +# else
1.142 +# if defined(BOOST_ASSERT_CONFIG)
1.143 +# error "Unknown EVC++ compiler version - please run the configure tests and report the results"
1.144 +# else
1.145 +# pragma message("Unknown EVC++ compiler version - please run the configure tests and report the results")
1.146 +# endif
1.147 +# endif
1.148 +# else
1.149 +# if _MSC_VER < 1200
1.150 + // Note: these are so far off, they are not really supported
1.151 +# define BOOST_COMPILER_VERSION 5.0
1.152 +# elif _MSC_VER < 1300
1.153 +# define BOOST_COMPILER_VERSION 6.0
1.154 +# elif _MSC_VER == 1300
1.155 +# define BOOST_COMPILER_VERSION 7.0
1.156 +# elif _MSC_VER == 1310
1.157 +# define BOOST_COMPILER_VERSION 7.1
1.158 +# elif _MSC_VER == 1400
1.159 +# define BOOST_COMPILER_VERSION 8.0
1.160 +# else
1.161 +# define BOOST_COMPILER_VERSION _MSC_VER
1.162 +# endif
1.163 +# endif
1.164 +
1.165 +#define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
1.166 +
1.167 +//
1.168 +// versions check:
1.169 +// we don't support Visual C++ prior to version 6:
1.170 +#if _MSC_VER < 1200
1.171 +#error "Compiler not supported or configured - please reconfigure"
1.172 +#endif
1.173 +//
1.174 +// last known and checked version is 1400 (VC8):
1.175 +#if (_MSC_VER > 1400)
1.176 +# if defined(BOOST_ASSERT_CONFIG)
1.177 +# error "Unknown compiler version - please run the configure tests and report the results"
1.178 +# else
1.179 +# pragma message("Unknown compiler version - please run the configure tests and report the results")
1.180 +# endif
1.181 +#endif