mrdocs::match

Applies a set of callables to a std::variant using std::visit and Overload.

Synopsis

Declared in <mrdocs/ADT/Overload.hpp>
template<
    class Variant,
    class... Ts>
constexpr
decltype(auto)
match(
    Variant&& v,
    Ts...&&... xs);

Description

This is a convenience wrapper around std::visit(makeOverload(...), variant). It forwards the variant and the callables and returns whatever std::visit returns.

std::variant<int, std::string> v = 42; auto r = fn::match(v, [](int i) { return i + 1; }, [](const std::string& s) { return s.size(); } );

Return Value

The result of std::visit.

Parameters

Name Description
v The variant to visit (can be lvalue or rvalue; const-qualification is preserved).
xs The callables to be combined with makeOverload and passed to std::visit.

Created with MrDocs