OpenVDB  6.1.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 OPENVDB_NO_DEPRECATION_WARNING_BEGIN
 Bracket code with OPENVDB_NO_DEPRECATION_WARNING_BEGIN/_END, to inhibit warnings about deprecated code. More...
 
#define OPENVDB_NO_DEPRECATION_WARNING_END
 
#define OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN
 Bracket code with OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN/_END, to inhibit warnings about type conversion. More...
 
#define OPENVDB_NO_TYPE_CONVERSION_WARNING_END
 
#define OPENVDB_API   OPENVDB_IMPORT
 Helper macros for defining library symbol visibility. More...
 
#define OPENVDB_HOUDINI_API   OPENVDB_IMPORT
 
Utilities
#define OPENVDB_PREPROC_STRINGIFY(x)
 Return x as a string literal. If x is a macro, return its value as a string literal. More...
 
#define OPENVDB_PREPROC_CONCAT(x, y)
 Form a new token by concatenating two existing tokens. If either token is a macro, concatenate its value. More...
 

Macro Definition Documentation

◆ OPENVDB_API

#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.

◆ OPENVDB_CHECK_GCC

#define OPENVDB_CHECK_GCC (   MAJOR,
  MINOR 
)    0

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

◆ OPENVDB_DEPRECATED

#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();".

◆ OPENVDB_HOUDINI_API

#define OPENVDB_HOUDINI_API   OPENVDB_IMPORT

◆ OPENVDB_NO_DEPRECATION_WARNING_BEGIN

#define OPENVDB_NO_DEPRECATION_WARNING_BEGIN

Bracket code with OPENVDB_NO_DEPRECATION_WARNING_BEGIN/_END, to inhibit warnings about deprecated code.

Note
Use this sparingly. Remove references to deprecated code if at all possible.

Example:

OPENVDB_DEPRECATED void myDeprecatedFunction() {}
{
myDeprecatedFunction();
}

◆ OPENVDB_NO_DEPRECATION_WARNING_END

#define OPENVDB_NO_DEPRECATION_WARNING_END

◆ OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN

#define OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN

Bracket code with OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN/_END, to inhibit warnings about type conversion.

Note
Use this sparingly. Use static casts and explicit type conversion if at all possible.

Example:

◆ OPENVDB_NO_TYPE_CONVERSION_WARNING_END

#define OPENVDB_NO_TYPE_CONVERSION_WARNING_END

◆ OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN

#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:

template<typename NodeType>
void processNode(NodeType& node)
{
if (NodeType::LEVEL == 0) return; // ignore leaf nodes
int i = 0;
...
}

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

◆ OPENVDB_NO_UNREACHABLE_CODE_WARNING_END

#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END

◆ OPENVDB_PREPROC_CONCAT

#define OPENVDB_PREPROC_CONCAT (   x,
 
)

Form a new token by concatenating two existing tokens. If either token is a macro, concatenate its value.

◆ OPENVDB_PREPROC_STRINGIFY

#define OPENVDB_PREPROC_STRINGIFY (   x)

Return x as a string literal. If x is a macro, return its value as a string literal.

◆ OPENVDB_STATIC_SPECIALIZATION

#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.

◆ PRAGMA

#define PRAGMA (   x)    _Pragma(#x)
OPENVDB_NO_TYPE_CONVERSION_WARNING_END
#define OPENVDB_NO_TYPE_CONVERSION_WARNING_END
Definition: Platform.h:224
OPENVDB_DEPRECATED
#define OPENVDB_DEPRECATED
Definition: Platform.h:69
OPENVDB_NO_DEPRECATION_WARNING_BEGIN
#define OPENVDB_NO_DEPRECATION_WARNING_BEGIN
Bracket code with OPENVDB_NO_DEPRECATION_WARNING_BEGIN/_END, to inhibit warnings about deprecated cod...
Definition: Platform.h:190
OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
Definition: Platform.h:149
OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN
#define OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN
Bracket code with OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN/_END, to inhibit warnings about type conve...
Definition: Platform.h:223
OPENVDB_NO_DEPRECATION_WARNING_END
#define OPENVDB_NO_DEPRECATION_WARNING_END
Definition: Platform.h:191
OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
Definition: Platform.h:150