[#BloombergLP-bslmf-IsBitwiseMoveable_Imp-03] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::IsBitwiseMoveable_Imp<xref:bsl/allocator-0df.adoc[allocator<unsigned long>]> :relfileprefix: ../../ :mrdocs: Core implementation of the `IsBitwiseMoveable` trait. A class is detected as being bitwise moveable iff it is trivially copyable or it has a nested trait declaration for the `IsBitwiseMoveable` trait. In C++03 however, detection of trivially copyable classes is imperfect and depends on programmer intervention. As many empty classes (including standard classes like `std::less<T>` would not be detected as being trivially copyable and, therefore, bitwise moveable, a heuristic is put in place whereby any type of one byte size is assumed to be bitwise moveable. See component‐level documentation for this component for more details on this heuristic and how to avoid false positives. == Synopsis Declared in `<bslmf_isbitwisemoveable.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<> struct IsBitwiseMoveable_Imp<xref:bsl/allocator-0df.adoc[allocator<unsigned long>]>; ---- == Type Aliases [cols="1"] |=== | Name | xref:BloombergLP/bslmf/IsBitwiseMoveable_Imp-03/type.adoc[`type`] |=== == Static Data Members [cols="1"] |=== | Name | xref:BloombergLP/bslmf/IsBitwiseMoveable_Imp-03/k_ValueWithoutOnebyteHeuristic.adoc[`k_ValueWithoutOnebyteHeuristic`] | xref:BloombergLP/bslmf/IsBitwiseMoveable_Imp-03/value.adoc[`value`] |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#