[#BloombergLP-bdlb-Variant17-2constructor-05e] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdlb.adoc[bdlb]::xref:BloombergLP/bdlb/Variant17.adoc[Variant17]::Variant17 :relfileprefix: ../../../ :mrdocs: Create a variant object having the specified `value` of template parameter `TYPE` by moving the contents of `value` to the newly‐created object. Use the currently installed default allocator to supply memory. `value` is left in a valid but unspecified state. `TYPE` must be the same as one of the types that this variant can hold. Note that in C++11 mode, this method does not participate in overload resolution if it would lead to ambiguity with the move constructor that does not take an allocator (below) or with the constructor taking a `valueOrAllocator` (above). == Synopsis Declared in `<bdlb_variant.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class TYPE> explicit Variant17( TYPE&& value, void* = 0) requires !bsl::is_same< SelfType, typename bsl::remove_const< typename bsl::remove_reference<TYPE>::type>::type>::value && !bsl::is_convertible<TYPE, bslma::Allocator *>::value; ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#