6#ifndef JLM_RVSDG_MATCH_VARIANT_HPP
7#define JLM_RVSDG_MATCH_VARIANT_HPP
18struct Overloaded :
Ts...
20 using Ts::operator()...;
23Overloaded(
Ts...) -> Overloaded<
Ts...>;
46template<
typename T,
typename...
Fns>
50 return std::visit(Overloaded{ std::forward<Fns>(
fns)... }, std::forward<T>(
obj));
decltype(auto) MatchVariant(T &&obj, Fns &&... fns)
Pattern match over variant.
NodeType * TryGetOwnerNode(const rvsdg::Input &input) noexcept
Checks if this is an input to a node of specified type.