[#BloombergLP-bslmf-IsBitwiseMoveable-0fb] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslmf.adoc[bslmf]::IsBitwiseMoveable :relfileprefix: ../../ :mrdocs: Trait metafunction that determines whether the specified parameter `t_TYPE` is bitwise moveable. If `IsBitwiseMoveable<t_TYPE>` is derived from `bsl::true_type` then `t_TYPE` is bitwise moveable. Otherwise, bitwise moveability cannot be inferred for `t_TYPE`. This trait can be associated with a bitwise moveable user‐defined class by specializing this class or by using the `BSLMF_NESTED_TRAIT_DECLARATION` macro. == Synopsis Declared in `<bslmf_isbitwisemoveable.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_TYPE> struct IsBitwiseMoveable : /* implementation-defined */::type ---- == Base Classes [cols="1,4"] |=== | Name| Description | `/* implementation-defined */::type` | |=== == Specializations [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/IsBitwiseMoveable-0f21.adoc[`IsBitwiseMoveable<bsltf::AllocBitwiseMoveableTestType>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0ad2.adoc[`IsBitwiseMoveable<balber::BerEncoderOptions>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0005.adoc[`IsBitwiseMoveable<bdlc::BitArray>`] | This template specialization for `IsBitwiseMoveable` indicates that `BitArray` is a bitwise movable type if `vector<uint64_t>` is a bitwise movable type. | xref:BloombergLP/bslmf/IsBitwiseMoveable-0c9.adoc[`IsBitwiseMoveable<bsltf::BitwiseMoveableTestType>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0a1.adoc[`IsBitwiseMoveable<BloombergLP::bdlbb::Blob>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0dc.adoc[`IsBitwiseMoveable<BloombergLP::bdlbb::BlobBuffer>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-02a.adoc[`IsBitwiseMoveable<balb::Choice1>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0ca.adoc[`IsBitwiseMoveable<balb::Choice2>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0535.adoc[`IsBitwiseMoveable<balb::Choice3>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-02e6.adoc[`IsBitwiseMoveable<balb::Choice4>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-069.adoc[`IsBitwiseMoveable<balb::Choice5>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0eb9.adoc[`IsBitwiseMoveable<balb::CustomInt>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-019d.adoc[`IsBitwiseMoveable<balb::CustomString>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0db.adoc[`IsBitwiseMoveable<baljsn::DecoderOptions>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0af9.adoc[`IsBitwiseMoveable<balxml::DecoderOptions>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0fd3.adoc[`IsBitwiseMoveable<baljsn::EncoderOptions>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-083.adoc[`IsBitwiseMoveable<balxml::EncoderOptions>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0b0.adoc[`IsBitwiseMoveable<baljsn::EncoderTestAddress>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-075.adoc[`IsBitwiseMoveable<baljsn::EncoderTestChoiceWithAllCategories>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0f0.adoc[`IsBitwiseMoveable<baljsn::EncoderTestChoiceWithAllCategoriesChoice>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0a5.adoc[`IsBitwiseMoveable<baljsn::EncoderTestChoiceWithAllCategoriesCustomizedType>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0ae1.adoc[`IsBitwiseMoveable<baljsn::EncoderTestChoiceWithAllCategoriesSequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0adf.adoc[`IsBitwiseMoveable<baljsn::EncoderTestDegenerateChoice1>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-08a.adoc[`IsBitwiseMoveable<baljsn::EncoderTestDegenerateChoice1Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0cd.adoc[`IsBitwiseMoveable<baljsn::EncoderTestEmployee>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-090.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithAllCategories>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0ebe.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithAllCategoriesChoice>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0f2e.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithAllCategoriesCustomizedType>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0c8.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithAllCategoriesSequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0f60.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged0>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-012.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged1>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0d2.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged10>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0bc.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged10Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-08e.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged11>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-00f.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged11Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-024d.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged11Sequence1>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0af4.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged12>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-067.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged12Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-04e.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged13>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-061.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged13Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0ae7.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged14>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-052.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged1Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0773.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged2>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-02b4.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged3>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0fd4.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged3Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0450.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged3Sequence1>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-033.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged4>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-076.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged4Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0c0.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged5>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0242.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged5Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-045f.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged6>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0f1.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged7>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0ee.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged7Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0ce.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged7Sequence1>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0d48.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged7Sequence2>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-046.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged8>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-02b3.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged8Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-063.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged8Sequence1>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-06aa.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged9>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-055.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged9Sequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0be.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithUntagged9Sequence1>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0aa.adoc[`IsBitwiseMoveable<balb::FeatureTestMessage>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-07e.adoc[`IsBitwiseMoveable<bslma::ManagedPtrDeleter>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-03b.adoc[`IsBitwiseMoveable<bslma::ManagedPtr_Members>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0cc.adoc[`IsBitwiseMoveable<balb::Request>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0684.adoc[`IsBitwiseMoveable<balb::Response>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-06d.adoc[`IsBitwiseMoveable<balb::Sequence1>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-020.adoc[`IsBitwiseMoveable<balb::Sequence2>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0b6.adoc[`IsBitwiseMoveable<balb::Sequence3>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0f8.adoc[`IsBitwiseMoveable<balb::Sequence4>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-02d.adoc[`IsBitwiseMoveable<balb::Sequence5>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-06a8.adoc[`IsBitwiseMoveable<balb::Sequence6>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-02b5.adoc[`IsBitwiseMoveable<balb::SequenceWithAnonymity>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0ba.adoc[`IsBitwiseMoveable<balb::SequenceWithAnonymityChoice>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-097.adoc[`IsBitwiseMoveable<balb::SequenceWithAnonymityChoice1>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0e1.adoc[`IsBitwiseMoveable<balb::SequenceWithAnonymityChoice2>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-05e.adoc[`IsBitwiseMoveable<balb::SimpleRequest>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0680.adoc[`IsBitwiseMoveable<bslh::SipHashAlgorithm>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0b5.adoc[`IsBitwiseMoveable<bslh::SpookyHashAlgorithm>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-032.adoc[`IsBitwiseMoveable<balb::UnsignedSequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-09de.adoc[`IsBitwiseMoveable<baljsn::EncoderTestChoiceWithAllCategoriesEnumeration::Value>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0f66.adoc[`IsBitwiseMoveable<baljsn::EncoderTestSequenceWithAllCategoriesEnumeration::Value>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-099.adoc[`IsBitwiseMoveable<baljsn::EncodingStyle::Value>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0d1.adoc[`IsBitwiseMoveable<balxml::EncodingStyle::Value>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-02e9.adoc[`IsBitwiseMoveable<balb::Enumerated::Value>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0536.adoc[`IsBitwiseMoveable<balm::PublicationType::Value>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0c7.adoc[`IsBitwiseMoveable<balb::VoidSequence>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0cb.adoc[`IsBitwiseMoveable<void>`] | Traits metafunction explicit specialization to indicate that the type `void` is not bitwise movable. Note that this specialization is used as a simpler option than making the compile‐time logic of the `IsBitwiseMoveable_Imp` template robust for `void` types. | xref:BloombergLP/bslmf/IsBitwiseMoveable-0e6.adoc[`IsBitwiseMoveable<bslalg::ConstructorProxy<OBJECT_TYPE>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-06e.adoc[`IsBitwiseMoveable<bslh::Hash<TYPE>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-06a7.adoc[`IsBitwiseMoveable<bslma::ManagedPtr<TARGET_TYPE>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-003.adoc[`IsBitwiseMoveable<bdlf::MemFn<PROTOTYPE>>`] | This bitwise moveable trait is redundant as it is already implied by the `bslmf::IsBitwiseCopyable` trait below. We retain this definition, however, as it can potentially save a level of template instantiation. | xref:BloombergLP/bslmf/IsBitwiseMoveable-013.adoc[`IsBitwiseMoveable<bsl::shared_ptr<ELEMENT_TYPE>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0f7.adoc[`IsBitwiseMoveable<bsl::weak_ptr<ELEMENT_TYPE>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0e8.adoc[`IsBitwiseMoveable<t_TYPE volatile>`] | Trait metafunction that determines whether the specified parameter `t_TYPE` is bitwise moveable by stripping off the `volatile` qualifier and forwarding to the base‐case of `IsBitwiseMoveable`. | xref:BloombergLP/bslmf/IsBitwiseMoveable-0f23.adoc[`IsBitwiseMoveable<t_TYPE const>`] | Trait metafunction that determines whether the specified parameter `t_TYPE` is bitwise moveable by stripping off the `const` qualifier and forwarding to the base‐case of `IsBitwiseMoveable`. | xref:BloombergLP/bslmf/IsBitwiseMoveable-024f.adoc[`IsBitwiseMoveable<t_TYPE const volatile>`] | Trait metafunction that determines whether the specified parameter `t_TYPE` is bitwise moveable by stripping off the `const` and `volatile` qualifiers and forwarding to the base‐case of `IsBitwiseMoveable`. | xref:BloombergLP/bslmf/IsBitwiseMoveable-0fd8.adoc[`IsBitwiseMoveable<bslstl::BidirectionalNodePool<VALUE, ALLOCATOR>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-044.adoc[`IsBitwiseMoveable<bslma::ManagedPtr_PairProxy<POINTER_TYPE, ASSOCIATED_TYPE>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0e0.adoc[`IsBitwiseMoveable<bdlf::MemFnInstance<PROTOTYPE, INSTANCE>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-015.adoc[`IsBitwiseMoveable<bsl::deque<VALUE_TYPE, ALLOCATOR>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-092.adoc[`IsBitwiseMoveable<bsl::list<VALUE, ALLOCATOR>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-01d.adoc[`IsBitwiseMoveable<bsl::pair<T1, T2>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0a7.adoc[`IsBitwiseMoveable<bsl::vector<VALUE_TYPE, ALLOCATOR>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0b4.adoc[`IsBitwiseMoveable<t_TYPE[]>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-074.adoc[`IsBitwiseMoveable<t_TYPE volatile[]>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-073.adoc[`IsBitwiseMoveable<t_TYPE const[]>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0198.adoc[`IsBitwiseMoveable<t_TYPE const volatile[]>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-09dc.adoc[`IsBitwiseMoveable<bslstl::HashTable<KEY_CONFIG, HASHER, COMPARATOR, ALLOCATOR>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-029.adoc[`IsBitwiseMoveable<bsl::unordered_map<KEY, VALUE, HASH, EQUAL, ALLOCATOR>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0d46.adoc[`IsBitwiseMoveable<bsl::unordered_multimap<KEY, MAPPED, HASH, EQUAL, ALLOCATOR>>`] | |=== == Derived Classes [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bslmf/IsBitwiseMoveable-0005.adoc[`IsBitwiseMoveable<bdlc::BitArray>`] | This template specialization for `IsBitwiseMoveable` indicates that `BitArray` is a bitwise movable type if `vector<uint64_t>` is a bitwise movable type. | xref:BloombergLP/bslmf/IsBitwiseMoveable-015.adoc[`IsBitwiseMoveable<bsl::deque<VALUE_TYPE, ALLOCATOR>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-092.adoc[`IsBitwiseMoveable<bsl::list<VALUE, ALLOCATOR>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0a7.adoc[`IsBitwiseMoveable<bsl::vector<VALUE_TYPE, ALLOCATOR>>`] | | xref:BloombergLP/bslmf/IsBitwiseMoveable-0e0.adoc[`IsBitwiseMoveable<bdlf::MemFnInstance<PROTOTYPE, INSTANCE>>`] | |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#