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.
Declared in <bslstl_optional.h>
template<class t_FUNC>
constexpr
auto
and_then(t_FUNC&& func) &;