]> git.lyx.org Git - lyx.git/blob - boost/boost/config/compiler/visualc.hpp
8aeb1e187b58bb8d1c4330a9fe16740527deb4d9
[lyx.git] / boost / boost / config / compiler / visualc.hpp
1 //  (C) Copyright Boost.org 2001. Permission to copy, use, modify, sell and
2 //  distribute this software is granted provided this copyright notice appears
3 //  in all copies. This software is provided "as is" without express or implied
4 //  warranty, and with no claim as to its suitability for any purpose.
5
6 //  See http://www.boost.org for most recent version.
7
8 //  Microsoft Visual C++ compiler setup:
9
10 #define BOOST_MSVC _MSC_VER
11
12 // turn off the warnings before we #include anything
13 #pragma warning( disable : 4503 ) // warning: decorated name length exceeded
14
15 #if _MSC_VER <= 1200  // 1200 == VC++ 6.0
16 #pragma warning( disable : 4786 ) // ident trunc to '255' chars in debug info
17 #  define BOOST_NO_EXPLICIT_FUNCTION_TEMPLATE_ARGUMENTS
18 #  define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
19 #  define BOOST_NO_VOID_RETURNS
20    // disable min/max macro defines on vc6:
21    //
22 #endif
23
24 #if (_MSC_VER <= 1300) // || !defined(BOOST_STRICT_CONFIG) // VC7 Beta 2 or later
25
26 #if !defined(_MSC_EXTENSIONS) && !defined(BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS)      // VC7 bug with /Za
27 #  define BOOST_NO_DEPENDENT_TYPES_IN_TEMPLATE_VALUE_PARAMETERS
28 #endif
29
30 #  define BOOST_NO_INCLASS_MEMBER_INITIALIZATION
31 #  define BOOST_NO_PRIVATE_IN_AGGREGATE
32 #  define BOOST_NO_ARGUMENT_DEPENDENT_LOOKUP
33 #  define BOOST_NO_INTEGRAL_INT64_T
34
35 //    VC++ 6/7 has member templates but they have numerous problems including
36 //    cases of silent failure, so for safety we define:
37 #  define BOOST_NO_MEMBER_TEMPLATES
38 //    For VC++ experts wishing to attempt workarounds, we define:
39 #  define BOOST_MSVC6_MEMBER_TEMPLATES
40
41 #  define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
42 #  define BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
43 #  define BOOST_NO_CV_VOID_SPECIALIZATIONS
44 #  define BOOST_NO_FUNCTION_TEMPLATE_ORDERING
45 #  define BOOST_NO_USING_TEMPLATE
46 #  define BOOST_NO_SWPRINTF
47 #  define BOOST_NO_TEMPLATE_TEMPLATES
48 #  if (_MSC_VER > 1200)
49 #     define BOOST_NO_MEMBER_FUNCTION_SPECIALIZATIONS
50 #  endif
51
52 #endif
53
54 #if _MSC_VER <= 1301
55 #  define BOOST_NO_SWPRINTF
56 #endif
57
58 #ifndef _NATIVE_WCHAR_T_DEFINED
59 #  define BOOST_NO_INTRINSIC_WCHAR_T
60 #endif
61
62 //   
63 // check for exception handling support:   
64 #ifndef _CPPUNWIND   
65 #  define BOOST_NO_EXCEPTIONS   
66 #endif 
67
68 //
69 // __int64 support:
70 //
71 #if (_MSC_VER >= 1200) && defined(_MSC_EXTENSIONS)
72 #   define BOOST_HAS_MS_INT64
73 #endif
74 //
75 // disable Win32 API's if compiler extentions are
76 // turned off:
77 //
78 #ifndef _MSC_EXTENSIONS
79 #  define BOOST_DISABLE_WIN32
80 #endif
81
82 # if _MSC_VER == 1200
83 #   define BOOST_COMPILER_VERSION 6.0
84 # elif _MSC_VER == 1300
85 #   define BOOST_COMPILER_VERSION 7.0
86 # else
87 #   define BOOST_COMPILER_VERSION _MSC_VER
88 # endif
89
90 #define BOOST_COMPILER "Microsoft Visual C++ version " BOOST_STRINGIZE(BOOST_COMPILER_VERSION)
91
92 //
93 // versions check:
94 // we don't support Visual C++ prior to version 6:
95 #if _MSC_VER < 1200
96 #error "Compiler not supported or configured - please reconfigure"
97 #endif
98 //
99 // last known and checked version is 1310:
100 #if (_MSC_VER > 1310)
101 #  if defined(BOOST_ASSERT_CONFIG)
102 #     error "Unknown compiler version - please run the configure tests and report the results"
103 #  else
104 #     pragma message("Unknown compiler version - please run the configure tests and report the results")
105 #  endif
106 #endif
107
108
109
110