[#BloombergLP-bslalg-HashTableAnchor]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslalg.adoc[bslalg]::HashTableAnchor
:relfileprefix: ../../
:mrdocs:

This complex constrained _in_&hyphen;_core_ (value&hyphen;semantic) attribute class characterizes the key data elements of a hash table&period; See the  section information on the class attributes&period; Note that the class invariant is the identically the complex constraint of this component&period;

== Synopsis

Declared in `&lt;bslalg&lowbar;hashtableanchor&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class HashTableAnchor;
----

== Description

This class&colon; &ast; supports a complete set of _value&hyphen;semantic_ operations

* except for `bdex` serialization and default construction &ast; is *in&hyphen;core* &ast; is *exception&hyphen;neutral* (agnostic) &ast; is *alias&hyphen;safe* &ast; is `const` *thread&hyphen;safe* For terminology see `bsldoc&lowbar;glossary`&period;

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslalg/HashTableAnchor/2constructor.adoc[`HashTableAnchor`]         [.small]#[constructor]#
| Create a `bslalg&colon;&colon;HashTableAnchor` object having the specified `bucketArrayAddress`, `bucketArraySize`, and `listRootAddress` attributes&period; The behavior is undefined unless `bucketArrayAddress` refers to a contiguous sequence of valid `bslalg&colon;&colon;HashTableBucket` objects of at least `bucketArraySize` or unless both `bucketArrayAddress` and `bucketArraySize` are 0&period;
| xref:BloombergLP/bslalg/HashTableAnchor/bucketArrayAddress.adoc[`bucketArrayAddress`] 
| Return the value of the `bucketArrayAddress` attribute of this object&period;
| xref:BloombergLP/bslalg/HashTableAnchor/bucketArraySize.adoc[`bucketArraySize`] 
| Return the value of the `bucketArraySize` attribute of this object&period;
| xref:BloombergLP/bslalg/HashTableAnchor/listRootAddress.adoc[`listRootAddress`] 
| Return the value `listRootAddress` attribute of this object&period;
| xref:BloombergLP/bslalg/HashTableAnchor/setBucketArrayAddressAndSize.adoc[`setBucketArrayAddressAndSize`] 
| Set the bucket array address and bucket array size attributes of this object to the specified `bucketArrayAddress` and `bucketArraySize` values&period; The behavior is undefined unless `bucketArrayAddress` refers to a contiguous sequence of valid `bslalg&colon;&colon;HashTableBucket` objects of at least `bucketArraySize`, or unless both `bucketArrayAddress` and `bucketArraySize` are 0&period;
| xref:BloombergLP/bslalg/HashTableAnchor/setListRootAddress.adoc[`setListRootAddress`] 
| Set the `listRootAddress` attribute of this object to the specified `value`&period;
| xref:BloombergLP/bslalg/HashTableAnchor/swap.adoc[`swap`] 
| Efficiently exchange the value of this object with the value of the specified `other` object&period; This method provides the no&hyphen;throw exception&hyphen;safety guarantee&period;
| xref:BloombergLP/bslalg/HashTableAnchor/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;HashTableAnchor, IsBitwiseCopyable&gt;`] 
| Declare `HashTableAnchor` as bitwise copyable&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslalg/operator_not_eq-07.adoc[`operator!&equals;`]
| Return `true` if the specified `lhs` and `rhs` objects do not have the same value, and `false` otherwise&period; Two `bslalg&colon;&colon;HashTableAnchor` objects do not have the same value if any of the corresponding values of their `bucketArrayAddress`, `bucketArraySize`, or `listRootAddress` attributes are not the same&period;
| xref:BloombergLP/bslalg/operator_eq-0e3.adoc[`operator&equals;&equals;`]
| Return `true` if the specified `lhs` and `rhs` objects have the same value, and `false` otherwise&period; Two `bslalg&colon;&colon;HashTableAnchor` objects have the same value if all of the corresponding values of their `bucketArrayAddress`, `bucketArraySize`, and `listRootAddress` attributes are the same&period;
| xref:BloombergLP/bslalg/swap.adoc[`swap`]
| Efficiently exchange the values of the specified `a` and `b` objects&period; This function provides the no&hyphen;throw exception&hyphen;safety guarantee&period; The behavior is undefined unless the two objects were created with the same allocator&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
