$search
00001 // 00002 // push_options.hpp 00003 // ~~~~~~~~~~~~~~~~ 00004 // 00005 // Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com) 00006 // 00007 // Distributed under the Boost Software License, Version 1.0. (See accompanying 00008 // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) 00009 // 00010 00011 // No header guard 00012 00013 #if defined(__COMO__) 00014 00015 // Comeau C++ 00016 00017 #elif defined(__DMC__) 00018 00019 // Digital Mars C++ 00020 00021 #elif defined(__INTEL_COMPILER) || defined(__ICL) \ 00022 || defined(__ICC) || defined(__ECC) 00023 00024 // Intel C++ 00025 00026 #elif defined(__GNUC__) 00027 00028 // GNU C++ 00029 00030 # if defined(__MINGW32__) || defined(__CYGWIN__) 00031 # pragma pack (push, 8) 00032 # endif 00033 00034 #elif defined(__KCC) 00035 00036 // Kai C++ 00037 00038 #elif defined(__sgi) 00039 00040 // SGI MIPSpro C++ 00041 00042 #elif defined(__DECCXX) 00043 00044 // Compaq Tru64 Unix cxx 00045 00046 #elif defined(__ghs) 00047 00048 // Greenhills C++ 00049 00050 #elif defined(__BORLANDC__) 00051 00052 // Borland C++ 00053 00054 # pragma option push -a8 -b -Ve- -Vx- -w-inl -vi- 00055 # pragma nopushoptwarn 00056 # pragma nopackwarning 00057 # if !defined(__MT__) 00058 # error Multithreaded RTL must be selected. 00059 # endif // !defined(__MT__) 00060 00061 #elif defined(__MWERKS__) 00062 00063 // Metrowerks CodeWarrior 00064 00065 #elif defined(__SUNPRO_CC) 00066 00067 // Sun Workshop Compiler C++ 00068 00069 #elif defined(__HP_aCC) 00070 00071 // HP aCC 00072 00073 #elif defined(__MRC__) || defined(__SC__) 00074 00075 // MPW MrCpp or SCpp 00076 00077 #elif defined(__IBMCPP__) 00078 00079 // IBM Visual Age 00080 00081 #elif defined(_MSC_VER) 00082 00083 // Microsoft Visual C++ 00084 // 00085 // Must remain the last #elif since some other vendors (Metrowerks, for example) 00086 // also #define _MSC_VER 00087 00088 # pragma warning (disable:4103) 00089 # pragma warning (push) 00090 # pragma warning (disable:4127) 00091 # pragma warning (disable:4244) 00092 # pragma warning (disable:4355) 00093 # pragma warning (disable:4512) 00094 # pragma warning (disable:4675) 00095 # if defined(_M_IX86) && defined(_Wp64) 00096 // The /Wp64 option is broken. If you want to check 64 bit portability, use a 00097 // 64 bit compiler! 00098 # pragma warning (disable:4311) 00099 # pragma warning (disable:4312) 00100 # endif // defined(_M_IX86) && defined(_Wp64) 00101 # pragma pack (push, 8) 00102 // Note that if the /Og optimisation flag is enabled with MSVC6, the compiler 00103 // has a tendency to incorrectly optimise away some calls to member template 00104 // functions, even though those functions contain code that should not be 00105 // optimised away! Therefore we will always disable this optimisation option 00106 // for the MSVC6 compiler. 00107 # if (_MSC_VER < 1300) 00108 # pragma optimize ("g", off) 00109 # endif 00110 # if !defined(_MT) 00111 # error Multithreaded RTL must be selected. 00112 # endif // !defined(_MT) 00113 00114 #endif