Blender V4.3
blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > Class Template Reference

#include <BLI_set.hh>

Classes

class  Iterator
 

Public Types

using value_type = Key
 
using pointer = Key *
 
using const_pointer = const Key *
 
using reference = Key &
 
using const_reference = const Key &
 
using iterator = Iterator
 
using size_type = int64_t
 

Public Member Functions

 Set (Allocator allocator={}) noexcept
 
 Set (NoExceptConstructor, Allocator allocator={}) noexcept
 
 Set (Span< Key > values, Allocator allocator={})
 
 Set (const std::initializer_list< Key > &values)
 
 ~Set ()=default
 
 Set (const Set &other)=default
 
 Set (Set &&other) noexcept(std::is_nothrow_move_constructible_v< SlotArray >)
 
Setoperator= (const Set &other)
 
Setoperator= (Set &&other)
 
void add_new (const Key &key)
 
void add_new (Key &&key)
 
bool add (const Key &key)
 
bool add (Key &&key)
 
template<typename ForwardKey >
bool add_as (ForwardKey &&key)
 
void add_multiple (Span< Key > keys)
 
void add_multiple_new (Span< Key > keys)
 
bool contains (const Key &key) const
 
template<typename ForwardKey >
bool contains_as (const ForwardKey &key) const
 
const Keylookup_key (const Key &key) const
 
template<typename ForwardKey >
const Keylookup_key_as (const ForwardKey &key) const
 
const Keylookup_key_default (const Key &key, const Key &default_value) const
 
template<typename ForwardKey >
const Keylookup_key_default_as (const ForwardKey &key, const Key &default_key) const
 
const Keylookup_key_ptr (const Key &key) const
 
template<typename ForwardKey >
const Keylookup_key_ptr_as (const ForwardKey &key) const
 
const Keylookup_key_or_add (const Key &key)
 
const Keylookup_key_or_add (Key &&key)
 
template<typename ForwardKey >
const Keylookup_key_or_add_as (ForwardKey &&key)
 
bool remove (const Key &key)
 
template<typename ForwardKey >
bool remove_as (const ForwardKey &key)
 
void remove_contained (const Key &key)
 
template<typename ForwardKey >
void remove_contained_as (const ForwardKey &key)
 
Iterator begin () const
 
Iterator end () const
 
void remove (const Iterator &it)
 
template<typename Predicate >
int64_t remove_if (Predicate &&predicate)
 
void print_stats (const char *name) const
 
int64_t count_collisions (const Key &key) const
 
void clear ()
 
void clear_and_shrink ()
 
void rehash ()
 
int64_t size () const
 
bool is_empty () const
 
int64_t capacity () const
 
int64_t removed_amount () const
 
int64_t size_per_element () const
 
int64_t size_in_bytes () const
 
void reserve (const int64_t n)
 

Static Public Member Functions

static bool Intersects (const Set &a, const Set &b)
 
static bool Disjoint (const Set &a, const Set &b)
 

Friends

bool operator== (const Set &a, const Set &b)
 
bool operator!= (const Set &a, const Set &b)
 

Detailed Description

template<typename Key, int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
class blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >

Definition at line 106 of file BLI_set.hh.

Member Typedef Documentation

◆ const_pointer

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
using blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::const_pointer = const Key *

Definition at line 111 of file BLI_set.hh.

◆ const_reference

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
using blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::const_reference = const Key &

Definition at line 113 of file BLI_set.hh.

◆ iterator

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
using blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::iterator = Iterator

Definition at line 114 of file BLI_set.hh.

◆ pointer

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
using blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::pointer = Key *

Definition at line 110 of file BLI_set.hh.

◆ reference

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
using blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reference = Key &

Definition at line 112 of file BLI_set.hh.

◆ size_type

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
using blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size_type = int64_t

Definition at line 115 of file BLI_set.hh.

◆ value_type

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
using blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::value_type = Key

Definition at line 109 of file BLI_set.hh.

Constructor & Destructor Documentation

◆ Set() [1/6]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Set ( Allocator allocator = {})
inlinenoexcept

Initialize an empty set. This is a cheap operation no matter how large the inline buffer is. This is necessary to avoid a high cost when no elements are added at all. An optimized grow operation is performed on the first insertion.

