|
Blender V5.0
|
#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 274 of file BLI_set_slots.hh.
|
default |
|
default |
|
default |
|
defaultnoexcept |
|
inline |
Definition at line 312 of file BLI_set_slots.hh.
|
inline |
Definition at line 305 of file BLI_set_slots.hh.
|
inline |
Definition at line 300 of file BLI_set_slots.hh.
|
inline |
Definition at line 295 of file BLI_set_slots.hh.
Referenced by blender::IntrusiveSetSlot< Int, TemplatedKeyInfo< Int, EmptyValue, RemovedValue > >::get_hash(), blender::IntrusiveSetSlot< Int, TemplatedKeyInfo< Int, EmptyValue, RemovedValue > >::occupy(), and blender::IntrusiveSetSlot< Int, TemplatedKeyInfo< Int, EmptyValue, RemovedValue > >::remove().
|
inline |
Definition at line 285 of file BLI_set_slots.hh.
|
inline |
Definition at line 290 of file BLI_set_slots.hh.
|
inline |
Definition at line 318 of file BLI_set_slots.hh.
|
inline |
Definition at line 325 of file BLI_set_slots.hh.