OpenVDB: Platform.h File Reference

OpenVDB 7.0.0

Macros
Platform.h File Reference
`#include "PlatformConfig.h"`

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_HAS_CXX11 1
| OpenVDB now requires C++11. More...
#define | OPENVDB_STATIC_SPECIALIZATION static
#define | OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
| SIMD Intrinsic Headers. More...
#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_HAS_CXX11

#define OPENVDB_HAS_CXX11 1

OpenVDB now requires C++11.

## ◆ 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() {}
{
OPENVDB_NO_DEPRECATION_WARNING_BEGIN
myDeprecatedFunction();
OPENVDB_NO_DEPRECATION_WARNING_END
}

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

float value = 0.1f;
OPENVDB_NO_TYPE_CONVERSION_WARNING_BEGIN
int valueAsInt = value;
OPENVDB_NO_TYPE_CONVERSION_WARNING_END

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

SIMD Intrinsic Headers.

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)
{
OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
if (NodeType::LEVEL == 0) return; // ignore leaf nodes
int i = 0;
...
OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
}

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,
|  |  | y
| ) |  |

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

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:197
OPENVDB_DEPRECATED
#define OPENVDB_DEPRECATED
Definition: Platform.h:42
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:163
OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
SIMD Intrinsic Headers.
Definition: Platform.h:114
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:196
OPENVDB_NO_DEPRECATION_WARNING_END
#define OPENVDB_NO_DEPRECATION_WARNING_END
Definition: Platform.h:164
OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
Definition: Platform.h:115