Blender V5.0
BLI_set_slots.hh File Reference
#include "BLI_hash_tables.hh"
#include "BLI_memory_utils.hh"
#include "BLI_string_ref.hh"

Go to the source code of this file.

Classes

class  blender::SimpleSetSlot< Key >
class  blender::HashedSetSlot< Key >
class  blender::IntrusiveSetSlot< Key, KeyInfo >
struct  blender::DefaultSetSlot< Key >
struct  blender::DefaultSetSlot< std::string >
struct  blender::DefaultSetSlot< StringRef >
struct  blender::DefaultSetSlot< StringRefNull >
struct  blender::DefaultSetSlot< Key * >

Namespaces

namespace  blender

Typedefs

template<typename Int, Int EmptyValue, Int RemovedValue>
using blender::IntegerSetSlot = IntrusiveSetSlot<Int, TemplatedKeyInfo<Int, EmptyValue, RemovedValue>>

Detailed Description

This file contains different slot types that are supposed to be used with blender::Set.

Every slot type has to be able to hold a value of the Key type and state information. A set slot has three possible states: empty, occupied and removed.

Only when a slot is occupied, it stores an instance of type Key.

A set slot type has to implement a couple of methods that are explained in SimpleSetSlot. A slot type is assumed to be trivially destructible, when it is not in occupied state. So the destructor might not be called in that case.

Definition in file BLI_set_slots.hh.