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