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

Objects of a type with this trait can be copied using `memcpy`&period; After such a bitwise copy, both the original and the copy are valid&period; Classes with this trait are assumed to have trivial (no&hyphen;op) destructors and are assumed to be bitwise moveable (see the `TypeTraitBitwiseMoveable` trait)&period; Undefined behavior may result if this trait is assigned to a type that allocates memory or other resources, uses virtual inheritance, or places pointers to itself within other data structures&period; Also, objects of a type with this trait can be destroyed by a no&hyphen;op, i&period;e&period;, not invoking the destructor, although it is safe to write zeros into the memory footprint of the object&period;

== Synopsis

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

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
struct TypeTraitBitwiseCopyable;
----

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslalg/TypeTraitBitwiseCopyable/Metafunction.adoc[`Metafunction`] 
| This class template ties the `bslalg&colon;&colon;TypeTraitBitwiseCopyable` trait tag to the `bslmf&colon;&colon;IsBitwiseCopyable` trait metafunction&period;
| xref:BloombergLP/bslalg/TypeTraitBitwiseCopyable/NestedTraitDeclaration.adoc[`NestedTraitDeclaration`] 
| This class template ties the `bslalg&colon;&colon;TypeTraitBitwiseCopyable` trait tag to the `bsl&colon;&colon;is&lowbar;trivially&lowbar;copyable` trait metafunction&period;
|===



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