OpenVDB  9.0.1
Public Types | Static Public Member Functions | List of all members
AliasTypeMap< T1, T2 > Struct Template Reference

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>

Public Types

using LLVMTypeT = LLVMType< T2 >
 

Static Public Member Functions

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)
 

Detailed Description

template<typename T1, typename T2>
struct openvdb::v9_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.

Member Typedef Documentation

using LLVMTypeT = LLVMType<T2>

Member Function Documentation

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