2 // detail/pop_options.hpp
3 // ~~~~~~~~~~~~~~~~~~~~~~
5 // Copyright (c) 2003-2020 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 # 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)
32 #elif defined(__clang__)
36 # if defined(__OBJC__)
37 # if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1)
38 # if defined(BOOST_ASIO_OBJC_WORKAROUND)
41 # undef BOOST_ASIO_OBJC_WORKAROUND
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)
52 # pragma GCC diagnostic pop
54 #elif defined(__GNUC__)
58 # if defined(__MINGW32__) || defined(__CYGWIN__)
62 # if defined(__OBJC__)
63 # if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1)
64 # if defined(BOOST_ASIO_OBJC_WORKAROUND)
67 # undef BOOST_ASIO_OBJC_WORKAROUND
72 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
73 # if !defined(BOOST_ASIO_DISABLE_VISIBILITY)
74 # pragma GCC visibility pop
75 # endif // !defined(BOOST_ASIO_DISABLE_VISIBILITY)
76 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
78 # pragma GCC diagnostic pop
88 #elif defined(__DECCXX)
90 // Compaq Tru64 Unix cxx
96 #elif defined(__BORLANDC__)
101 # pragma nopushoptwarn
102 # pragma nopackwarning
104 #elif defined(__MWERKS__)
106 // Metrowerks CodeWarrior
108 #elif defined(__SUNPRO_CC)
110 // Sun Workshop Compiler C++
112 #elif defined(__HP_aCC)
116 #elif defined(__MRC__) || defined(__SC__)
120 #elif defined(__IBMCPP__)
124 #elif defined(_MSC_VER)
126 // Microsoft Visual C++
128 // Must remain the last #elif since some other vendors (Metrowerks, for example)
129 // also #define _MSC_VER
131 # pragma warning (pop)
134 # if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
135 # if defined(BOOST_ASIO_CLR_WORKAROUND)
137 # undef BOOST_ASIO_CLR_WORKAROUND