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)