LLVM 22.0.0git
|
#include "llvm/ADT/TypeSwitch.h"
Public Member Functions | |
TypeSwitchBase (const T &value) | |
TypeSwitchBase (TypeSwitchBase &&other) | |
~TypeSwitchBase ()=default | |
TypeSwitchBase (const TypeSwitchBase &)=delete | |
TypeSwitchBase is not copyable. | |
void | operator= (const TypeSwitchBase &)=delete |
void | operator= (TypeSwitchBase &&other)=delete |
template<typename CaseT, typename CaseT2, typename... CaseTs, typename CallableT> | |
LLVM_ATTRIBUTE_ALWAYS_INLINE LLVM_ATTRIBUTE_NODEBUG DerivedT & | Case (CallableT &&caseFn) |
Invoke a case on the derived class with multiple case types. | |
template<typename CallableT> | |
DerivedT & | Case (CallableT &&caseFn) |
Invoke a case on the derived class, inferring the type of the Case from the first input of the given callable. |
Static Protected Member Functions | |
template<typename CastT, typename ValueT> | |
static decltype(auto) | castValue (ValueT &&value) |
Attempt to dyn_cast the given value to CastT. |
Protected Attributes | |
const T | value |
The root value we are switching on. |
Definition at line 25 of file TypeSwitch.h.
|
inline |
Definition at line 27 of file TypeSwitch.h.
|
inline |
Definition at line 28 of file TypeSwitch.h.
|
default |
|
delete |
TypeSwitchBase is not copyable.
|
inline |
Invoke a case on the derived class with multiple case types.
Definition at line 44 of file TypeSwitch.h.
Referenced by llvm::detail::TypeSwitchBase< TypeSwitch< T, ResultT >, T >::Case().
|
inline |
Invoke a case on the derived class, inferring the type of the Case from the first input of the given callable.
Note: This inference rules for this overload are very simple: strip pointers and references.
Definition at line 54 of file TypeSwitch.h.
|
inlinestaticprotected |
Attempt to dyn_cast the given value to CastT.
Definition at line 66 of file TypeSwitch.h.
|
delete |
|
delete |
|
protected |
The root value we are switching on.
Definition at line 71 of file TypeSwitch.h.