1 // 2 // detail/pop_options.hpp 3 // ~~~~~~~~~~~~~~~~~~~~~~ 4 // 5 // Copyright (c) 2003-2015 Christopher M. Kohlhoff (chris at kohlhoff dot com) 6 // 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) 9 // 10 11 // No header guard 12 13 #if defined(__COMO__) 14 15 // Comeau C++ 16 17 #elif defined(__DMC__) 18 19 // Digital Mars C++ 20 21 #elif defined(__INTEL_COMPILER) || defined(__ICL) \ 22 || defined(__ICC) || defined(__ECC) 23 24 // Intel C++ 25 26 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) 27 # pragma GCC visibility pop 28 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) 29 30 #elif defined(__clang__) 31 32 // Clang 33 34 # if defined(__OBJC__) 35 # if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) 36 # if defined(BOOST_ASIO_OBJC_WORKAROUND) 37 # undef Protocol 38 # undef id 39 # undef BOOST_ASIO_OBJC_WORKAROUND 40 # endif 41 # endif 42 # endif 43 44 # if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) 45 # pragma GCC visibility pop 46 # endif // !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) 47 48 #elif defined(__GNUC__) 49 50 // GNU C++ 51 52 # if defined(__MINGW32__) || defined(__CYGWIN__) 53 # pragma pack (pop) 54 # endif 55 56 # if defined(__OBJC__) 57 # if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) 58 # if defined(BOOST_ASIO_OBJC_WORKAROUND) 59 # undef Protocol 60 # undef id 61 # undef BOOST_ASIO_OBJC_WORKAROUND 62 # endif 63 # endif 64 # endif 65 66 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) 67 # pragma GCC visibility pop 68 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) 69 70 #elif defined(__KCC) 71 72 // Kai C++ 73 74 #elif defined(__sgi) 75 76 // SGI MIPSpro C++ 77 78 #elif defined(__DECCXX) 79 80 // Compaq Tru64 Unix cxx 81 82 #elif defined(__ghs) 83 84 // Greenhills C++ 85 86 #elif defined(__BORLANDC__) 87 88 // Borland C++ 89 90 # pragma option pop 91 # pragma nopushoptwarn 92 # pragma nopackwarning 93 94 #elif defined(__MWERKS__) 95 96 // Metrowerks CodeWarrior 97 98 #elif defined(__SUNPRO_CC) 99 100 // Sun Workshop Compiler C++ 101 102 #elif defined(__HP_aCC) 103 104 // HP aCC 105 106 #elif defined(__MRC__) || defined(__SC__) 107 108 // MPW MrCpp or SCpp 109 110 #elif defined(__IBMCPP__) 111 112 // IBM Visual Age 113 114 #elif defined(_MSC_VER) 115 116 // Microsoft Visual C++ 117 // 118 // Must remain the last #elif since some other vendors (Metrowerks, for example) 119 // also #define _MSC_VER 120 121 # pragma warning (pop) 122 # pragma pack (pop) 123 124 # if defined(__cplusplus_cli) || defined(__cplusplus_winrt) 125 # if defined(BOOST_ASIO_CLR_WORKAROUND) 126 # undef generic 127 # undef BOOST_ASIO_CLR_WORKAROUND 128 # endif 129 # endif 130 131 #endif 132