2 // detail/pop_options.hpp
3 // ~~~~~~~~~~~~~~~~~~~~~~
5 // Copyright (c) 2003-2018 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 # pragma GCC visibility pop
28 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
30 #elif defined(__clang__)
34 # if defined(__OBJC__)
35 # if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1)
36 # if defined(BOOST_ASIO_OBJC_WORKAROUND)
39 # undef BOOST_ASIO_OBJC_WORKAROUND
44 # if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
45 # pragma GCC visibility pop
46 # endif // !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
48 #elif defined(__GNUC__)
52 # if defined(__MINGW32__) || defined(__CYGWIN__)
56 # if defined(__OBJC__)
57 # if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1)
58 # if defined(BOOST_ASIO_OBJC_WORKAROUND)
61 # undef BOOST_ASIO_OBJC_WORKAROUND
66 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
67 # pragma GCC visibility pop
68 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
71 # pragma GCC diagnostic pop
72 # endif // (__GNUC__ >= 7)
82 #elif defined(__DECCXX)
84 // Compaq Tru64 Unix cxx
90 #elif defined(__BORLANDC__)
95 # pragma nopushoptwarn
96 # pragma nopackwarning
98 #elif defined(__MWERKS__)
100 // Metrowerks CodeWarrior
102 #elif defined(__SUNPRO_CC)
104 // Sun Workshop Compiler C++
106 #elif defined(__HP_aCC)
110 #elif defined(__MRC__) || defined(__SC__)
114 #elif defined(__IBMCPP__)
118 #elif defined(_MSC_VER)
120 // Microsoft Visual C++
122 // Must remain the last #elif since some other vendors (Metrowerks, for example)
123 // also #define _MSC_VER
125 # pragma warning (pop)
128 # if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
129 # if defined(BOOST_ASIO_CLR_WORKAROUND)
131 # undef BOOST_ASIO_CLR_WORKAROUND