Public Member Functions | Private Attributes | List of all members
llvm_vecsmall::SmallVector< T, N > Class Template Reference

#include <SmallVector.h>

Inheritance diagram for llvm_vecsmall::SmallVector< T, N >:
Inheritance graph
[legend]

Public Member Functions

const SmallVectoroperator= (const SmallVector &RHS)
 
const SmallVectoroperator= (SmallVector &&RHS)
 
const SmallVectoroperator= (SmallVectorImpl< T > &&RHS)
 
const SmallVectoroperator= (std::initializer_list< T > IL)
 
 SmallVector ()
 
 SmallVector (const SmallVector &RHS)
 
template<typename ItTy >
 SmallVector (ItTy S, ItTy E)
 
 SmallVector (size_t Size, const T &Value=T())
 
 SmallVector (SmallVector &&RHS)
 
 SmallVector (SmallVectorImpl< T > &&RHS)
 
 SmallVector (std::initializer_list< T > IL)
 
- Public Member Functions inherited from llvm_vecsmall::SmallVectorImpl< T >
template<typename in_iter >
void append (in_iter in_start, in_iter in_end)
 Add the specified range to the end of the SmallVector. More...
 
void append (size_type NumInputs, const T &Elt)
 Add the specified range to the end of the SmallVector. More...
 
void append (std::initializer_list< T > IL)
 
void assign (size_type NumElts, const T &Elt)
 
void assign (std::initializer_list< T > IL)
 
void clear ()
 
template<typename... ArgTypes>
void emplace_back (ArgTypes &&... Args)
 
iterator erase (const_iterator CI)
 
iterator erase (const_iterator CS, const_iterator CE)
 
iterator insert (iterator I, const T &Elt)
 
template<typename ItTy >
iterator insert (iterator I, ItTy From, ItTy To)
 
iterator insert (iterator I, size_type NumToInsert, const T &Elt)
 
void insert (iterator I, std::initializer_list< T > IL)
 
iterator insert (iterator I, T &&Elt)
 
bool operator!= (const SmallVectorImpl &RHS) const
 
bool operator< (const SmallVectorImpl &RHS) const
 
SmallVectorImploperator= (const SmallVectorImpl &RHS)
 
SmallVectorImploperator= (SmallVectorImpl &&RHS)
 
bool operator== (const SmallVectorImpl &RHS) const
 
LLVM_VECSMALL_NODISCARDpop_back_val ()
 
void reserve (size_type N)
 
void resize (size_type N)
 
void resize (size_type N, const T &NV)
 
void set_size (size_type N)
 
void swap (SmallVectorImpl &RHS)
 
 ~SmallVectorImpl ()
 
- Public Member Functions inherited from llvm_vecsmall::SmallVectorTemplateBase< T, IsPod< T >::value >
void pop_back ()
 
void push_back (const T &Elt)
 
void push_back (T &&Elt)
 
- Public Member Functions inherited from llvm_vecsmall::SmallVectorTemplateCommon< T >
reference back ()
 
const_reference back () const
 
LLVM_VECSMALL_ATTRIBUTE_ALWAYS_INLINE iterator begin ()
 
LLVM_VECSMALL_ATTRIBUTE_ALWAYS_INLINE const_iterator begin () const
 
size_t capacity () const
 Return the total number of elements in the currently allocated buffer. More...
 
pointer data ()
 Return a pointer to the vector's buffer, even if empty(). More...
 
const_pointer data () const
 Return a pointer to the vector's buffer, even if empty(). More...
 
LLVM_VECSMALL_ATTRIBUTE_ALWAYS_INLINE iterator end ()
 
LLVM_VECSMALL_ATTRIBUTE_ALWAYS_INLINE const_iterator end () const
 
reference front ()
 
const_reference front () const
 
size_type max_size () const
 
LLVM_VECSMALL_ATTRIBUTE_ALWAYS_INLINE reference operator[] (size_type idx)
 
LLVM_VECSMALL_ATTRIBUTE_ALWAYS_INLINE const_reference operator[] (size_type idx) const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
LLVM_VECSMALL_ATTRIBUTE_ALWAYS_INLINE size_type size () const
 
- Public Member Functions inherited from llvm_vecsmall::SmallVectorBase
size_t capacity_in_bytes () const
 capacity_in_bytes - This returns capacity()*sizeof(T). More...
 
LLVM_VECSMALL_NODISCARD bool empty () const
 
size_t size_in_bytes () const
 This returns size()*sizeof(T). More...
 

Private Attributes

SmallVectorStorage< T, N > Storage
 Inline space for elements which aren't stored in the base class. More...
 

Additional Inherited Members

- Public Types inherited from llvm_vecsmall::SmallVectorImpl< T >
typedef SuperClass::const_iterator const_iterator
 
typedef SuperClass::iterator iterator
 
typedef SuperClass::size_type size_type
 
- Public Types inherited from llvm_vecsmall::SmallVectorTemplateCommon< T >
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 
typedef ptrdiff_t difference_type
 
typedef T * iterator
 
typedef T * pointer
 
typedef T & reference
 
typedef std::reverse_iterator< iteratorreverse_iterator
 
typedef size_t size_type
 
typedef T value_type
 
