]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/boost/asio/detail/push_options.hpp
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / boost / boost / asio / detail / push_options.hpp
1 //
2 // detail/push_options.hpp
3 // ~~~~~~~~~~~~~~~~~~~~~~~
4 //
5 // Copyright (c) 2003-2018 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 push (default)
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_DISABLE_OBJC_WORKAROUND)
37 # if !defined(Protocol) && !defined(id)
38 # define Protocol cpp_Protocol
39 # define id cpp_id
40 # define BOOST_ASIO_OBJC_WORKAROUND
41 # endif
42 # endif
43 # endif
44 # endif
45
46 # if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
47 # pragma GCC visibility push (default)
48 # endif // !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
49
50 #elif defined(__GNUC__)
51
52 // GNU C++
53
54 # if defined(__MINGW32__) || defined(__CYGWIN__)
55 # pragma pack (push, 8)
56 # endif
57
58 # if defined(__OBJC__)
59 # if !defined(__APPLE_CC__) || (__APPLE_CC__ <= 1)
60 # if !defined(BOOST_ASIO_DISABLE_OBJC_WORKAROUND)
61 # if !defined(Protocol) && !defined(id)
62 # define Protocol cpp_Protocol
63 # define id cpp_id
64 # define BOOST_ASIO_OBJC_WORKAROUND
65 # endif
66 # endif
67 # endif
68 # endif
69
70 # if (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
71 # pragma GCC visibility push (default)
72 # endif // (__GNUC__ == 4 && __GNUC_MINOR__ >= 1) || (__GNUC__ > 4)
73
74 # if (__GNUC__ >= 7)
75 # pragma GCC diagnostic push
76 # pragma GCC diagnostic ignored "-Wimplicit-fallthrough"
77 # endif // (__GNUC__ >= 7)
78
79 #elif defined(__KCC)
80
81 // Kai C++
82
83 #elif defined(__sgi)
84
85 // SGI MIPSpro C++
86
87 #elif defined(__DECCXX)
88
89 // Compaq Tru64 Unix cxx
90
91 #elif defined(__ghs)
92
93 // Greenhills C++
94
95 #elif defined(__BORLANDC__)
96
97 // Borland C++
98
99 # pragma option push -a8 -b -Ve- -Vx- -w-inl -vi-
100 # pragma nopushoptwarn
101 # pragma nopackwarning
102 # if !defined(__MT__)
103 # error Multithreaded RTL must be selected.
104 # endif // !defined(__MT__)
105
106 #elif defined(__MWERKS__)
107
108 // Metrowerks CodeWarrior
109
110 #elif defined(__SUNPRO_CC)
111
112 // Sun Workshop Compiler C++
113
114 #elif defined(__HP_aCC)
115
116 // HP aCC
117
118 #elif defined(__MRC__) || defined(__SC__)
119
120 // MPW MrCpp or SCpp
121
122 #elif defined(__IBMCPP__)
123
124 // IBM Visual Age
125
126 #elif defined(_MSC_VER)
127
128 // Microsoft Visual C++
129 //
130 // Must remain the last #elif since some other vendors (Metrowerks, for example)
131 // also #define _MSC_VER
132
133 # pragma warning (disable:4103)
134 # pragma warning (push)
135 # pragma warning (disable:4127)
136 # pragma warning (disable:4180)
137 # pragma warning (disable:4244)
138 # pragma warning (disable:4355)
139 # pragma warning (disable:4510)
140 # pragma warning (disable:4512)
141 # pragma warning (disable:4610)
142 # pragma warning (disable:4675)
143 # if (_MSC_VER < 1600)
144 // Visual Studio 2008 generates spurious warnings about unused parameters.
145 # pragma warning (disable:4100)
146 # endif // (_MSC_VER < 1600)
147 # if defined(_M_IX86) && defined(_Wp64)
148 // The /Wp64 option is broken. If you want to check 64 bit portability, use a
149 // 64 bit compiler!
150 # pragma warning (disable:4311)
151 # pragma warning (disable:4312)
152 # endif // defined(_M_IX86) && defined(_Wp64)
153 # pragma pack (push, 8)
154 // Note that if the /Og optimisation flag is enabled with MSVC6, the compiler
155 // has a tendency to incorrectly optimise away some calls to member template
156 // functions, even though those functions contain code that should not be
157 // optimised away! Therefore we will always disable this optimisation option
158 // for the MSVC6 compiler.
159 # if (_MSC_VER < 1300)
160 # pragma optimize ("g", off)
161 # endif
162 # if !defined(_MT)
163 # error Multithreaded RTL must be selected.
164 # endif // !defined(_MT)
165
166 # if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
167 # if !defined(BOOST_ASIO_DISABLE_CLR_WORKAROUND)
168 # if !defined(generic)
169 # define generic cpp_generic
170 # define BOOST_ASIO_CLR_WORKAROUND
171 # endif
172 # endif
173 # endif
174
175 #endif