OpenVDB: Platform.h File Reference

OpenVDB 8.1.0

Macros
Platform.h File Reference

Go to the source code of this file.

## Macros
#define | PRAGMA(x) _Pragma(#x)
#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_NO_UNREACHABLE_CODE_WARNING_BEGIN
| SIMD Intrinsic Headers. More...
#define | OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
#define | OPENVDB_DEPRECATED [[deprecated]]
#define | OPENVDB_DEPRECATED_MESSAGE(msg) [[deprecated(msg)]]
#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
#define | OPENVDB_START_THREADSAFE_STATIC_REFERENCE
#define | OPENVDB_FINISH_THREADSAFE_STATIC_REFERENCE
#define | OPENVDB_START_THREADSAFE_STATIC_WRITE
#define | OPENVDB_FINISH_THREADSAFE_STATIC_WRITE
#define | OPENVDB_START_THREADSAFE_STATIC_ADDRESS
#define | OPENVDB_FINISH_THREADSAFE_STATIC_ADDRESS
#define | OPENVDB_START_NON_THREADSAFE_STATIC_REFERENCE
#define | OPENVDB_FINISH_NON_THREADSAFE_STATIC_REFERENCE
#define | OPENVDB_START_NON_THREADSAFE_STATIC_WRITE
#define | OPENVDB_FINISH_NON_THREADSAFE_STATIC_WRITE
#define | OPENVDB_START_NON_THREADSAFE_STATIC_ADDRESS
#define | OPENVDB_FINISH_NON_THREADSAFE_STATIC_ADDRESS
#define | OPENVDB_THREADSAFE_STATIC_REFERENCE(CODE) CODE
#define | OPENVDB_THREADSAFE_STATIC_WRITE(CODE) CODE
#define | OPENVDB_THREADSAFE_STATIC_ADDRESS(CODE) CODE
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 [[deprecated]]

Deprecation macros. Define OPENVDB_NO_DEPRECATION_WARNINGS to disable all deprecation warnings in OpenVDB.

## ◆ OPENVDB_DEPRECATED_MESSAGE

#define OPENVDB_DEPRECATED_MESSAGE | ( |  | msg | ) | [[deprecated(msg)]]

## ◆ OPENVDB_FINISH_NON_THREADSAFE_STATIC_ADDRESS

#define OPENVDB_FINISH_NON_THREADSAFE_STATIC_ADDRESS

## ◆ OPENVDB_FINISH_NON_THREADSAFE_STATIC_REFERENCE

#define OPENVDB_FINISH_NON_THREADSAFE_STATIC_REFERENCE

## ◆ OPENVDB_FINISH_NON_THREADSAFE_STATIC_WRITE

#define OPENVDB_FINISH_NON_THREADSAFE_STATIC_WRITE

## ◆ OPENVDB_FINISH_THREADSAFE_STATIC_ADDRESS

#define OPENVDB_FINISH_THREADSAFE_STATIC_ADDRESS

## ◆ OPENVDB_FINISH_THREADSAFE_STATIC_REFERENCE

#define OPENVDB_FINISH_THREADSAFE_STATIC_REFERENCE

## ◆ OPENVDB_FINISH_THREADSAFE_STATIC_WRITE

#define OPENVDB_FINISH_THREADSAFE_STATIC_WRITE

## ◆ 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
Definition: Platform.h:174
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:173
OPENVDB_DEPRECATED
#define OPENVDB_DEPRECATED
Definition: Platform.h:122

## ◆ 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_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:206
OPENVDB_NO_TYPE_CONVERSION_WARNING_END
#define OPENVDB_NO_TYPE_CONVERSION_WARNING_END
Definition: Platform.h:207

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

Windows defines 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
}
OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_END
Definition: Platform.h:116
OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
#define OPENVDB_NO_UNREACHABLE_CODE_WARNING_BEGIN
SIMD Intrinsic Headers.
Definition: Platform.h:115

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_START_NON_THREADSAFE_STATIC_ADDRESS

#define OPENVDB_START_NON_THREADSAFE_STATIC_ADDRESS

## ◆ OPENVDB_START_NON_THREADSAFE_STATIC_REFERENCE

#define OPENVDB_START_NON_THREADSAFE_STATIC_REFERENCE

## ◆ OPENVDB_START_NON_THREADSAFE_STATIC_WRITE

#define OPENVDB_START_NON_THREADSAFE_STATIC_WRITE

## ◆ OPENVDB_START_THREADSAFE_STATIC_ADDRESS

#define OPENVDB_START_THREADSAFE_STATIC_ADDRESS

## ◆ OPENVDB_START_THREADSAFE_STATIC_REFERENCE

#define OPENVDB_START_THREADSAFE_STATIC_REFERENCE

## ◆ OPENVDB_START_THREADSAFE_STATIC_WRITE

#define OPENVDB_START_THREADSAFE_STATIC_WRITE

## ◆ OPENVDB_THREADSAFE_STATIC_ADDRESS

#define OPENVDB_THREADSAFE_STATIC_ADDRESS | ( |  | CODE | ) | CODE

## ◆ OPENVDB_THREADSAFE_STATIC_REFERENCE

#define OPENVDB_THREADSAFE_STATIC_REFERENCE | ( |  | CODE | ) | CODE

## ◆ OPENVDB_THREADSAFE_STATIC_WRITE

#define OPENVDB_THREADSAFE_STATIC_WRITE | ( |  | CODE | ) | CODE

## ◆ PRAGMA

#define PRAGMA | ( |  | x | ) | _Pragma(#x)