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 | |