[#BloombergLP-bslmf-IsBitwiseEqualityComparable-018]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::IsBitwiseEqualityComparable
:relfileprefix: ../../
:mrdocs:

This trait `struct` is a metafunction that determines whether the specified parameter `t&lowbar;TYPE` is bitwise EqualityComparable&period; If `IsBitwiseEqualityComparable&lt;t&lowbar;TYPE&gt;` is derived from `true&lowbar;type` then `t&lowbar;TYPE` is bitwise EqualityComparable&period; Otherwise, bitwise equality comparability cannot be inferred for `t&lowbar;TYPE`&period; This trait can be associated with a bitwise EqualityComparable user&hyphen;defined class by specializing this class or by using the `BSLMF&lowbar;NESTED&lowbar;TRAIT&lowbar;DECLARATION` macro&period;

== Synopsis

Declared in `&lt;bslmf&lowbar;isbitwiseequalitycomparable&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TYPE&gt;
struct IsBitwiseEqualityComparable
    : &sol;&ast; implementation-defined &ast;&sol;::type
----

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `&sol;&ast; implementation-defined &ast;&sol;::type`
| 
|===

== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-019.adoc[`IsBitwiseEqualityComparable&lt;double&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-0e3.adoc[`IsBitwiseEqualityComparable&lt;float&gt;`] 
| Revert of &lcub;DRQS 143286899&rcub;&period; Once clients are fixed, change to false&period; Explicit specialization to confirm that floating point types are not bitwise EqualityComparable, as they typically have specific problematic values&colon; NaNs do not compare equal with themselves, and there may be multiple representations for zero (with negative zero)&period;
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-0da.adoc[`IsBitwiseEqualityComparable&lt;long double&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-05.adoc[`IsBitwiseEqualityComparable&lt;void&gt;`] 
| Explicit specialization to confirm that `void` types are never bitwise EqualityComparable&period; Note that cv&hyphen;`void` types are covered by the partial specialization for any cv&hyphen;qualified type&period;
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-0fd.adoc[`IsBitwiseEqualityComparable&lt;bsl::polymorphic&lowbar;allocator&lt;TYPE&gt;&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-0e5.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE volatile&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-0a9.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE const&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-03.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE const volatile&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-0a2.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-0e7.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE volatile[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-0d6.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE const[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-08.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE const volatile[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-009.adoc[`IsBitwiseEqualityComparable&lt;bsl::pair&lt;T1, T2&gt;&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-0b.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-0f4.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE volatile[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-003.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE const[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseEqualityComparable-04.adoc[`IsBitwiseEqualityComparable&lt;t&lowbar;TYPE const volatile[]&gt;`] 
| 
|===



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