LLVM  6.0.0svn
Classes | Namespaces | Functions
IntrusiveRefCntPtr.h File Reference
#include <atomic>
#include <cassert>
#include <cstddef>
Include dependency graph for IntrusiveRefCntPtr.h:

Go to the source code of this file.

Classes

class  llvm::RefCountedBase< Derived >
 A CRTP mixin class that adds reference counting to a type. More...
 
class  llvm::ThreadSafeRefCountedBase< Derived >
 A thread-safe version of RefCountedBase. More...
 
struct  llvm::IntrusiveRefCntPtrInfo< T >
 Class you can specialize to provide custom retain/release functionality for a type. More...
 
class  llvm::IntrusiveRefCntPtr< T >
 A smart pointer to a reference-counted object that inherits from RefCountedBase or ThreadSafeRefCountedBase. More...
 
struct  llvm::simplify_type< From >
 
struct  llvm::simplify_type< IntrusiveRefCntPtr< T > >
 
struct  llvm::simplify_type< const IntrusiveRefCntPtr< T > >
 

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Functions

template<class T , class U >
bool llvm::operator== (const IntrusiveRefCntPtr< T > &A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool llvm::operator!= (const IntrusiveRefCntPtr< T > &A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool llvm::operator== (const IntrusiveRefCntPtr< T > &A, U *B)
 
template<class T , class U >
bool llvm::operator!= (const IntrusiveRefCntPtr< T > &A, U *B)
 
template<class T , class U >
bool llvm::operator== (T *A, const IntrusiveRefCntPtr< U > &B)
 
template<class T , class U >
bool llvm::operator!= (T *A, const IntrusiveRefCntPtr< U > &B)
 
template<class T >
bool llvm::operator== (std::nullptr_t A, const IntrusiveRefCntPtr< T > &B)
 
template<class T >
bool llvm::operator== (const IntrusiveRefCntPtr< T > &A, std::nullptr_t B)
 
template<class T >
bool llvm::operator!= (std::nullptr_t A, const IntrusiveRefCntPtr< T > &B)
 
template<class T >
bool llvm::operator!= (const IntrusiveRefCntPtr< T > &A, std::nullptr_t B)