5 // Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com)
7 // Distributed under the Boost Software License, Version 1.0. (See accompanying
8 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
17 #elif defined(__DMC__)
21 #elif defined(__INTEL_COMPILER) || defined(__ICL) \
22 || defined(__ICC) || defined(__ECC)
26 #elif defined(__GNUC__)
30 # if defined(__MINGW32__) || defined(__CYGWIN__)
31 # pragma pack (push, 8)
42 #elif defined(__DECCXX)
44 // Compaq Tru64 Unix cxx
50 #elif defined(__BORLANDC__)
54 # pragma option push -a8 -b -Ve- -Vx- -w-inl -vi-
55 # pragma nopushoptwarn
56 # pragma nopackwarning
58 # error Multithreaded RTL must be selected.
59 # endif // !defined(__MT__)
61 #elif defined(__MWERKS__)
63 // Metrowerks CodeWarrior
65 #elif defined(__SUNPRO_CC)
67 // Sun Workshop Compiler C++
69 #elif defined(__HP_aCC)
73 #elif defined(__MRC__) || defined(__SC__)
77 #elif defined(__IBMCPP__)
81 #elif defined(_MSC_VER)
83 // Microsoft Visual C++
85 // Must remain the last #elif since some other vendors (Metrowerks, for example)
86 // also #define _MSC_VER
88 # pragma warning (disable:4103)
89 # pragma warning (push)
90 # pragma warning (disable:4127)
91 # pragma warning (disable:4244)
92 # pragma warning (disable:4355)
93 # pragma warning (disable:4512)
94 # pragma warning (disable:4675)
95 # if defined(_M_IX86) && defined(_Wp64)
96 // The /Wp64 option is broken. If you want to check 64 bit portability, use a
98 # pragma warning (disable:4311)
99 # pragma warning (disable:4312)
100 # endif // defined(_M_IX86) && defined(_Wp64)
101 # pragma pack (push, 8)
102 // Note that if the /Og optimisation flag is enabled with MSVC6, the compiler
103 // has a tendency to incorrectly optimise away some calls to member template
104 // functions, even though those functions contain code that should not be
105 // optimised away! Therefore we will always disable this optimisation option
106 // for the MSVC6 compiler.
107 # if (_MSC_VER < 1300)
108 # pragma optimize ("g", off)
111 # error Multithreaded RTL must be selected.
112 # endif // !defined(_MT)