LLVM 20.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.
References llvm::detail::TypeSwitchBase< DerivedT, T >::Case().
Referenced by llvm::detail::TypeSwitchBase< DerivedT, 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.
References llvm::detail::TypeSwitchBase< DerivedT, T >::value.
|
delete |
|
delete |
|
protected |
The root value we are switching on.
Definition at line 71 of file TypeSwitch.h.
Referenced by llvm::TypeSwitch< T, ResultT >::Case(), llvm::TypeSwitch< T, void >::Case(), llvm::detail::TypeSwitchBase< DerivedT, T >::castValue(), llvm::TypeSwitch< T, ResultT >::Default(), and llvm::TypeSwitch< T, void >::Default().