[#BloombergLP-bslstl-Optional_Base-05-2constructor-0f] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslstl.adoc[bslstl]::xref:BloombergLP/bslstl/Optional_Base-05.adoc[Optional_Base]::Optional_Base :relfileprefix: ../../../ :mrdocs: Constructors == Synopses Declared in `<bslstl_optional.h>` Create a disengaged `Optional_Base` object. Use the currently installed default allocator to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0e.adoc[Optional_Base](); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0e.adoc[_» more..._]# Create an `Optional_Base` object having the value of the specified `original` object. Use the currently installed default allocator to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslstl/Optional_Base-05/2constructor-01a.adoc[Optional_Base](xref:BloombergLP/bslstl/Optional_Base-05.adoc[Optional_Base] const& original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-01a.adoc[_» more..._]# Create a disengaged `Optional_Base` object. Use the currently installed default allocator to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslstl/Optional_Base-05/2constructor-014.adoc[Optional_Base](xref:bsl/nullopt_t.adoc[bsl::nullopt_t]); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-014.adoc[_» more..._]# Create an `Optional_Base` object having the same value as the specified `original` object by moving the contents of `original` to the newly‐created object. The allocator associated with `original` is propagated for use in the newly‐created object. `original` is left in a valid, but unspecified state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0a8.adoc[Optional_Base](xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef<Optional_Base>] original) noexcept(/* see-below */); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0a8.adoc[_» more..._]# Create a disengaged `Optional_Base` object. Use the specified `allocator` to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslstl/Optional_Base-05/2constructor-088.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-088.adoc[_» more..._]# Create an `Optional_Base` object whose contained value is initialized by forwarding from the specified `value`. Use the currently installed default allocator to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-078.adoc[Optional_Base]( xref:BloombergLP/bslstl/Optional_ConstructFromForwardRef.adoc[BloombergLP::bslstl::Optional_ConstructFromForwardRef], t_ANY_TYPE&& value); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-078.adoc[_» more..._]# Create a disengaged `Optional_Base` object if the specified `original` object is disengaged, and an `Optional_Base` object with the value of `original.value()` converted to `t_TYPE` otherwise. Use the currently installed default allocator to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0b9b0.adoc[Optional_Base]( xref:BloombergLP/bslstl/Optional_CopyConstructFromOtherOptional.adoc[BloombergLP::bslstl::Optional_CopyConstructFromOtherOptional], xref:BloombergLP/bslstl/Optional_Base-05.adoc[Optional_Base<t_ANY_TYPE>] const& original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0b9b0.adoc[_» more..._]# Create a disengaged `Optional_Base` object if the specified `original` object is disengaged, and an `Optional_Base` object with the value of `original.value()` converted to `t_TYPE` otherwise. Use the currently installed default allocator to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0bf2.adoc[Optional_Base]( xref:BloombergLP/bslstl/Optional_CopyConstructFromStdOptional.adoc[BloombergLP::bslstl::Optional_CopyConstructFromStdOptional], std::optional<t_ANY_TYPE> const& original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0bf2.adoc[_» more..._]# Create a disengaged `Optional_Base` object if the specified `original` object is disengaged, and an `Optional_Base` object with the value of `original.value()` converted to `t_TYPE` otherwise. Use the currently installed default allocator to supply memory. `original` is left in a valid but unspecified state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-05.adoc[Optional_Base]( xref:BloombergLP/bslstl/Optional_MoveConstructFromOtherOptional.adoc[BloombergLP::bslstl::Optional_MoveConstructFromOtherOptional], xref:BloombergLP/bslmf/MovableRef_Deduced.adoc[BloombergLP::bslmf::MovableRef_Deduced<Optional_Base<t_ANY_TYPE>>] original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-05.adoc[_» more..._]# Create a disengaged `Optional_Base` object if the specified `original` object is disengaged, and an `Optional_Base` object with the value of `original.value()` otherwise. This is a special case constructor where `t_ANY_TYPE` is a non‐const version of `t_TYPE` and we use the allocator from `original` to supply memory. `original` is left in a valid but unspecified state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-08d.adoc[Optional_Base]( xref:BloombergLP/bslstl/Optional_MoveConstructFromOtherOptional.adoc[BloombergLP::bslstl::Optional_MoveConstructFromOtherOptional], xref:BloombergLP/bslmf/MovableRef_Deduced.adoc[BloombergLP::bslmf::MovableRef_Deduced<Optional_Base<t_ANY_TYPE>>] original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-08d.adoc[_» more..._]# Create a disengaged `Optional_Base` object if the specified `original` object is disengaged, and an `Optional_Base` object with the value of `original.value()` converted to `t_TYPE` otherwise. Use the currently installed default allocator to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-031.adoc[Optional_Base]( xref:BloombergLP/bslstl/Optional_MoveConstructFromStdOptional.adoc[BloombergLP::bslstl::Optional_MoveConstructFromStdOptional], std::optional<t_ANY_TYPE>&& original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-031.adoc[_» more..._]# Create an `Optional_Base` object having the value of the (template parameter) `t_TYPE` created in place using the specified `args`. Use the currently installed default allocator to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... t_ARGS> explicit xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0b9bd.adoc[Optional_Base]( std::in_place_t, t_ARGS&&... args); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0b9bd.adoc[_» more..._]# Create a disengaged `Optional_Base` object. Use the specified `allocator` to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslstl/Optional_Base-05/2constructor-00.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator, xref:bsl/nullopt_t.adoc[bsl::nullopt_t]); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-00.adoc[_» more..._]# If the specified `original` contains a value, create an `Optional_Base` object whose contained value is initialized by moving `*original`. Otherwise, create a disengaged `Optional_Base` object. Use the specified `allocator` to supply memory. `original` is left in a valid but unspecified state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslstl/Optional_Base-05/2constructor-074.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator, xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef<Optional_Base>] original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-074.adoc[_» more..._]# If the specified `original` contains a value, create an `Optional_Base` object whose contained value is initialized from `*original`. Otherwise, create a disengaged `Optional_Base` object. Use the specified `allocator` to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslstl/Optional_Base-05/2constructor-096.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator, xref:BloombergLP/bslstl/Optional_Base-05.adoc[Optional_Base] const& original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-096.adoc[_» more..._]# Create an `Optional_Base` object, which contains the result of invocation of the specified `invocable` with the specified `arg`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_INVOCABLE, class t_ARG> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-02.adoc[Optional_Base]( xref:BloombergLP/bslstl/Optional_InvokeConstructorTag.adoc[Optional_InvokeConstructorTag] tag, t_INVOCABLE&& invocable, t_ARG&& arg); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-02.adoc[_» more..._]# Create an `Optional_Base` object having the value of the (template parameter) `t_TYPE` created in place using the specified `il` and specified `args`. Use the currently installed default allocator to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_INIT_LIST_TYPE, class... t_ARGS> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-087.adoc[Optional_Base]( std::in_place_t, std::initializer_list<t_INIT_LIST_TYPE> il, t_ARGS&&... args); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-087.adoc[_» more..._]# Create an `Optional_Base` object whose contained value is initialized by forwarding from the specified `value`. Use the specified `allocator` to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0d.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator, xref:BloombergLP/bslstl/Optional_ConstructFromForwardRef.adoc[BloombergLP::bslstl::Optional_ConstructFromForwardRef], t_ANY_TYPE&& value); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0d.adoc[_» more..._]# If the specified `original` contains a value, create an `Optional_Base` object whose contained value is initialized from `*original`, converted to `t_TYPE`. Otherwise, create a disengaged `Optional_Base`. Use the specified `allocator` to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-09f.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator, xref:BloombergLP/bslstl/Optional_CopyConstructFromOtherOptional.adoc[BloombergLP::bslstl::Optional_CopyConstructFromOtherOptional], xref:BloombergLP/bslstl/Optional_Base-05.adoc[Optional_Base<t_ANY_TYPE>] const& original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-09f.adoc[_» more..._]# If the specified `original` contains a value, create an `Optional_Base` object whose contained value is initialized from `*original`, converted to `t_TYPE`. Otherwise, create a disengaged `Optional_Base` object. Use the specified `allocator` to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-04.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator, xref:BloombergLP/bslstl/Optional_CopyConstructFromStdOptional.adoc[BloombergLP::bslstl::Optional_CopyConstructFromStdOptional], std::optional<t_ANY_TYPE> const& original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-04.adoc[_» more..._]# If the specified `original` contains a value, create an `Optional_Base` object whose contained value is initialized by moving from `*original` and converting to `t_TYPE`. Otherwise, create a disengaged `Optional_Base`. Use the specified `allocator` to supply memory. `original` is left in a valid but unspecified state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0bf9.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator, xref:BloombergLP/bslstl/Optional_MoveConstructFromOtherOptional.adoc[BloombergLP::bslstl::Optional_MoveConstructFromOtherOptional], xref:BloombergLP/bslmf/MovableRef_Deduced.adoc[BloombergLP::bslmf::MovableRef_Deduced<Optional_Base<t_ANY_TYPE>>] original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0bf9.adoc[_» more..._]# If the specified `original` contains a value, create an `Optional_Base` object whose contained value is initialized from moving from `*original` and converting to `t_TYPE`. Otherwise, create a disengaged `Optional_Base`. Use the specified `allocator` to supply memory. `original` is left in a valid but unspecified state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-03a.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator, xref:BloombergLP/bslstl/Optional_MoveConstructFromStdOptional.adoc[BloombergLP::bslstl::Optional_MoveConstructFromStdOptional], std::optional<t_ANY_TYPE>&& original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-03a.adoc[_» more..._]# Create an `Optional_Base` object whose contained value is initialized from the specified `args`. Use the specified `allocator` to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... t_ARGS> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0aa.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator, std::in_place_t, t_ARGS&&... args); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-0aa.adoc[_» more..._]# Create an `Optional_Base` object whose contained value is initialized from the specified `il` and `args`. Use the specified `allocator` to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_INIT_LIST_TYPE, class... t_ARGS> xref:BloombergLP/bslstl/Optional_Base-05/2constructor-09b.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-05/allocator_type.adoc[allocator_type] allocator, std::in_place_t, std::initializer_list<t_INIT_LIST_TYPE> il, t_ARGS&&... args); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-05/2constructor-09b.adoc[_» more..._]# [.small]#Created with https://www.mrdocs.com[MrDocs]#