Hashtable Properties
The implementations of unordered map/multimap and unordered set/multiset STL types use hash tables. These properties are common to all these types.
hashtable_head_addressing_callback
Names the procedure that defines an addressing expression to obtain the head element of the map. Depending on the implementation, this element may be the address of the bucket list or the beginning element of a forward list. The call structure for this callback is:
hashtable_head_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
hashtable_element_count_addressing_callback
Names the procedure that determines the total number of elements in a hashtable. The call structure for this callback is:
hashtable_element_count_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
This callback defines an addressing expression that specifies how to get to the member of the symbol that specifies the number of elements in the map.
hashtable_element_count_type_callback
Names the procedure that obtains the type id of the member that specifies the number of elements in the map. The call structure for this callback is:
hashtable_element_count_type_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
hashtable_element_addressing_callback
Names the procedure that defines an addressing expression that specifies how to access the next element. The call structure for this callback is:
hashtable_element_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
hashtable_begin_index_addressing_callback
Names the procedure that determines the index of the first used bucket in a hashtable. The call structure for this callback is:
hashtable_begin_index_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
This callback defines an addressing expression that specifies how to get to the member of the symbol that specifies the first used bucket in the hashtable. This allows a small optimization since the transformation can skip empty buckets at the start of the bucket table. If your data does not supply this value you can use {nop}.
hashtable_begin_index_type_callback
Names the procedure that determines the type of the value that contains the index of the first used bucket in a hashtable. The call structure for this callback is:
hashtable_begin_index_type_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
hashtable_bucket_count_addressing_callback
Names the procedure that determines the total number of buckets in a hash table. The call structure for this callback is:
hashtable_bucket_count_addressing_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
This callback defines an addressing expression that specifies how to get to the member of the symbol that specifies the number of buckets in a hashtable.
This property can be {nop} when the hash table elements can be found without scanning the bucket list, for example, when the elements are also stored in a forward list.
hashtable_bucket_count_type_callback
Names the procedure that obtains the type id of the member that specifies the number of buckets in a hash table. The call structure for this callback is:
hashtable_bucket_count_type_callback id
where id is the symbol ID of the symbol that was validated using the validate_callback procedure.
If you are not scanning the bucket list for the hashed values, this property is not required.