LLVM API Documentation

Classes | Public Types | Public Member Functions
llvm::ImmutableList< T > Class Template Reference

#include <ImmutableList.h>

List of all members.

Classes

class  iterator

Public Types

typedef T value_type
typedef ImmutableListFactory< TFactory

Public Member Functions

 ImmutableList (const ImmutableListImpl< T > *x=0)
const ImmutableListImpl< T > * getInternalPointer () const
iterator begin () const
iterator end () const
bool isEmpty () const
 isEmpty - Returns true if the list is empty.
bool contains (const T &V) const
bool isEqual (const ImmutableList &L) const
bool operator== (const ImmutableList &L) const
const TgetHead ()
 getHead - Returns the head of the list.
ImmutableList getTail ()
void Profile (FoldingSetNodeID &ID) const

Detailed Description

template<typename T>
class llvm::ImmutableList< T >

ImmutableList - This class represents an immutable (functional) list. It is implemented as a smart pointer (wraps ImmutableListImpl), so it it is intended to always be copied by value as if it were a pointer. This interface matches ImmutableSet and ImmutableMap. ImmutableList objects should almost never be created directly, and instead should be created by ImmutableListFactory objects that manage the lifetime of a group of lists. When the factory object is reclaimed, all lists created by that factory are released as well.

Definition at line 63 of file ImmutableList.h.


Member Typedef Documentation

template<typename T>
typedef ImmutableListFactory<T> llvm::ImmutableList< T >::Factory

Definition at line 66 of file ImmutableList.h.

template<typename T>
typedef T llvm::ImmutableList< T >::value_type

Definition at line 65 of file ImmutableList.h.


Constructor & Destructor Documentation

template<typename T>
llvm::ImmutableList< T >::ImmutableList ( const ImmutableListImpl< T > *  x = 0) [inline]

Definition at line 75 of file ImmutableList.h.


Member Function Documentation

template<typename T>
iterator llvm::ImmutableList< T >::begin ( ) const [inline]

begin - Returns an iterator referring to the head of the list, or an iterator denoting the end of the list if the list is empty.

Definition at line 96 of file ImmutableList.h.

Referenced by llvm::ImmutableList< T >::contains().

template<typename T>
bool llvm::ImmutableList< T >::contains ( const T V) const [inline]
template<typename T>
iterator llvm::ImmutableList< T >::end ( ) const [inline]

end - Returns an iterator denoting the end of the list. This iterator does not refer to a valid list element.

Definition at line 100 of file ImmutableList.h.

Referenced by llvm::ImmutableList< T >::contains().

template<typename T>
const T& llvm::ImmutableList< T >::getHead ( ) [inline]

getHead - Returns the head of the list.

Definition at line 123 of file ImmutableList.h.

References llvm::ImmutableList< T >::isEmpty().

template<typename T>
const ImmutableListImpl<T>* llvm::ImmutableList< T >::getInternalPointer ( ) const [inline]
template<typename T>
ImmutableList llvm::ImmutableList< T >::getTail ( ) [inline]

getTail - Returns the tail of the list, which is another (possibly empty) ImmutableList.

Definition at line 130 of file ImmutableList.h.

template<typename T>
bool llvm::ImmutableList< T >::isEmpty ( ) const [inline]

isEmpty - Returns true if the list is empty.

Definition at line 103 of file ImmutableList.h.

Referenced by llvm::ImmutableList< T >::getHead().

template<typename T>
bool llvm::ImmutableList< T >::isEqual ( const ImmutableList< T > &  L) const [inline]

isEqual - Returns true if two lists are equal. Because all lists created from the same ImmutableListFactory are uniqued, this has O(1) complexity because it the contents of the list do not need to be compared. Note that you should only compare two lists created from the same ImmutableListFactory.

Definition at line 118 of file ImmutableList.h.

Referenced by llvm::ImmutableList< T >::operator==().

template<typename T>
bool llvm::ImmutableList< T >::operator== ( const ImmutableList< T > &  L) const [inline]

Definition at line 120 of file ImmutableList.h.

References llvm::ImmutableList< T >::isEqual().

template<typename T>
void llvm::ImmutableList< T >::Profile ( FoldingSetNodeID ID) const [inline]

Definition at line 134 of file ImmutableList.h.

References llvm::FoldingSetNodeID::AddPointer().


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