|
Blender V4.3
|
#include <BLI_set_slots.hh>
Public Member Functions | |
| IntrusiveSetSlot ()=default | |
| ~IntrusiveSetSlot ()=default | |
| IntrusiveSetSlot (const IntrusiveSetSlot &other)=default | |
| IntrusiveSetSlot (IntrusiveSetSlot &&other) noexcept(std::is_nothrow_move_constructible_v< Key >)=default | |
| Key * | key () |
| const Key * | key () const |
| bool | is_occupied () const |
| bool | is_empty () const |
| template<typename Hash > | |
| uint64_t | get_hash (const Hash &hash) const |
| template<typename ForwardKey , typename IsEqual > | |
| bool | contains (const ForwardKey &key, const IsEqual &is_equal, const uint64_t) const |
| template<typename ForwardKey > | |
| void | occupy (ForwardKey &&key, const uint64_t) |
| void | remove () |
An IntrusiveSetSlot 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 273 of file BLI_set_slots.hh.
|
default |
|
default |
|
default |
|
defaultnoexcept |
|
inline |
Definition at line 311 of file BLI_set_slots.hh.
References BLI_assert, and blender::IntrusiveSetSlot< Key, KeyInfo >::key().
|
inline |
Definition at line 304 of file BLI_set_slots.hh.
References BLI_assert, hash, and blender::IntrusiveSetSlot< Key, KeyInfo >::is_occupied().
|
inline |
Definition at line 299 of file BLI_set_slots.hh.
|
inline |
Definition at line 294 of file BLI_set_slots.hh.
Referenced by blender::IntrusiveSetSlot< Key, KeyInfo >::get_hash(), blender::IntrusiveSetSlot< Key, KeyInfo >::occupy(), and blender::IntrusiveSetSlot< Key, KeyInfo >::remove().
|
inline |
Definition at line 284 of file BLI_set_slots.hh.
Referenced by blender::IntrusiveSetSlot< Key, KeyInfo >::contains(), and blender::IntrusiveSetSlot< Key, KeyInfo >::occupy().
|
inline |
Definition at line 289 of file BLI_set_slots.hh.
|
inline |
Definition at line 317 of file BLI_set_slots.hh.
References BLI_assert, blender::IntrusiveSetSlot< Key, KeyInfo >::is_occupied(), and blender::IntrusiveSetSlot< Key, KeyInfo >::key().
|
inline |
Definition at line 324 of file BLI_set_slots.hh.
References BLI_assert, and blender::IntrusiveSetSlot< Key, KeyInfo >::is_occupied().