[#bsl-optional-072-and_then-08d] = xref:bsl.adoc[bsl]::xref:bsl/optional-072.adoc[optional]::and_then :relfileprefix: ../../ :mrdocs: `and_then` overloads == Synopses Declared in `<bslstl_optional.h>` 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. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_FUNC> constexpr auto xref:bsl/optional-072/and_then-06.adoc[and_then](t_FUNC&& func) &; ---- [.small]#xref:bsl/optional-072/and_then-06.adoc[_» more..._]# Invoke the specified `func` on the contained value and return its optional result as a const lvalue. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_FUNC> constexpr auto xref:bsl/optional-072/and_then-080.adoc[and_then](t_FUNC&& func) const &; ---- [.small]#xref:bsl/optional-072/and_then-080.adoc[_» more..._]# Invoke the specified `func` on the contained value and return its optional result as an rvalue. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_FUNC> constexpr auto xref:bsl/optional-072/and_then-09.adoc[and_then](t_FUNC&& func) &&; ---- [.small]#xref:bsl/optional-072/and_then-09.adoc[_» more..._]# Invoke the specified `func` on the contained value and return its optional result as a const rvalue. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class t_FUNC> constexpr auto xref:bsl/optional-072/and_then-04.adoc[and_then](t_FUNC&& func) const &&; ---- [.small]#xref:bsl/optional-072/and_then-04.adoc[_» more..._]# [.small]#Created with https://www.mrdocs.com[MrDocs]#