You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
127 lines
2.7 KiB
127 lines
2.7 KiB
// |
|
// detail/push_options.hpp |
|
// ~~~~~~~~~~~~~~~~~~~~~~~ |
|
// |
|
// Copyright (c) 2003-2011 Christopher M. Kohlhoff (chris at kohlhoff dot com) |
|
// |
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying |
|
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
|
// |
|
|
|
// No header guard |
|
|
|
#if defined(__COMO__) |
|
|
|
// Comeau C++ |
|
|
|
#elif defined(__DMC__) |
|
|
|
// Digital Mars C++ |
|
|
|
#elif defined(__INTEL_COMPILER) || defined(__ICL) \ |
|
|| defined(__ICC) || defined(__ECC) |
|
|
|
// Intel C++ |
|
|
|
#elif defined(__GNUC__) |
|
|
|
// GNU C++ |
|
|
|
# if defined(__MINGW32__) || defined(__CYGWIN__) |
|
# pragma pack (push, 8) |
|
# endif |
|
|
|
# if defined(__OBJC__) |
|
# if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) |
|
# if !defined(BOOST_ASIO_DISABLE_OBJC_WORKAROUND) |
|
# if !defined(Protocol) && !defined(id) |
|
# define Protocol cpp_Protocol |
|
# define id cpp_id |
|
# define BOOST_ASIO_OBJC_WORKAROUND |
|
# endif |
|
# endif |
|
# endif |
|
# endif |
|
|
|
#elif defined(__KCC) |
|
|
|
// Kai C++ |
|
|
|
#elif defined(__sgi) |
|
|
|
// SGI MIPSpro C++ |
|
|
|
#elif defined(__DECCXX) |
|
|
|
// Compaq Tru64 Unix cxx |
|
|
|
#elif defined(__ghs) |
|
|
|
// Greenhills C++ |
|
|
|
#elif defined(__BORLANDC__) |
|
|
|
// Borland C++ |
|
|
|
# pragma option push -a8 -b -Ve- -Vx- -w-inl -vi- |
|
# pragma nopushoptwarn |
|
# pragma nopackwarning |
|
# if !defined(__MT__) |
|
# error Multithreaded RTL must be selected. |
|
# endif // !defined(__MT__) |
|
|
|
#elif defined(__MWERKS__) |
|
|
|
// Metrowerks CodeWarrior |
|
|
|
#elif defined(__SUNPRO_CC) |
|
|
|
// Sun Workshop Compiler C++ |
|
|
|
#elif defined(__HP_aCC) |
|
|
|
// HP aCC |
|
|
|
#elif defined(__MRC__) || defined(__SC__) |
|
|
|
// MPW MrCpp or SCpp |
|
|
|
#elif defined(__IBMCPP__) |
|
|
|
// IBM Visual Age |
|
|
|
#elif defined(_MSC_VER) |
|
|
|
// Microsoft Visual C++ |
|
// |
|
// Must remain the last #elif since some other vendors (Metrowerks, for example) |
|
// also #define _MSC_VER |
|
|
|
# pragma warning (disable:4103) |
|
# pragma warning (push) |
|
# pragma warning (disable:4127) |
|
# pragma warning (disable:4180) |
|
# pragma warning (disable:4244) |
|
# pragma warning (disable:4355) |
|
# pragma warning (disable:4512) |
|
# pragma warning (disable:4675) |
|
# if defined(_M_IX86) && defined(_Wp64) |
|
// The /Wp64 option is broken. If you want to check 64 bit portability, use a |
|
// 64 bit compiler! |
|
# pragma warning (disable:4311) |
|
# pragma warning (disable:4312) |
|
# endif // defined(_M_IX86) && defined(_Wp64) |
|
# pragma pack (push, 8) |
|
// Note that if the /Og optimisation flag is enabled with MSVC6, the compiler |
|
// has a tendency to incorrectly optimise away some calls to member template |
|
// functions, even though those functions contain code that should not be |
|
// optimised away! Therefore we will always disable this optimisation option |
|
// for the MSVC6 compiler. |
|
# if (_MSC_VER < 1300) |
|
# pragma optimize ("g", off) |
|
# endif |
|
# if !defined(_MT) |
|
# error Multithreaded RTL must be selected. |
|
# endif // !defined(_MT) |
|
|
|
#endif
|
|
|