- Public Attributes inherited from llvm_vecsmall::SmallVectorTemplateCommon< T >
const typedef T * const_iterator
 
const typedef T * const_pointer
 
const typedef T & const_reference
 
- Protected Member Functions inherited from llvm_vecsmall::SmallVectorImpl< T >
 SmallVectorImpl (unsigned N)
 
- Protected Member Functions inherited from llvm_vecsmall::SmallVectorTemplateBase< T, IsPod< T >::value >
void grow (size_t MinSize=0)
 
 SmallVectorTemplateBase (size_t Size)
 
- Protected Member Functions inherited from llvm_vecsmall::SmallVectorTemplateCommon< T >
iterator capacity_ptr ()
 
const_iterator capacity_ptr () const
 
void grow_pod (size_t MinSizeInBytes, size_t TSize)
 
bool isSmall () const
 
void resetToSmall ()
 Put this vector in a state of being small. More...
 
void setEnd (T *P)
 
 SmallVectorTemplateCommon (size_t Size)
 
- Protected Member Functions inherited from llvm_vecsmall::SmallVectorBase
void grow_pod (void *FirstEl, size_t MinSizeInBytes, size_t TSize)
 
 SmallVectorBase (void *FirstEl, size_t Size)
 
- Static Protected Member Functions inherited from llvm_vecsmall::SmallVectorTemplateBase< T, IsPod< T >::value >
static void destroy_range (T *S, T *E)
 
static void uninitialized_copy (It1 I, It1 E, It2 Dest)
 
static void uninitialized_move (It1 I, It1 E, It2 Dest)
 
- Protected Attributes inherited from llvm_vecsmall::SmallVectorBase
void * BeginX
 
void * CapacityX
 
void * EndX
 

Detailed Description

template<typename T, unsigned N>
class llvm_vecsmall::SmallVector< T, N >

This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small. It contains some number of elements in-place, which allows it to avoid heap allocation when the actual number of elements is below that threshold. This allows normal "small" cases to be fast without losing generality for large inputs.

Note that this does not attempt to be exception safe.

Definition at line 1029 of file SmallVector.h.

Constructor & Destructor Documentation

◆ SmallVector() [1/7]

template<typename T , unsigned N>
llvm_vecsmall::SmallVector< T, N >::SmallVector ( )
inline

Definition at line 1035 of file SmallVector.h.

◆ SmallVector() [2/7]

template<typename T , unsigned N>
llvm_vecsmall::SmallVector< T, N >::SmallVector ( size_t  Size,
const T &  Value = T() 
)
inlineexplicit

Definition at line 1039 of file SmallVector.h.

◆ SmallVector() [3/7]

template<typename T , unsigned N>
template<typename ItTy >
llvm_vecsmall::SmallVector< T, N >::SmallVector ( ItTy  S,
ItTy  E 
)
inline

Definition at line 1045 of file SmallVector.h.

◆ SmallVector() [4/7]

template<typename T , unsigned N>
llvm_vecsmall::SmallVector< T, N >::SmallVector ( std::initializer_list< T >  IL)
inline

Definition at line 1058 of file SmallVector.h.

◆ SmallVector() [5/7]

template<typename T , unsigned N>
llvm_vecsmall::SmallVector< T, N >::SmallVector ( const SmallVector< T, N > &  RHS)
inline

Definition at line 1063 of file SmallVector.h.

◆ SmallVector() [6/7]

template<typename T , unsigned N>
llvm_vecsmall::SmallVector< T, N >::SmallVector ( SmallVector< T, N > &&  RHS)
inline

Definition at line 1075 of file SmallVector.h.

◆ SmallVector() [7/7]

template<typename T , unsigned N>
llvm_vecsmall::SmallVector< T, N >::SmallVector ( SmallVectorImpl< T > &&  RHS)
inline

Definition at line 1087 of file SmallVector.h.

Member Function Documentation

◆ operator=() [1/4]

template<typename T , unsigned N>
const SmallVector& llvm_vecsmall::SmallVector< T, N >::operator= ( const SmallVector< T, N > &  RHS)
inline

Definition at line 1069 of file SmallVector.h.

◆ operator=() [2/4]

template<typename T , unsigned N>
const SmallVector& llvm_vecsmall::SmallVector< T, N >::operator= ( SmallVector< T, N > &&  RHS)
inline

Definition at line 1081 of file SmallVector.h.

◆ operator=() [3/4]

template<typename T , unsigned N>
const SmallVector& llvm_vecsmall::SmallVector< T, N >::operator= ( SmallVectorImpl< T > &&  RHS)
inline

Definition at line 1093 of file SmallVector.h.

◆ operator=() [4/4]

template<typename T , unsigned N>
const SmallVector& llvm_vecsmall::SmallVector< T, N >::operator= ( std::initializer_list< T >  IL)
inline

Definition at line 1099 of file SmallVector.h.

Member Data Documentation

◆ Storage

template<typename T , unsigned N>
SmallVectorStorage<T, N> llvm_vecsmall::SmallVector< T, N >::Storage
private

Inline space for elements which aren't stored in the base class.

Definition at line 1032 of file SmallVector.h.


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


plotjuggler
Author(s): Davide Faconti
autogenerated on Sun Aug 11 2024 02:24:30