Go to the documentation of this file. 33 #ifndef OPENVDB_PLATFORM_HAS_BEEN_INCLUDED 34 #define OPENVDB_PLATFORM_HAS_BEEN_INCLUDED 38 #define PRAGMA(x) _Pragma(#x) 43 #ifdef OPENVDB_DEPRECATED 44 #undef OPENVDB_DEPRECATED 47 #define OPENVDB_DEPRECATED __declspec(deprecated) 49 #define OPENVDB_DEPRECATED __attribute__ ((deprecated)) 54 #define OPENVDB_CHECK_GCC(MAJOR, MINOR) \ 55 (__GNUC__ > MAJOR || (__GNUC__ == MAJOR && __GNUC_MINOR__ >= MINOR)) 57 #define OPENVDB_CHECK_GCC(MAJOR, MINOR) 0 61 #ifdef __INTEL_COMPILER 62 #ifdef __INTEL_CXX11_MODE__ 63 #define OPENVDB_HAS_CXX11 1 65 #elif defined(__clang__) 66 #ifndef _LIBCPP_VERSION 69 #ifdef _LIBCPP_VERSION 70 #define OPENVDB_HAS_CXX11 1 72 #elif defined(__GXX_EXPERIMENTAL_CXX0X__) || (__cplusplus > 199711L) 73 #define OPENVDB_HAS_CXX11 1 74 #elif defined(_MSC_VER) 75 #if (_MSC_VER >= 1700) 76 #define OPENVDB_HAS_CXX11 1 79 #if defined(__GNUC__) && !OPENVDB_CHECK_GCC(4, 4) 82 #undef OPENVDB_HAS_CXX11 88 #if defined(__GNUC__) && OPENVDB_CHECK_GCC(4, 4) 89 #define OPENVDB_STATIC_SPECIALIZATION 91 #define OPENVDB_STATIC_SPECIALIZATION static 110 #if defined(__INTEL_COMPILER) 114 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN \ 115 _Pragma("warning (push)") \ 116 _Pragma("warning (disable:111)") \ 117 _Pragma("warning (disable:128)") \ 118 _Pragma("warning (disable:185)") \ 119 _Pragma("warning (disable:280)") 120 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END \ 121 _Pragma("warning (pop)") 122 #elif defined(__clang__) 123 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN \ 124 PRAGMA(clang diagnostic push) \ 125 PRAGMA(clang diagnostic ignored "-Wunreachable-code") 126 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END \ 127 PRAGMA(clang diagnostic pop) 129 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN 130 #define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END 135 #ifndef _USE_MATH_DEFINES 139 #define _USE_MATH_DEFINES 141 #include <boost/math/special_functions/round.hpp> 143 using boost::math::round;
149 static inline double copysign(
double x,
double y) {
return _copysign(x, y); }
154 #include <boost/cstdint.hpp> 156 using boost::int16_t;
157 using boost::int32_t;
158 using boost::int64_t;
159 using boost::uint8_t;
160 using boost::uint16_t;
161 using boost::uint32_t;
162 using boost::uint64_t;
165 #ifdef OPENVDB_EXPORT 166 #undef OPENVDB_EXPORT 168 #ifdef OPENVDB_IMPORT 169 #undef OPENVDB_IMPORT 172 #define OPENVDB_EXPORT __attribute__((visibility("default"))) 173 #define OPENVDB_IMPORT __attribute__((visibility("default"))) 177 #define OPENVDB_EXPORT __declspec(dllexport) 178 #define OPENVDB_IMPORT __declspec(dllimport) 180 #define OPENVDB_EXPORT 181 #define OPENVDB_IMPORT 191 #ifdef OPENVDB_PRIVATE 192 #define OPENVDB_API OPENVDB_EXPORT 194 #define OPENVDB_API OPENVDB_IMPORT 196 #ifdef OPENVDB_HOUDINI_API 197 #undef OPENVDB_HOUDINI_API 199 #ifdef OPENVDB_HOUDINI_PRIVATE 200 #define OPENVDB_HOUDINI_API OPENVDB_EXPORT 202 #define OPENVDB_HOUDINI_API OPENVDB_IMPORT 205 #endif // OPENVDB_PLATFORM_HAS_BEEN_INCLUDED