Jlm
Classes | Namespaces | Functions
MatchType.hpp File Reference
#include <stdexcept>
#include <string>
#include <tuple>
Include dependency graph for MatchType.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  jlm::rvsdg::member_function_pointer_argtype< Ret(MFP::*)(Args...)>
 
struct  jlm::rvsdg::member_function_pointer_argtype< Ret(MFP::*)(Args...) const >
 
struct  jlm::rvsdg::member_function_pointer_restype< Ret(MFP::*)(Args...)>
 
struct  jlm::rvsdg::member_function_pointer_restype< Ret(MFP::*)(Args...) const >
 
struct  jlm::rvsdg::CallableArgumentType< Callable >
 Template helper to deduce first argument of a callable object. More...
 
struct  jlm::rvsdg::CallableArgumentType< Ret(Args...)>
 
struct  jlm::rvsdg::CallableResultType< Callable >
 Template helper to deduce result of a callable object. More...
 
struct  jlm::rvsdg::CallableResultType< Ret(Args...)>
 

Namespaces

 jlm
 
 jlm::rvsdg
 

Functions

template<typename T , typename... Fns>
void jlm::rvsdg::MatchType (T &obj, const Fns &... fns)
 Pattern match over subclass type of given object. More...
 
template<typename T >
void jlm::rvsdg::MatchType (T &x)
 
template<typename T , typename Fn , typename... Fns>
void jlm::rvsdg::MatchType (T &x, const Fn &fn, const Fns &... fns)
 
template<typename T , typename... Fns>
void jlm::rvsdg::MatchTypeWithDefault (T &obj, const Fns &... fns)
 Pattern match over subclass type of given object with default handler. More...
 
template<typename T , typename Fn >
CallableResultType< Fn >::type jlm::rvsdg::MatchTypeWithDefault (T &, const Fn &fn)
 
template<typename T , typename Fn , typename... Fns>
CallableResultType< Fn >::type jlm::rvsdg::MatchTypeWithDefault (T &x, const Fn &fn, const Fns &... fns)
 
template<typename T , typename... Fns>
void jlm::rvsdg::MatchTypeOrFail (T &obj, const Fns &... fns)
 Pattern match over subclass type of given object. More...
 
template<typename T , typename Fn >
CallableResultType< Fn >::type jlm::rvsdg::MatchTypeOrFail (T &x, const Fn &fn)
 
template<typename T , typename Fn , typename... Fns>
CallableResultType< Fn >::type jlm::rvsdg::MatchTypeOrFail (T &x, const Fn &fn, const Fns &... fns)