LLVM 20.0.0git
|
Inheritance utility for extensible RTTI. More...
#include "llvm/Support/ExtensibleRTTI.h"
Public Member Functions | |
const void * | dynamicClassID () const override |
bool | isA (const void *const ClassID) const override |
Static Public Member Functions | |
static const void * | classID () |
static bool | classof (const RTTIRoot *R) |
Inheritance utility for extensible RTTI.
Supports single inheritance only: A class can only have one ExtensibleRTTI-parent (i.e. a parent for which the isa<> test will work), though it can have many non-ExtensibleRTTI parents.
RTTIExtents uses CRTP so the first template argument to RTTIExtends is the newly introduced type, and the second argument is the parent class.
class MyType : public RTTIExtends<MyType, RTTIRoot> { public: static char ID; };
class MyDerivedType : public RTTIExtends<MyDerivedType, MyType> { public: static char ID; };
Definition at line 114 of file ExtensibleRTTI.h.
|
inlinestatic |
Definition at line 119 of file ExtensibleRTTI.h.
Referenced by llvm::RTTIExtends< ThisT, ParentT >::isA().
|
inlinestatic |
Definition at line 127 of file ExtensibleRTTI.h.
|
inlineoverride |
Reimplemented in llvm::RTTIExtends< RedirectingFileSystem, vfs::FileSystem >.
Definition at line 121 of file ExtensibleRTTI.h.
|
inlineoverride |
Reimplemented in llvm::RTTIExtends< RedirectingFileSystem, vfs::FileSystem >.
Definition at line 123 of file ExtensibleRTTI.h.
References llvm::RTTIExtends< ThisT, ParentT >::classID().