[#bsl-optional-072-and_then-06] = xref:bsl.adoc[bsl]::xref:bsl/optional-072.adoc[optional]::and_then :relfileprefix: ../../ :mrdocs: If this object contains a value, invoke the specified `func` with the contained value as an argument and return the result of that invocation; otherwise, return an empty optional. Note that `func` must return a specialization of `bsl::optional`. Also note that the return type of `func` does not have to be this object type. Also note that the optional object returned by `func` is returned as‐is, without copying or moving. Finally note that the default allocator is used for constructing the empty optional when `func` is not invoked. == Synopsis Declared in `<bslstl_optional.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_FUNC> constexpr auto and_then(t_FUNC&& func) &; ---- [.small]#Created with https://www.mrdocs.com[MrDocs]#