Go to the documentation of this file.
33 #ifndef OPENVDB_PLATFORM_HAS_BEEN_INCLUDED
34 #define OPENVDB_PLATFORM_HAS_BEEN_INCLUDED
41 #ifdef OPENVDB_DEPRECATED
42 #undef OPENVDB_DEPRECATED
45 #define OPENVDB_DEPRECATED __declspec(deprecated)
47 #define OPENVDB_DEPRECATED __attribute__ ((deprecated))
52 #define OPENVDB_CHECK_GCC(MAJOR, MINOR) \
53 (__GNUC__ > MAJOR || (__GNUC__ == MAJOR && __GNUC_MINOR__ >= MINOR))
55 #define OPENVDB_CHECK_GCC(MAJOR, MINOR) 0
59 #ifdef __INTEL_COMPILER
60 #ifdef __INTEL_CXX11_MODE__
61 #define OPENVDB_HAS_CXX11 1
63 #elif defined(__clang__)
64 #ifndef _LIBCPP_VERSION
67 #ifdef _LIBCPP_VERSION
68 #define OPENVDB_HAS_CXX11 1
70 #elif defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus > 199711L)
71 #define OPENVDB_HAS_CXX11 1
72 #elif defined(_MSC_VER)
73 #if (_MSC_VER >= 1700)
74 #define OPENVDB_HAS_CXX11 1
77 #if defined(__GNUC__) && !OPENVDB_CHECK_GCC(4, 4)
80 #undef OPENVDB_HAS_CXX11
86 #if defined(__GNUC__) && OPENVDB_CHECK_GCC(4, 4)
87 #define OPENVDB_STATIC_SPECIALIZATION
89 #define OPENVDB_STATIC_SPECIALIZATION static
108 #if defined(__INTEL_COMPILER)
112 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN \
113 _Pragma("warning (push)") \
114 _Pragma("warning (disable:111)") \
115 _Pragma("warning (disable:128)") \
116 _Pragma("warning (disable:185)") \
117 _Pragma("warning (disable:280)")
118 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END \
119 _Pragma("warning (pop)")
121 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
122 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
129 #ifndef _USE_MATH_DEFINES
130 #define _USE_MATH_DEFINES
135 #include <boost/math/special_functions/round.hpp>
136 using boost::math::round;
142 static inline double copysign(
double x,
double y) {
return _copysign(x, y); }
147 #include <boost/cstdint.hpp>
149 using boost::int16_t;
150 using boost::int32_t;
151 using boost::int64_t;
152 using boost::uint8_t;
153 using boost::uint16_t;
154 using boost::uint32_t;
155 using boost::uint64_t;
158 #ifdef OPENVDB_EXPORT
159 #undef OPENVDB_EXPORT
161 #ifdef OPENVDB_IMPORT
162 #undef OPENVDB_IMPORT
165 #define OPENVDB_EXPORT __attribute__((visibility("default")))
166 #define OPENVDB_IMPORT __attribute__((visibility("default")))
170 #define OPENVDB_EXPORT __declspec(dllexport)
171 #define OPENVDB_IMPORT __declspec(dllimport)
173 #define OPENVDB_EXPORT
174 #define OPENVDB_IMPORT
184 #ifdef OPENVDB_PRIVATE
185 #define OPENVDB_API OPENVDB_EXPORT
187 #define OPENVDB_API OPENVDB_IMPORT
189 #ifdef OPENVDB_HOUDINI_API
190 #undef OPENVDB_HOUDINI_API
192 #ifdef OPENVDB_HOUDINI_PRIVATE
193 #define OPENVDB_HOUDINI_API OPENVDB_EXPORT
195 #define OPENVDB_HOUDINI_API OPENVDB_IMPORT
198 #endif // OPENVDB_PLATFORM_HAS_BEEN_INCLUDED