OpenVDB  12.0.0
Public Member Functions | List of all members
ValueAccessorLock< MutexT > Struct Template Reference

A small class that contains a Mutex which is derived from by the internal Value Accessor Implementation. This allows for the empty base class optimization to be performed in the case where a Mutex/Lock is not in use. From C++20 we can instead switch to [[no_unique_address]]. More...

#include <openvdb/tree/ValueAccessor.h>

Inherited by ValueAccessorImpl< _TreeType, IsSafe, MutexT, IntegerSequence >, ValueAccessorImpl< const TreeT >, ValueAccessorImpl< const TreeT, false >, ValueAccessorImpl< const TreeType >, ValueAccessorImpl< const TreeType, IsSafe >, ValueAccessorImpl< IntTreeT >, ValueAccessorImpl< TreeT >, and ValueAccessorImpl< TreeType >.

Public Member Functions

auto lock () const
 

Detailed Description

template<typename MutexT>
struct openvdb::v12_0::tree::ValueAccessorLock< MutexT >

A small class that contains a Mutex which is derived from by the internal Value Accessor Implementation. This allows for the empty base class optimization to be performed in the case where a Mutex/Lock is not in use. From C++20 we can instead switch to [[no_unique_address]].

The following classes exist to perform empty base class optimizations with the final ValueAccessor implementation. Depending on the template types provided to the derived implementation, some member variables may not be necessary (mutex, leaf buffer cache, etc). These classes allow for these variables to be compiled out. Note that from C++20 we can switch to [[no_unique_address]] member annotations instead.

Member Function Documentation

auto lock ( ) const
inline