LLVM API Documentation

Classes | Public Types | Public Member Functions | Static Public Member Functions
llvm::PointerUnion3< PT1, PT2, PT3 > Class Template Reference

#include <PointerUnion.h>

List of all members.

Classes

struct  IsInnerUnion
struct  IsPT3

Public Types

typedef PointerUnion< PT1, PT2 > InnerUnion
typedef PointerUnion
< InnerUnion, PT3 > 
ValTy

Public Member Functions

 PointerUnion3 ()
 PointerUnion3 (PT1 V)
 PointerUnion3 (PT2 V)
 PointerUnion3 (PT3 V)
bool isNull () const
LLVM_EXPLICIT operator bool () const
template<typename T >
int is () const
 is<T>() return true if the Union currently holds the type matching T.
template<typename T >
T get () const
template<typename T >
T dyn_cast () const
const PointerUnion3operator= (std::nullptr_t)
 Assignment from nullptr which just clears the union.
const PointerUnion3operator= (const PT1 &RHS)
const PointerUnion3operator= (const PT2 &RHS)
const PointerUnion3operator= (const PT3 &RHS)
void * getOpaqueValue () const

Static Public Member Functions

static PointerUnion3 getFromOpaqueValue (void *VP)

Detailed Description

template<typename PT1, typename PT2, typename PT3>
class llvm::PointerUnion3< PT1, PT2, PT3 >

PointerUnion3 - This is a pointer union of three pointer types. See documentation for PointerUnion for usage.

Definition at line 224 of file PointerUnion.h.


Member Typedef Documentation

template<typename PT1, typename PT2, typename PT3>
typedef PointerUnion<PT1, PT2> llvm::PointerUnion3< PT1, PT2, PT3 >::InnerUnion

Definition at line 226 of file PointerUnion.h.

template<typename PT1, typename PT2, typename PT3>
typedef PointerUnion<InnerUnion, PT3> llvm::PointerUnion3< PT1, PT2, PT3 >::ValTy

Definition at line 227 of file PointerUnion.h.


Constructor & Destructor Documentation

template<typename PT1, typename PT2, typename PT3>
llvm::PointerUnion3< PT1, PT2, PT3 >::PointerUnion3 ( ) [inline]

Definition at line 259 of file PointerUnion.h.

template<typename PT1, typename PT2, typename PT3>
llvm::PointerUnion3< PT1, PT2, PT3 >::PointerUnion3 ( PT1  V) [inline]

Definition at line 261 of file PointerUnion.h.

template<typename PT1, typename PT2, typename PT3>
llvm::PointerUnion3< PT1, PT2, PT3 >::PointerUnion3 ( PT2  V) [inline]

Definition at line 264 of file PointerUnion.h.

template<typename PT1, typename PT2, typename PT3>
llvm::PointerUnion3< PT1, PT2, PT3 >::PointerUnion3 ( PT3  V) [inline]

Definition at line 267 of file PointerUnion.h.


Member Function Documentation

template<typename PT1, typename PT2, typename PT3>
template<typename T >
T llvm::PointerUnion3< PT1, PT2, PT3 >::dyn_cast ( ) const [inline]

dyn_cast<T>() - If the current value is of the specified pointer type, return it, otherwise return null.

Definition at line 303 of file PointerUnion.h.

References T.

template<typename PT1, typename PT2, typename PT3>
template<typename T >
T llvm::PointerUnion3< PT1, PT2, PT3 >::get ( ) const [inline]

get<T>() - Return the value of the specified pointer type. If the specified pointer type is incorrect, assert.

Definition at line 290 of file PointerUnion.h.

References llvm::GC::Return, and T.

template<typename PT1, typename PT2, typename PT3>
static PointerUnion3 llvm::PointerUnion3< PT1, PT2, PT3 >::getFromOpaqueValue ( void *  VP) [inline, static]
template<typename PT1, typename PT2, typename PT3>
void* llvm::PointerUnion3< PT1, PT2, PT3 >::getOpaqueValue ( ) const [inline]
template<typename PT1, typename PT2, typename PT3>
template<typename T >
int llvm::PointerUnion3< PT1, PT2, PT3 >::is ( ) const [inline]

is<T>() return true if the Union currently holds the type matching T.

Definition at line 278 of file PointerUnion.h.

References llvm::GC::Return, and T.

template<typename PT1, typename PT2, typename PT3>
bool llvm::PointerUnion3< PT1, PT2, PT3 >::isNull ( ) const [inline]

isNull - Return true if the pointer held in the union is null, regardless of which type it is.

Definition at line 273 of file PointerUnion.h.

References llvm::PointerUnion< PT1, PT2 >::isNull().

Referenced by llvm::PointerUnion3< PT1, PT2, PT3 >::operator bool().

template<typename PT1, typename PT2, typename PT3>
LLVM_EXPLICIT llvm::PointerUnion3< PT1, PT2, PT3 >::operator bool ( ) const [inline]

Definition at line 274 of file PointerUnion.h.

References llvm::PointerUnion3< PT1, PT2, PT3 >::isNull().

template<typename PT1, typename PT2, typename PT3>
const PointerUnion3& llvm::PointerUnion3< PT1, PT2, PT3 >::operator= ( std::nullptr_t  ) [inline]

Assignment from nullptr which just clears the union.

Definition at line 309 of file PointerUnion.h.

template<typename PT1, typename PT2, typename PT3>
const PointerUnion3& llvm::PointerUnion3< PT1, PT2, PT3 >::operator= ( const PT1 &  RHS) [inline]

Assignment operators - Allow assigning into this union from either pointer type, setting the discriminator to remember what it came from.

Definition at line 316 of file PointerUnion.h.

template<typename PT1, typename PT2, typename PT3>
const PointerUnion3& llvm::PointerUnion3< PT1, PT2, PT3 >::operator= ( const PT2 &  RHS) [inline]

Definition at line 320 of file PointerUnion.h.

template<typename PT1, typename PT2, typename PT3>
const PointerUnion3& llvm::PointerUnion3< PT1, PT2, PT3 >::operator= ( const PT3 &  RHS) [inline]

Definition at line 324 of file PointerUnion.h.


The documentation for this class was generated from the following file: