1 // 2 // detail/pop_options.hpp 3 // ~~~~~~~~~~~~~~~~~~~~~~ 4 // 5 // Copyright (c) 2003-2019 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 # if !defined(BOOST_ASIO_DISABLE_VISIBILITY) 28 # pragma GCC visibility pop 29 # endif // !defined(BOOST_ASIO_DISABLE_VISIBILITY) 30 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) 31 32 #elif defined(__clang__) 33 34 // Clang 35 36 # if defined(__OBJC__) 37 # if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) 38 # if defined(BOOST_ASIO_OBJC_WORKAROUND) 39 # undef Protocol 40 # undef id 41 # undef BOOST_ASIO_OBJC_WORKAROUND 42 # endif 43 # endif 44 # endif 45 46 # if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) 47 # if !defined(BOOST_ASIO_DISABLE_VISIBILITY) 48 # pragma GCC visibility pop 49 # endif // !defined(BOOST_ASIO_DISABLE_VISIBILITY) 50 # endif // !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32) 51 52 #elif defined(__GNUC__) 53 54 // GNU C++ 55 56 # if defined(__MINGW32__) || defined(__CYGWIN__) 57 # pragma pack (pop) 58 # endif 59 60 # if defined(__OBJC__) 61 # if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1) 62 # if defined(BOOST_ASIO_OBJC_WORKAROUND) 63 # undef Protocol 64 # undef id 65 # undef BOOST_ASIO_OBJC_WORKAROUND 66 # endif 67 # endif 68 # endif 69 70 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) 71 # if !defined(BOOST_ASIO_DISABLE_VISIBILITY) 72 # pragma GCC visibility pop 73 # endif // !defined(BOOST_ASIO_DISABLE_VISIBILITY) 74 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4) 75 76 # if (__GNUC__ >= 7) 77 # pragma GCC diagnostic pop 78 # endif // (__GNUC__ >= 7) 79 80 #elif defined(__KCC) 81 82 // Kai C++ 83 84 #elif defined(__sgi) 85 86 // SGI MIPSpro C++ 87 88 #elif defined(__DECCXX) 89 90 // Compaq Tru64 Unix cxx 91 92 #elif defined(__ghs) 93 94 // Greenhills C++ 95 96 #elif defined(__BORLANDC__) 97 98 // Borland C++ 99 100 # pragma option pop 101 # pragma nopushoptwarn 102 # pragma nopackwarning 103 104 #elif defined(__MWERKS__) 105 106 // Metrowerks CodeWarrior 107 108 #elif defined(__SUNPRO_CC) 109 110 // Sun Workshop Compiler C++ 111 112 #elif defined(__HP_aCC) 113 114 // HP aCC 115 116 #elif defined(__MRC__) || defined(__SC__) 117 118 // MPW MrCpp or SCpp 119 120 #elif defined(__IBMCPP__) 121 122 // IBM Visual Age 123 124 #elif defined(_MSC_VER) 125 126 // Microsoft Visual C++ 127 // 128 // Must remain the last #elif since some other vendors (Metrowerks, for example) 129 // also #define _MSC_VER 130 131 # pragma warning (pop) 132 # pragma pack (pop) 133 134 # if defined(__cplusplus_cli) || defined(__cplusplus_winrt) 135 # if defined(BOOST_ASIO_CLR_WORKAROUND) 136 # undef generic 137 # undef BOOST_ASIO_CLR_WORKAROUND 138 # endif 139 # endif 140 141 #endif 142