[#BloombergLP-bslmf-IsBitwiseCopyable-026]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::IsBitwiseCopyable
:relfileprefix: ../../
:mrdocs:

This `struct` template provides a meta&hyphen;function to determine whether the (template parameter) `t&lowbar;TYPE` is bitwise copyable&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
template&lt;class t&lowbar;TYPE&gt;
struct IsBitwiseCopyable
    : bsl::integral&lowbar;constant&lt;bool, DetectNestedTrait&lt;t&lowbar;TYPE, IsBitwiseCopyable&gt;&colon;&colon;value &verbar;&verbar; bsl&colon;&colon;is&lowbar;trivially&lowbar;copyable&lt;t&lowbar;TYPE&gt;&colon;&colon;value&gt;::type
----

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `bsl::integral&lowbar;constant&lt;bool, DetectNestedTrait&lt;t&lowbar;TYPE, IsBitwiseCopyable&gt;&colon;&colon;value &verbar;&verbar; bsl&colon;&colon;is&lowbar;trivially&lowbar;copyable&lt;t&lowbar;TYPE&gt;&colon;&colon;value&gt;::type`
| 
|===

== Specializations

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/IsBitwiseCopyable-027.adoc[`IsBitwiseCopyable&lt;BloombergLP::bdlt::Date&gt;`] 
| This template specialization for `IsBitwiseCopyable` indicates that `Date` is a bitwise copyable type&period;
| xref:BloombergLP/bslmf/IsBitwiseCopyable-0e8.adoc[`IsBitwiseCopyable&lt;BloombergLP::bdlt::DateTz&gt;`] 
| This template specialization for `IsBitwiseCopyable` indicates that `bdlt&colon;&colon;DateTz` is a bitwise copyable type&period;
| xref:BloombergLP/bslmf/IsBitwiseCopyable-087.adoc[`IsBitwiseCopyable&lt;BloombergLP::bdlt::Datetime&gt;`] 
| This template specialization for `IsBitwiseCopyable` indicates that `bdlt&colon;&colon;Datetime` is a bitwise copyable type&period;
| xref:BloombergLP/bslmf/IsBitwiseCopyable-09a.adoc[`IsBitwiseCopyable&lt;BloombergLP::bdlt::DatetimeTz&gt;`] 
| This template specialization for `IsBitwiseCopyable` indicates that `bdlt&colon;&colon;DatetimeTz` is a bitwise copyable type&period;
| xref:BloombergLP/bslmf/IsBitwiseCopyable-072.adoc[`IsBitwiseCopyable&lt;bdlt::DayOfWeekSet&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-09f.adoc[`IsBitwiseCopyable&lt;bdlt::DayOfWeekSet&lowbar;Iter&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-0a.adoc[`IsBitwiseCopyable&lt;BloombergLP::bdlt::Time&gt;`] 
| This template specialization for `IsBitwiseCopyable` indicates that `bdlt&colon;&colon;Time` is a bitwise copyable type&period;
| xref:BloombergLP/bslmf/IsBitwiseCopyable-005.adoc[`IsBitwiseCopyable&lt;BloombergLP::bdlt::TimeTz&gt;`] 
| This template specialization for `IsBitwiseCopyable` indicates that `bdlt&colon;&colon;TimeTz` is a bitwise copyable type&period;
| xref:BloombergLP/bslmf/IsBitwiseCopyable-082.adoc[`IsBitwiseCopyable&lt;BloombergLP::bslh::WyHashIncrementalAlgorithm&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-00a.adoc[`IsBitwiseCopyable&lt;bdlf::MemFn&lt;PROTOTYPE&gt;&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-0c.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE volatile&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-03c.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE const&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-09e.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE const volatile&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-0eaf.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE&&gt;`] 
| This partial specialization optimizes away a number of nested template instantiations to ensure that reference types are never bitwise copyable&period;
| xref:BloombergLP/bslmf/IsBitwiseCopyable-092.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE&&&gt;`] 
| This partial specialization optimizes away a number of nested template instantiations to ensure that rvalue reference types are never bitwise copyable&period;
| xref:BloombergLP/bslmf/IsBitwiseCopyable-0ea3.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-03f.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE volatile[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-07c.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE const[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-02f.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE const volatile[]&gt;`] 
| These partial specializations ensures that array&hyphen;of&hyphen;unknown&hyphen;bound types have the same result as their element type&period;
| xref:BloombergLP/bslmf/IsBitwiseCopyable-0d.adoc[`IsBitwiseCopyable&lt;BloombergLP::bslalg::DequeIterator&lt;VALUE&lowbar;TYPE, BLOCK&lowbar;LENGTH&gt;&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-08a.adoc[`IsBitwiseCopyable&lt;bsl::pair&lt;T1, T2&gt;&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-05.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-08b.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE volatile[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-06.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE const[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-0e5.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE const volatile[]&gt;`] 
| 
|===


== Derived Classes

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslmf/IsBitwiseCopyable-03c.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE const&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-05.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-06.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE const[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-08b.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE volatile[]&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-09e.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE const volatile&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-0c.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE volatile&gt;`] 
| 
| xref:BloombergLP/bslmf/IsBitwiseCopyable-0e5.adoc[`IsBitwiseCopyable&lt;t&lowbar;TYPE const volatile[]&gt;`] 
| 
|===


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