Realistic 3D camera system
3D camera system components
push_options.hpp
Go to the documentation of this file.
1 //
2 // detail/push_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 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(ASIO_DISABLE_OBJC_WORKAROUND)
37 # if !defined(Protocol) && !defined(id)
38 # define Protocol cpp_Protocol
39 # define id cpp_id
40 # define 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(ASIO_DISABLE_OBJC_WORKAROUND)
61 # if !defined(Protocol) && !defined(id)
62 # define Protocol cpp_Protocol
63 # define id cpp_id
64 # define 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 #elif defined(__KCC)
75 
76 // Kai C++
77 
78 #elif defined(__sgi)
79 
80 // SGI MIPSpro C++
81 
82 #elif defined(__DECCXX)
83 
84 // Compaq Tru64 Unix cxx
85 
86 #elif defined(__ghs)
87 
88 // Greenhills C++
89 
90 #elif defined(__BORLANDC__)
91 
92 // Borland C++
93 
94 # pragma option push -a8 -b -Ve- -Vx- -w-inl -vi-
95 # pragma nopushoptwarn
96 # pragma nopackwarning
97 # if !defined(__MT__)
98 # error Multithreaded RTL must be selected.
99 # endif // !defined(__MT__)
100 
101 #elif defined(__MWERKS__)
102 
103 // Metrowerks CodeWarrior
104 
105 #elif defined(__SUNPRO_CC)
106 
107 // Sun Workshop Compiler C++
108 
109 #elif defined(__HP_aCC)
110 
111 // HP aCC
112 
113 #elif defined(__MRC__) || defined(__SC__)
114 
115 // MPW MrCpp or SCpp
116 
117 #elif defined(__IBMCPP__)
118 
119 // IBM Visual Age
120 
121 #elif defined(_MSC_VER)
122 
123 // Microsoft Visual C++
124 //
125 // Must remain the last #elif since some other vendors (Metrowerks, for example)
126 // also #define _MSC_VER
127 
128 # pragma warning (disable:4103)
129 # pragma warning (push)
130 # pragma warning (disable:4127)
131 # pragma warning (disable:4180)
132 # pragma warning (disable:4244)
133 # pragma warning (disable:4355)
134 # pragma warning (disable:4510)
135 # pragma warning (disable:4512)
136 # pragma warning (disable:4610)
137 # pragma warning (disable:4675)
138 # if defined(_M_IX86) && defined(_Wp64)
139 // The /Wp64 option is broken. If you want to check 64 bit portability, use a
140 // 64 bit compiler!
141 # pragma warning (disable:4311)
142 # pragma warning (disable:4312)
143 # endif // defined(_M_IX86) && defined(_Wp64)
144 # pragma pack (push, 8)
145 // Note that if the /Og optimisation flag is enabled with MSVC6, the compiler
146 // has a tendency to incorrectly optimise away some calls to member template
147 // functions, even though those functions contain code that should not be
148 // optimised away! Therefore we will always disable this optimisation option
149 // for the MSVC6 compiler.
150 # if (_MSC_VER < 1300)
151 # pragma optimize ("g", off)
152 # endif
153 # if !defined(_MT)
154 # error Multithreaded RTL must be selected.
155 # endif // !defined(_MT)
156 
157 # if defined(__cplusplus_cli) || defined(__cplusplus_winrt)
158 # if !defined(ASIO_DISABLE_CLR_WORKAROUND)
159 # if !defined(generic)
160 # define generic cpp_generic
161 # define ASIO_CLR_WORKAROUND
162 # endif
163 # endif
164 # endif
165 
166 #endif