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

A pointer union of three pointer types. More...

#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
 Test if the pointer held in the union is null, regardless of which type it is.
 operator bool () const
template<typename T >
int is () const
 Test if the Union currently holds the type matching T.
template<typename T >
T get () const
 Returns the value of the specified pointer type.
template<typename T >
T dyn_cast () const
 Returns the current pointer if it is of the specified pointer type, otherwises returns null.
const PointerUnion3operator= (std::nullptr_t)
 Assignment from nullptr which just clears the union.
const PointerUnion3operator= (const PT1 &RHS)
 Assignment operators - Allow assigning into this union from either pointer type, setting the discriminator to remember what it came from.
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 >

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 252 of file PointerUnion.h.

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

Definition at line 254 of file PointerUnion.h.

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

Definition at line 255 of file PointerUnion.h.

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

Definition at line 256 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]

Returns the current pointer if it is of the specified pointer type, otherwises returns null.

Definition at line 288 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]

Returns the value of the specified pointer type.

If the specified pointer type is incorrect, assert.

Definition at line 276 of file PointerUnion.h.

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

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

Definition at line 316 of file PointerUnion.h.

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]

Test if the Union currently holds the type matching T.

Definition at line 264 of file PointerUnion.h.

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

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

Test if the pointer held in the union is null, regardless of which type it is.

Definition at line 260 of file PointerUnion.h.

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

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

Definition at line 261 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 295 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 302 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 306 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 310 of file PointerUnion.h.


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