os/ossrv/ossrv_pub/boost_apis/boost/config/compiler/visualc.hpp
changeset 0 bde4ae8d615e
     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