[#BloombergLP-bslstl-Optional_Base-08-2constructor-01] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bslstl.adoc[bslstl]::xref:BloombergLP/bslstl/Optional_Base-08.adoc[Optional_Base<t_TYPE, false>]::Optional_Base :relfileprefix: ../../../ :mrdocs: Constructors == Synopses Declared in `<bslstl_optional.h>` Create a disengaged `Optional_Base` object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0d4.adoc[Optional_Base](); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0d4.adoc[_» more..._]# Create a disengaged `Optional_Base` object. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- constexpr xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0f.adoc[Optional_Base](xref:bsl/nullopt_t.adoc[bsl::nullopt_t]); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0f.adoc[_» more..._]# These allocator‐extended constructors cannot be called, and are provided only to prevent compilation errors when 'optional' is explicitly instantiated. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslstl/Optional_Base-08/2constructor-04f.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-08/AllocType.adoc[AllocType]); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-04f.adoc[_» more..._]# Create an `Optional_Base` object whose contained value is initialized by forwarding from the specified `value`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> constexpr xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0de.adoc[Optional_Base]( xref:BloombergLP/bslstl/Optional_ConstructFromForwardRef.adoc[BloombergLP::bslstl::Optional_ConstructFromForwardRef], t_ANY_TYPE&& value); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0de.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()` (of `t_ANY_TYPE`) converted to `t_TYPE` otherwise. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> constexpr xref:BloombergLP/bslstl/Optional_Base-08/2constructor-078.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-08/2constructor-078.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> constexpr xref:BloombergLP/bslstl/Optional_Base-08/2constructor-054.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-08/2constructor-054.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()` (of `t_ANY_TYPE`) converted to `t_TYPE` otherwise. `original` is left in a valid but unspecified state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> constexpr xref:BloombergLP/bslstl/Optional_Base-08/2constructor-070.adoc[Optional_Base]( xref:BloombergLP/bslstl/Optional_MoveConstructFromOtherOptional.adoc[BloombergLP::bslstl::Optional_MoveConstructFromOtherOptional], xref:BloombergLP/bslstl/Optional_Base-05.adoc[Optional_Base<t_ANY_TYPE>]&& original); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-070.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> constexpr xref:BloombergLP/bslstl/Optional_Base-08/2constructor-04e.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-08/2constructor-04e.adoc[_» more..._]# Create an `Optional_Base` object whose contained value is initialized from the specified `args`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... t_ARGS> constexpr explicit xref:BloombergLP/bslstl/Optional_Base-08/2constructor-02d.adoc[Optional_Base]( std::in_place_t, t_ARGS&&... args); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-02d.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0db.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-08/AllocType.adoc[AllocType], xref:bsl/nullopt_t.adoc[bsl::nullopt_t]); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0db.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-08/2constructor-0c.adoc[Optional_Base]( xref:BloombergLP/bslstl/Optional_InvokeConstructorTag.adoc[Optional_InvokeConstructorTag], t_INVOCABLE&& invocable, t_ARG&& arg); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0c.adoc[_» more..._]# Create an `Optional_Base` object whose contained value is initialized from the specified `il` and `args`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_INIT_LIST_TYPE, class... t_ARGS> constexpr xref:BloombergLP/bslstl/Optional_Base-08/2constructor-03c.adoc[Optional_Base]( std::in_place_t, std::initializer_list<t_INIT_LIST_TYPE> il, t_ARGS&&... args); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-03c.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0a.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-08/AllocType.adoc[AllocType], xref:BloombergLP/bslstl/Optional_ConstructFromForwardRef.adoc[BloombergLP::bslstl::Optional_ConstructFromForwardRef], t_ANY_TYPE&&); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-0a.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-08/2constructor-026.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-08/AllocType.adoc[AllocType], xref:BloombergLP/bslstl/Optional_CopyConstructFromOtherOptional.adoc[BloombergLP::bslstl::Optional_CopyConstructFromOtherOptional], xref:BloombergLP/bslstl/Optional_Base-05.adoc[Optional_Base<t_ANY_TYPE>] const&); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-026.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-08/2constructor-033.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-08/AllocType.adoc[AllocType], xref:BloombergLP/bslstl/Optional_CopyConstructFromStdOptional.adoc[BloombergLP::bslstl::Optional_CopyConstructFromStdOptional], std::optional<t_ANY_TYPE> const&); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-033.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-08/2constructor-071.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-08/AllocType.adoc[AllocType], xref:BloombergLP/bslstl/Optional_MoveConstructFromOtherOptional.adoc[BloombergLP::bslstl::Optional_MoveConstructFromOtherOptional], xref:BloombergLP/bslstl/Optional_Base-05.adoc[Optional_Base<t_ANY_TYPE>]&&); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-071.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_ANY_TYPE> xref:BloombergLP/bslstl/Optional_Base-08/2constructor-09.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-08/AllocType.adoc[AllocType], xref:BloombergLP/bslstl/Optional_MoveConstructFromStdOptional.adoc[BloombergLP::bslstl::Optional_MoveConstructFromStdOptional], std::optional<t_ANY_TYPE>&&); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-09.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class... t_ARGS> xref:BloombergLP/bslstl/Optional_Base-08/2constructor-05b.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-08/AllocType.adoc[AllocType], std::in_place_t, t_ARGS&&...); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-05b.adoc[_» more..._]# [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template< class t_INIT_LIST_TYPE, class... t_ARGS> xref:BloombergLP/bslstl/Optional_Base-08/2constructor-02b.adoc[Optional_Base]( std::allocator_arg_t, xref:BloombergLP/bslstl/Optional_Base-08/AllocType.adoc[AllocType], std::in_place_t, std::initializer_list<t_INIT_LIST_TYPE>, t_ARGS&&...); ---- [.small]#xref:BloombergLP/bslstl/Optional_Base-08/2constructor-02b.adoc[_» more..._]# [.small]#Created with https://www.mrdocs.com[MrDocs]#