31 template <
typename... Callables >
40 template < typename... Ts >
42 : Callables{ std::forward< Ts >( ts ) }...
46 using Callables::operator()...;
51 template <
typename... Callables >
54 template <
typename Variant,
typename... Callables >
55 decltype(
auto )
match( Variant&& var, Callables&&... cals )
58 matcher< std::decay_t< Callables >... >( std::forward< Callables >( cals )... ),
59 std::forward< Variant >( var ) );
62 template <
typename Variant,
typename... Callables >
66 matcher< std::decay_t< Callables >... >( std::forward< Callables >( cals )... ),
67 std::forward< Variant >( var ) );
MIT License.
Definition: impl.h:31
decltype(auto) match(Variant &&var, Callables &&... cals)
Definition: match.h:55
decltype(auto) apply_on_match(Variant &&var, Callables &&... cals)
Definition: match.h:63
decltype(auto) visit(Visitor &&vis, Variant &&var)
Reimplementation of std::visit.
Definition: visit.h:44
decltype(auto) apply_on_visit(Visitor &&vis, Variant &&var)
Combines visit and std::apply into one step - provided variant is expanded with visit and apply is ca...
Definition: visit.h:57
matcher(Callables &&...) -> matcher< std::decay_t< Callables >... >
matcher(matcher &&) noexcept=default
matcher(matcher const &)=default