result¶
Header¶
#include <boost/hof/result.hpp>
Description¶
The result
function adaptor sets the return type for the function, which
can be useful when dealing with multiple overloads. Since the return type
is no longer dependent on the parameters passed to the function, the
result_adaptor
provides a nested result_type
that is the return type
of the function.
Synopsis¶
template<class Result, class F>
constexpr result_adaptor<Result, F> result(F f);
Requirements¶
F must be:
MoveConstructible
Example¶
#include <boost/hof.hpp>
#include <cassert>
struct id
{
template<class T>
T operator()(T x) const
{
return x;
}
};
int main() {
auto int_result = boost::hof::result<int>(id());
static_assert(std::is_same<decltype(int_result(true)), int>::value, "Not the same type");
}