OpenVDB  3.2.0
Macros
Platform.h File Reference
#include "PlatformConfig.h"
#include <boost/cstdint.hpp>

Go to the source code of this file.

Macros

#define PRAGMA(x)   _Pragma(#x)
 
#define OPENVDB_DEPRECATED   __attribute__ ((deprecated))
 
#define OPENVDB_CHECK_GCC(MAJOR, MINOR)   0
 Macro for determining if GCC version is >= than X.Y. More...
 
#define OPENVDB_STATIC_SPECIALIZATION   static
 Macro for determining if there are sufficient C++0x/C++11 features. More...
 
#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
 
#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
 
#define _USE_MATH_DEFINES
 
#define OPENVDB_API   OPENVDB_IMPORT
 Helper macros for defining library symbol visibility. More...
 
#define OPENVDB_HOUDINI_API   OPENVDB_IMPORT
 

Macro Definition Documentation

#define _USE_MATH_DEFINES

Visual C++ does not have constants like M_PI unless this is defined.

Note
This is needed even though the core library is built with this but hcustom 12.1 doesn't define it. So this is needed for HDK operators.
#define OPENVDB_API   OPENVDB_IMPORT

Helper macros for defining library symbol visibility.

All classes and public free standing functions must be explicitly marked as <lib>_API to be exported. The <lib>_PRIVATE macros are defined when building that particular library.

#define OPENVDB_CHECK_GCC (   MAJOR,
  MINOR 
)    0

Macro for determining if GCC version is >= than X.Y.

#define OPENVDB_DEPRECATED   __attribute__ ((deprecated))

Use OPENVDB_DEPRECATED to mark functions as deprecated. It should be placed right before the signature of the function, e.g., "OPENVDB_DEPRECATED void functionName();".

#define OPENVDB_HOUDINI_API   OPENVDB_IMPORT
#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN

Bracket code with OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN/_END, as in the following example, to inhibit ICC remarks about unreachable code:

1 template<typename NodeType>
2 void processNode(NodeType& node)
3 {
4  OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
5  if (NodeType::LEVEL == 0) return; // ignore leaf nodes
6  int i = 0;
7  ...
8  OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
9 }

In the above, NodeType::LEVEL == 0 is a compile-time constant expression, so for some template instantiations, the line below it is unreachable.

#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
#define OPENVDB_STATIC_SPECIALIZATION   static

Macro for determining if there are sufficient C++0x/C++11 features.

For compilers that need templated function specializations to have storage qualifiers, we need to declare the specializations as static inline. Otherwise, we'll get linker errors about multiply defined symbols.

#define PRAGMA (   x)    _Pragma(#x)