[#BloombergLP-bdld-operator_eq-06]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdld.adoc[bdld]::operator&equals;&equals;
:relfileprefix: ../../
:mrdocs:

Return whether `lhs` and `rhs` represent the same value&period;

== Synopsis

Declared in `&lt;bdld&lowbar;datum&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
bool
operator&equals;&equals;(
    xref:BloombergLP/bdld/Datum.adoc[Datum] const& lhs,
    xref:BloombergLP/bdld/Datum.adoc[Datum] const& rhs);
----

== Description

Return `true` if the specified `lhs` and `rhs` represent the same value, and `false` otherwise&period; Two datums (not holding strings and user&hyphen; defined objects) represent the same value if they have the same type of value stored inside them and invoking `&equals;&equals;` operator on the stored values returns `true`&period; Two datums holding strings are equal if the strings have the same length and and values at each respective character position are also same&period; Two datums holding user&hyphen;defined objects are equal if the user&hyphen;defined objects have the same pointer and type values&period; Two `nil` datums are always equal&period; Two `Datum` objects holding `NaN` values are never equal&period; Two datums that hold arrays of datums have the same value if the underlying arrays have the same length and invoking `&equals;&equals;` operator on each corresponding element returns `true`&period; Two datums that hold maps of datums have the same value if the underlying maps have the same size and each corresponding pair of elements in the maps have the same keys and invoking `&equals;&equals;` operator on the values returns `true`&period;

== Return Value

`true` if `lhs` and `rhs` have the same value, and `false` otherwise

== Parameters

[cols="1,4"]
|===
| Name| Description
| *lhs*
| left&hyphen;hand operand
| *rhs*
| right&hyphen;hand operand
|===


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