Definition at line 168 of file BLI_set.hh.

Referenced by blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::clear_and_shrink().

◆ Set() [2/6]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Set ( NoExceptConstructor ,
Allocator allocator = {} )
inlinenoexcept

Definition at line 177 of file BLI_set.hh.

◆ Set() [3/6]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Set ( Span< Key > values,
Allocator allocator = {} )
inline

Definition at line 179 of file BLI_set.hh.

◆ Set() [4/6]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Set ( const std::initializer_list< Key > & values)
inline

Construct a set that contains the given keys. Duplicates will be removed automatically.

Definition at line 187 of file BLI_set.hh.

◆ ~Set()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::~Set ( )
default

◆ Set() [5/6]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Set ( const Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > & other)
default

◆ Set() [6/6]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Set ( Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > && other)
inlinenoexcept

Definition at line 193 of file BLI_set.hh.

Member Function Documentation

◆ add() [1/2]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
bool blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add ( const Key & key)
inline

Add a key to the set. If the key exists in the set already, nothing is done. The return value is true if the key was newly added to the set.

This is similar to std::unordered_set::insert.

Definition at line 248 of file BLI_set.hh.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_as().

Referenced by blender::ed::sculpt_paint::cloth::add_constraints_for_verts(), blender::ed::sculpt_paint::boundary::add_index(), add_list_to_input_ids(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_multiple(), blender::bke::compositor::add_passes_used_by_cryptomatte_node(), blender::bke::compositor::add_passes_used_by_render_layer_node(), blender::add_this_collection(), add_to_input_ids(), blender::nodes::add_used_ids_from_sockets(), blender::bke::compositor::add_used_passes_recursive(), blender::bke::AttributeAccessor::all_ids(), blender::ed::object::apply_eval_grease_pencil_data(), blender::attribute_search_update_fn(), blender::bke::BKE_armature_find_selected_bone_names(), BKE_id_multi_tagged_delete(), BKE_lib_override_library_main_hierarchy_root_ensure(), BKE_library_main_rebuild_hierarchy(), BKE_main_namemap_get_name(), BKE_modifiers_persistent_uids_are_valid(), blendfile_append_define_actions(), BLO_write_shared(), BM_mesh_validate(), blender::ed::greasepencil::boundary_to_curves(), blender::ed::asset::build_filtered_catalog_tree(), blender::fn::build_multi_function_procedure_for_fields(), blender::nodes::gizmos::build_tree_gizmo_propagation(), buttons_texture_modifier_geonodes_users_add(), blender::check_tree_for_time_node(), blender::asset_system::AssetCatalogService::create_catalog_filter(), blender::geometry::create_curve_from_vert_indices(), createTransGraphEditData(), blender::ed::space_node::cut_links_exec(), blender::animrig::deselect_keys_actions(), blender::bke::discover_tree_zones(), ED_undo_editmode_bases_from_view_layer(), ED_undo_editmode_objects_from_view_layer(), blender::draw::overlay::MeshUVs::edit_object_sync(), blender::nodes::geo_eval_log::GeoTreeLog::ensure_evaluated_gizmo_nodes(), blender::nodes::partial_eval::eval_downstream(), blender::nodes::partial_eval::eval_upstream(), blender::ed::asset::external_file_check_callback(), fcurve_path_rename(), blender::gpu::shader::ShaderCreateInfo::finalize(), blender::compositor::find_constant_foldable_operations(), blender::bke::node_field_inferencing::find_group_output_dependencies(), blender::find_side_effect_nodes_for_active_gizmos(), blender::ed::geometry::find_socket_log_contexts(), blender::find_socket_log_contexts(), blender::nodes::geo_eval_log::GeoTreeLog::find_socket_value_log(), blender::fn::find_varying_fields(), blender::nodes::gizmos::foreach_active_gizmo_in_open_node_editor(), blender::bke::attribute_accessor_functions::foreach_attribute(), blender::nodes::inverse_eval::foreach_element_on_inverse_eval_path(), blender::index_mask::IndexMask::from_initializers(), blender::deg::FromCollectionBuilderPipeline::FromCollectionBuilderPipeline(), blender::ed::sculpt_paint::face_set::gather_hidden_face_sets(), blender::ed::geometry::gather_node_group_ids(), blender::ed::geometry::gather_supported_objects(), blender::geometry::gather_vert_attributes(), blender::nodes::node_geo_extrude_mesh_cc::gather_vert_attributes(), blender::nodes::node_geo_extrude_mesh_cc::gather_vert_attributes(), blender::bke::generate_unique_instance_ids(), blender::io::obj::geometry_to_blender_objects(), blender::nodes::geo_eval_log::GeometryInfoLog::GeometryInfoLog(), blender::ed::space_node::get_attribute_info_from_context(), blender::ed::greasepencil::get_bone_deformed_vertex_group_names(), blender::ed::greasepencil::get_editable_frames_for_layer(), blender::bke::get_known_node_types_set(), blender::ed::sculpt_paint::greasepencil::WeightPaintOperation::get_locked_and_bone_deformed_vertex_groups(), blender::ed::greasepencil::get_selected_object_keyframes(), blender::ed::greasepencil::grease_pencil_material_lock_unselected_exec(), blender::ed::greasepencil::grease_pencil_primitive_init_curves(), blender::ed::greasepencil::grease_pencil_primitive_update_curves(), id_delete(), LibOverrideGroupTagData::id_tag_set(), IDP_EnumItemsValidate(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_bmesh(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_fk_bmesh(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_fk_mesh(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_grids(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_mesh(), blender::io::usd::import_blendshapes(), insert_key(), blender::deg::is_reachable(), blender::bke::blendfile::PartialWriteContext::is_valid(), knife_find_line_hits(), blender::bke::greasepencil::convert::legacy_gpencil_sanitize_annotations(), main_namemap_populate(), main_namemap_validate_and_fix(), menu_items_from_ui_create(), menu_types_add_from_keymap_items(), blender::gpu::missing_capabilities_get(), blender::ed::space_node::mute_links_exec(), namemap_add_name(), blender::bke::id::IDRemapper::never_null_users_add(), blender::nodes::node_geo_attribute_capture_cc::node_geo_exec(), blender::nodes::node_geo_remove_attribute_cc::node_geo_exec(), blender::ed::space_node::node_group_make_insert_selected(), blender::ed::space_node::node_remove_existing_links_if_needed(), blender::bke::ntree_contains_tree_exec(), ntree_shader_copy_branch(), ntree_update_reroute_nodes(), blender::asset_system::AssetCatalogService::parse_catalog_file(), blender::bke::pbvh::pbvh_bmesh_collapse_edge(), blender::bke::pbvh::pbvh_bmesh_create_nodes_fast_recursive(), blender::bke::pbvh::pbvh_bmesh_node_finalize(), blender::bke::pbvh::pbvh_bmesh_node_split(), blender::bke::pbvh::pbvh_bmesh_vert_ownership_transfer(), pose_select_same_collection(), pose_select_same_color(), blender::fn::preprocess_field_tree(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_extension_sample(), blender::nodes::process_nodes_for_depsgraph(), blender::ed::sculpt_paint::greasepencil::PaintOperationExecutor::process_start_sample(), blender::asset_system::AssetCatalogService::prune_catalogs_by_path(), blender::asset_system::AssetCatalogService::purge_catalogs_not_listed(), rebuild_hierarchy_best_parent_find(), blender::animrig::internal::rebuild_slot_user_cache(), blender::asset_system::AssetCatalogService::reload_catalogs(), blender::asset_system::AssetLibrary::remap_ids_and_remove_invalid(), blender::ed::asset::index::AssetLibraryIndex::remove_broken_index_files(), blender::remove_outdated_bake_caches(), blender::ed::asset::index::AssetLibraryIndex::remove_unused_index_files(), blender::ed::geometry::run_node_group_exec(), blender::ed::space_node::search_link_ops_for_asset_metadata(), blender::nodes::search_link_ops_for_declarations(), select_similar_bone_collection(), blender::ed::greasepencil::select_similar_by_layer(), sequencer_retiming_box_select_exec(), blender::ed::object::shade_smooth_exec(), ss_sync_from_uv(), blender::deg::AnimatedPropertyStorage::tagPropertyAsAnimated(), blender::ed::space_node::target_for_reroute(), blender::asset_system::tests::TEST(), blender::index_mask::tests::TEST(), blender::index_mask::tests::TEST(), blender::linear_allocator::tests::TEST(), blender::linear_allocator::tests::TEST(), blender::linear_allocator::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), timeline_cache_draw_geometry_nodes(), blender::io::obj::Geometry::track_all_vertices(), blender::io::obj::Geometry::track_vertex_index(), blender::geometry::trim_curves(), blender::update_depsgraph(), blender::ed::space_node::update_nested_node_refs_after_moving_nodes_into_group(), blender::ed::spreadsheet::update_visible_columns(), blender::gpu::shader::ShaderCreateInfo::validate_merge(), blender::ed::greasepencil::vertex_group_normalize_all_exec(), and write_at_address_validate().

◆ add() [2/2]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
bool blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add ( Key && key)
inline

◆ add_as()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
template<typename ForwardKey >
bool blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_as ( ForwardKey && key)
inline

◆ add_multiple()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_multiple ( Span< Key > keys)
inline

◆ add_multiple_new()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_multiple_new ( Span< Key > keys)
inline

Convenience function to add many new keys to the set at once. The keys must not exist in the set before and there must not be duplicates in the array.

Definition at line 279 of file BLI_set.hh.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new().

Referenced by blender::tests::TEST().

◆ add_new() [1/2]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new ( const Key & key)
inline

◆ add_new() [2/2]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new ( Key && key)
inline

Definition at line 237 of file BLI_set.hh.

◆ begin()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
Iterator blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::begin ( ) const
inline

◆ capacity()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
int64_t blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::capacity ( ) const
inline

Returns the number of available slots. This is mostly for debugging purposes.

Definition at line 580 of file BLI_set.hh.

References blender::Array< T, InlineBufferCapacity, Allocator >::size().

◆ clear()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::clear ( )
inline

◆ clear_and_shrink()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::clear_and_shrink ( )
inline

Removes all keys from the set and frees any allocated memory.

Definition at line 546 of file BLI_set.hh.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Set().

Referenced by blender::bke::pbvh::pbvh_bmesh_node_split().

◆ contains()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
bool blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains ( const Key & key) const
inline

Returns true if the key is in the set.

This is similar to std::unordered_set::find() != std::unordered_set::end().

Definition at line 291 of file BLI_set.hh.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains_as().

Referenced by blender::ed::object::apply_eval_grease_pencil_data(), blender::nodes::node_geo_extrude_mesh_cc::attribute_ids_by_domain(), BKE_library_main_rebuild_hierarchy(), BKE_main_namemap_get_name(), blendfile_append_define_actions(), blender::ed::asset::build_filtered_catalog_tree(), blender::ed::sculpt_paint::auto_mask::calc_blurred_cavity_bmesh(), blender::ed::sculpt_paint::auto_mask::calc_blurred_cavity_grids(), blender::ed::sculpt_paint::auto_mask::calc_blurred_cavity_mesh(), blender::bke::can_read_node_type(), blender::nodes::node_geo_attribute_capture_cc::clean_unused_attributes(), blender::realtime_compositor::compute_number_of_needed_buffers(), blender::fn::multi_function::ProcedureDotExport::create_nodes(), curve_rename_fcurves(), CustomData_blend_write_prepare(), blender::ed::sculpt_paint::geodesic::distances_create(), do_render_compositor_scenes(), blender::draw::overlay::MeshUVs::edit_object_sync(), blender::fn::evaluate_fields(), fcurve_path_rename(), blender::find_side_effect_nodes_for_baking(), blender::nodes::node_geo_extrude_mesh_cc::gather_vert_attributes(), blender::nodes::node_geo_extrude_mesh_cc::gather_vert_attributes(), blender::ed::greasepencil::get_bone_deformed_vertex_group_names(), blender::modifier::greasepencil::get_drawing_infos_by_frame(), blender::modifier::greasepencil::get_drawing_infos_by_layer(), blender::ed::greasepencil::get_editable_frames_for_layer(), blender::eevee::get_viewport_compositor_enabled_passes(), blender::ed::greasepencil::grease_pencil_material_lock_unselected_exec(), id_delete(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_bmesh(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_fk_bmesh(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_fk_grids(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_fk_mesh(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_grids(), blender::ed::sculpt_paint::pose::ik_chain_init_face_sets_mesh(), blender::io::usd::import_blendshapes(), blender::NodesModifierSimulationParams::init_simulation_info(), blender::geometry::interpolate_attribute_to_poly_curve(), blender::nodes::node_geo_extrude_mesh_cc::is_empty_domain(), blender::bke::blendfile::PartialWriteContext::is_valid(), blender::deg::AnimatedPropertyStorage::isAnyPropertyAnimated(), blender::ed::greasepencil::keymap_grease_pencil_brush_stroke_poll(), knife_find_line_hits(), blender::bke::greasepencil::convert::legacy_gpencil_sanitize_annotations(), lib_override_root_hierarchy_set(), main_namemap_validate_and_fix(), blender::gpu::missing_capabilities_get(), ntree_shader_copy_branch(), blender::bke::pbvh::pbvh_bmesh_collapse_edge(), blender::bke::pbvh::pbvh_bmesh_create_nodes_fast_recursive(), blender::bke::pbvh::pbvh_bmesh_face_remove(), blender::bke::pbvh::pbvh_bmesh_node_finalize(), blender::bke::pbvh::pbvh_bmesh_vert_ownership_transfer(), blender::bke::pbvh::pbvh_bmesh_vert_remove(), blender::geometry::point_merge_by_distance(), pose_backup_create(), pose_select_same_collection(), pose_select_same_color(), blender::asset_system::AssetCatalogService::purge_catalogs_not_listed(), rebuild_hierarchy_best_parent_find(), blender::remove_outdated_bake_caches(), blender::ed::greasepencil::retrieve_editable_drawings_grouped_per_frame(), blender::ed::object::root_catalogs_draw(), blender::ed::sculpt_paint::geodesic::sculpt_geodesic_mesh_test_dist_add(), select_similar_bone_collection(), blender::ed::greasepencil::select_similar_by_layer(), blender::bke::tests::TEST(), blender::linear_allocator::tests::TEST(), blender::linear_allocator::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::bke::greasepencil::validate_drawing_vertex_groups(), and blender::ed::view3d::geometry_nodes_gizmos::WIDGETGROUP_geometry_nodes_refresh().

◆ contains_as()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
template<typename ForwardKey >
bool blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains_as ( const ForwardKey & key) const
inline

◆ count_collisions()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
int64_t blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::count_collisions ( const Key & key) const
inline

Get the number of collisions that the probing strategy has to go through to find the key or determine that it is not in the set.

Definition at line 524 of file BLI_set.hh.

◆ Disjoint()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
static bool blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Disjoint ( const Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > & a,
const Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > & b )
inlinestatic

Returns true if no key from a is also in b and vice versa.

Definition at line 642 of file BLI_set.hh.

References b, and blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Intersects().

◆ end()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
Iterator blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::end ( ) const
inline

◆ Intersects()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
static bool blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Intersects ( const Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > & a,
const Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > & b )
inlinestatic

◆ is_empty()

◆ lookup_key()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
const Key & blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key ( const Key & key) const
inline

Returns the key that is stored in the set that compares equal to the given key. This invokes undefined behavior when the key is not in the set.

Definition at line 304 of file BLI_set.hh.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_as().

Referenced by blender::tests::TEST(), and blender::tests::TEST().

◆ lookup_key_as()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
template<typename ForwardKey >
const Key & blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_as ( const ForwardKey & key) const
inline

◆ lookup_key_default()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
const Key & blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_default ( const Key & key,
const Key & default_value ) const
inline

Returns the key that is stored in the set that compares equal to the given key. If the key is not in the set, the given default value is returned instead.

Definition at line 317 of file BLI_set.hh.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_default_as().

◆ lookup_key_default_as()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
template<typename ForwardKey >
const Key & blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_default_as ( const ForwardKey & key,
const Key & default_key ) const
inline

◆ lookup_key_or_add() [1/2]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
const Key & blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_or_add ( const Key & key)
inline

Returns the key in the set that compares equal to the given key. If it does not exist, the key is newly added.

Definition at line 348 of file BLI_set.hh.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_or_add_as().

◆ lookup_key_or_add() [2/2]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
const Key & blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_or_add ( Key && key)
inline

◆ lookup_key_or_add_as()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
template<typename ForwardKey >
const Key & blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_or_add_as ( ForwardKey && key)
inline

◆ lookup_key_ptr()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
const Key * blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_ptr ( const Key & key) const
inline

Returns a pointer to the key that is stored in the set that compares equal to the given key. If the key is not in the set, nullptr is returned instead.

Definition at line 335 of file BLI_set.hh.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_ptr_as().

◆ lookup_key_ptr_as()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
template<typename ForwardKey >
const Key * blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_key_ptr_as ( const ForwardKey & key) const
inline

◆ operator=() [1/2]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
Set & blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::operator= ( const Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > & other)
inline

Definition at line 218 of file BLI_set.hh.

References blender::copy_assign_container().

◆ operator=() [2/2]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
Set & blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::operator= ( Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > && other)
inline

Definition at line 223 of file BLI_set.hh.

References blender::move_assign_container().

◆ print_stats()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::print_stats ( const char * name) const
inline

Print common statistics like size and collision count. This is useful for debugging purposes.

Definition at line 514 of file BLI_set.hh.

References blender::HashTableStats::print().

◆ rehash()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::rehash ( )
inline

Creates a new slot array and reinserts all keys inside of that. This method can be used to get rid of removed slots. Also this is useful for benchmarking the grow function.

Definition at line 556 of file BLI_set.hh.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size().

◆ remove() [1/2]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove ( const Iterator & it)
inline

Remove the key that the iterator is currently pointing at. It is valid to call this method while iterating over the set. However, after this method has been called, the removed element must not be accessed anymore.

Definition at line 481 of file BLI_set.hh.

References BLI_assert.

◆ remove() [2/2]

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
bool blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove ( const Key & key)
inline

◆ remove_as()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
template<typename ForwardKey >
bool blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_as ( const ForwardKey & key)
inline

◆ remove_contained()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_contained ( const Key & key)
inline

Deletes the key from the set. This invokes undefined behavior when the key is not in the map.

Definition at line 378 of file BLI_set.hh.

References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_contained_as().

Referenced by blender::geometry::point_merge_by_distance().

◆ remove_contained_as()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
template<typename ForwardKey >
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_contained_as ( const ForwardKey & key)
inline

◆ remove_if()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
template<typename Predicate >
int64_t blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::remove_if ( Predicate && predicate)
inline

◆ removed_amount()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
int64_t blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::removed_amount ( ) const
inline

Returns the amount of removed slots in the set. This is mostly for debugging purposes.

Definition at line 588 of file BLI_set.hh.

◆ reserve()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
void blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reserve ( const int64_t n)
inline

Potentially resize the set such that it can hold the specified number of keys without another grow operation.

Definition at line 614 of file BLI_set.hh.

Referenced by blender::bke::generate_unique_instance_ids(), IDP_EnumItemsValidate(), blender::bke::pbvh::pbvh_bmesh_create_nodes_fast_recursive(), blender::bke::pbvh::pbvh_bmesh_node_split(), ss_sync_from_uv(), and blender::io::obj::Geometry::track_all_vertices().

◆ size()

◆ size_in_bytes()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
int64_t blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size_in_bytes ( ) const
inline

Returns the approximate memory requirements of the set in bytes. This is more correct for larger sets.

Definition at line 605 of file BLI_set.hh.

References blender::Array< T, InlineBufferCapacity, Allocator >::size().

◆ size_per_element()

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
int64_t blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size_per_element ( ) const
inline

Returns the bytes required per element. This is mostly for debugging purposes.

Definition at line 596 of file BLI_set.hh.

Friends And Related Symbol Documentation

◆ operator!=

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
bool operator!= ( const Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > & a,
const Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > & b )
friend

Definition at line 660 of file BLI_set.hh.

◆ operator==

template<typename Key , int64_t InlineBufferCapacity = default_inline_buffer_capacity(sizeof(Key)), typename ProbingStrategy = DefaultProbingStrategy, typename Hash = DefaultHash<Key>, typename IsEqual = DefaultEquality<Key>, typename Slot = typename DefaultSetSlot<Key>::type, typename Allocator = GuardedAllocator>
bool operator== ( const Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > & a,
const Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator > & b )
friend

Definition at line 647 of file BLI_set.hh.


The documentation for this class was generated from the following file: