Alias mapping between two types, a frontend type T1 and a backend type T2. This class is the intended interface for binding objects which implement supported backend AX/IR types to this given backend type. More specifically, it's current and expected usage is limited to objects which hold a single member of a supported backend type and implements a StandardLayoutType as defined by the standard. Fundamentally, T1->T2 mapping should be supported by reinterpret_cast<> as defined by the type aliasing rules.
More...
#include <openvdb_ax/codegen/Types.h>
|
static llvm::Type * | get (llvm::LLVMContext &C) |
|
static llvm::Constant * | get (llvm::LLVMContext &C, const T1 &value) |
|
static llvm::Constant * | get (llvm::LLVMContext &C, const T1 *const value) |
|
template<typename T1, typename T2>
struct openvdb::v12_0::ax::codegen::AliasTypeMap< T1, T2 >
Alias mapping between two types, a frontend type T1 and a backend type T2. This class is the intended interface for binding objects which implement supported backend AX/IR types to this given backend type. More specifically, it's current and expected usage is limited to objects which hold a single member of a supported backend type and implements a StandardLayoutType as defined by the standard. Fundamentally, T1->T2 mapping should be supported by reinterpret_cast<> as defined by the type aliasing rules.
- Note
- The static asserts provide preliminary checks but are by no means a guarantee that a provided mapping is correct. Ensure the above requirements are met when instantiating an alias.
static llvm::Type* get |
( |
llvm::LLVMContext & |
C | ) |
|
|
inlinestatic |
static llvm::Constant* get |
( |
llvm::LLVMContext & |
C, |
|
|
const T1 & |
value |
|
) |
| |
|
inlinestatic |
static llvm::Constant* get |
( |
llvm::LLVMContext & |
C, |
|
|
const T1 *const |
value |
|
) |
| |
|
inlinestatic |