Inheritance utility for extensible RTTI.
Declared in <llvm/Support/ExtensibleRTTI.h>
template<
typename ThisT,
typename ParentT,
typename... ParentTs>
class RTTIExtends
: public ParentT
, public ParentTs...
Multiple inheritance is supported, but RTTIExtends only inherits constructors from the first base class. All subsequent bases will be default constructed. Virtual and non-public inheritance are not supported.
RTTIExtents uses CRTP so the first template argument to RTTIExtends is the newly introduced type, and the second and later arguments are the parent classes.
class MyType : public RTTIExtends<MyType, RTTIRoot> {
public:
static char ID;
};
class MyDerivedType : public RTTIExtends<MyDerivedType, MyType> {
public:
static char ID;
};
class MyOtherType : public RTTIExtends<MyOtherType, MyType> {
public:
static char ID;
};
class MyMultipleInheritanceType
: public RTTIExtends<MyMultipleInheritanceType,
MyDerivedType, MyOtherType> {
public:
static char ID;
};
| Name | Description |
|---|---|
ParentT | |
ParentTs... |
| Name | Description |
|---|---|
dynamicClassID | Return the dynamic class ID for this instance. |
isA | Check whether this instance is a subclass of QueryT. |
isA | Return true if this object is an instance of ClassID or a parent. |
| Name | Description |
|---|---|
classID | Return the static class ID for ThisT. |
classof | Return true if R is an instance of ThisT (for Casting.h). |
| Name | Description |
|---|---|
Unnamed using | Inherit constructors from the first parent type. |
| Name | Description |
|---|---|
FileSystem | The virtual file system interface. |
GenericNamedTask | Base class for generic tasks. |
IdleTask | IdleTask can be used as the basis for low-priority tasks, e.g. speculative lookup. |
InMemoryFileSystem | An in-memory file system. |
LookupTask | Lookups are usually run on the current thread, but in some cases they may be run as tasks, e.g. if the lookup has been continued from a suspended state. |
MaterializationTask | A materialization task. |
NamedValuesSchema | A schema for representing an array of named nodes in a CAS. |
NodeSchema | A base class for schemas built on top of CAS nodes. |
NullOutputFileImpl | An OutputFileImpl that discards all written data. |
ObjectLayer | Interface for Layers that accept object files. |
ObjectLinkingLayer | An ObjectLayer implementation built on JITLink. |
ObjectTransformLayer | A layer that applies a transform to emitted object files. |
OutputFileImpl | Abstract backend implementation for a virtualized output file. |
OverlayFileSystem | A file system that allows overlaying one AbstractFileSystem on top of another. |
ProxyFileSystem | File system adapter that proxies calls to an underlying file system. |
RTDyldObjectLinkingLayer | An ObjectLayer implementation built on RuntimeDyld. |
RedirectingFileSystem | A virtual file system parsed from a YAML file. |
Task | Represents an abstract task for ORC to run. |
TracingFileSystemImpl | File system that counts calls to the underlying file system. |