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

source code of boost/libs/asio/include/boost/asio/detail/pop_options.hpp