|
Blender V5.0
|
#include <BLI_map_slots.hh>
Public Member Functions | |
| IntrusiveMapSlot ()=default | |
| ~IntrusiveMapSlot () | |
| IntrusiveMapSlot (const IntrusiveMapSlot &other) | |
| IntrusiveMapSlot (IntrusiveMapSlot &&other) noexcept | |
| Key * | key () |
| const Key * | key () const |
| Value * | value () |
| const Value * | value () const |
| bool | is_occupied () const |
| bool | is_empty () const |
| template<typename Hash> | |
| uint64_t | get_hash (const Hash &hash) |
| template<typename ForwardKey, typename IsEqual> | |
| bool | contains (const ForwardKey &key, const IsEqual &is_equal, uint64_t) const |
| template<typename ForwardKey, typename... ForwardValue> | |
| void | occupy (ForwardKey &&key, uint64_t hash, ForwardValue &&...value) |
| template<typename ForwardKey> | |
| void | occupy_no_value (ForwardKey &&key, uint64_t) |
| void | remove () |
An IntrusiveMapSlot uses two special values of the key to indicate whether the slot is empty or removed. This saves some memory in all cases and is more efficient in many cases. The KeyInfo type indicates which specific values are used. An example for a KeyInfo implementation is PointerKeyInfo.
The special key values are expected to be trivially destructible.
Definition at line 235 of file BLI_map_slots.hh.
|
default |
|
inline |
Definition at line 243 of file BLI_map_slots.hh.
|
inline |
Definition at line 250 of file BLI_map_slots.hh.
|
inlinenoexcept |
Definition at line 257 of file BLI_map_slots.hh.
|
inline |
Definition at line 301 of file BLI_map_slots.hh.
|
inline |
Definition at line 294 of file BLI_map_slots.hh.
|
inline |
Definition at line 289 of file BLI_map_slots.hh.
|
inline |
Definition at line 284 of file BLI_map_slots.hh.
Referenced by blender::IntrusiveMapSlot< Key *, Value, PointerKeyInfo< Key * > >::get_hash(), blender::IntrusiveMapSlot< Key *, Value, PointerKeyInfo< Key * > >::occupy(), blender::IntrusiveMapSlot< Key *, Value, PointerKeyInfo< Key * > >::occupy_no_value(), and blender::IntrusiveMapSlot< Key *, Value, PointerKeyInfo< Key * > >::remove().
|
inline |
Definition at line 264 of file BLI_map_slots.hh.
|
inline |
Definition at line 269 of file BLI_map_slots.hh.
|
inline |
Definition at line 308 of file BLI_map_slots.hh.
|
inline |
Definition at line 316 of file BLI_map_slots.hh.
Referenced by blender::IntrusiveMapSlot< Key *, Value, PointerKeyInfo< Key * > >::occupy().
|
inline |
Definition at line 329 of file BLI_map_slots.hh.
|
inline |
Definition at line 274 of file BLI_map_slots.hh.
|
inline |
Definition at line 279 of file BLI_map_slots.hh.