class SmallVectorTemplateCommon

Declaration

template <typename T, typename = void>
class SmallVectorTemplateCommon { /* full declaration omitted */ };

Description

This is the part of SmallVectorTemplateBase which does not depend on whether the type T is a POD. The extra dummy template argument is used by ArrayRef to avoid unnecessarily requiring T to be complete.

Declared at: llvm/include/llvm/ADT/SmallVector.h:102

Templates

T
= void

Method Overview

  • protected SmallVectorTemplateCommon<T, type-parameter-0-1>(size_t Size)
  • protected void assertSafeToAdd(const void * Elt, size_t N = 1)
  • protected template <class ItTy, std::enable_if_t<!std::is_same<std::remove_const_t<ItTy>, T *>::value, bool> = false>void assertSafeToAddRange(ItTy, ItTy)
  • protected void assertSafeToAddRange(const T * From, const T * To)
  • protected template <class ItTy, std::enable_if_t<!std::is_same<std::remove_const_t<ItTy>, T *>::value, bool> = false>void assertSafeToReferenceAfterClear(ItTy, ItTy)
  • protected void assertSafeToReferenceAfterClear(const T * From, const T * To)
  • protected void assertSafeToReferenceAfterResize(const void * Elt, size_t NewSize)
  • public llvm::SmallVectorTemplateCommon::const_reference back() const
  • public llvm::SmallVectorTemplateCommon::reference back()
  • public llvm::SmallVectorTemplateCommon::iterator begin()
  • public llvm::SmallVectorTemplateCommon::const_iterator begin() const
  • public size_t capacity_in_bytes() const
  • public llvm::SmallVectorTemplateCommon::const_pointer data() const
  • public llvm::SmallVectorTemplateCommon::pointer data()
  • public llvm::SmallVectorTemplateCommon::const_iterator end() const
  • public llvm::SmallVectorTemplateCommon::iterator end()
  • public llvm::SmallVectorTemplateCommon::const_reference front() const
  • public llvm::SmallVectorTemplateCommon::reference front()
  • private void * getFirstEl() const
  • protected void grow_pod(size_t MinSize, size_t TSize)
  • protected bool isRangeInStorage(const void * First, const void * Last) const
  • protected bool isReferenceToRange(const void * V, const void * First, const void * Last) const
  • protected bool isReferenceToStorage(const void * V) const
  • protected bool isSafeToReferenceAfterResize(const void * Elt, size_t NewSize)
  • protected bool isSmall() const
  • public llvm::SmallVectorTemplateCommon::size_type max_size() const
  • public llvm::SmallVectorTemplateCommon::const_reverse_iterator rbegin() const
  • public llvm::SmallVectorTemplateCommon::reverse_iterator rbegin()
  • public llvm::SmallVectorTemplateCommon::const_reverse_iterator rend() const
  • public llvm::SmallVectorTemplateCommon::reverse_iterator rend()
  • protected template <class U>static const T * reserveForParamAndGetAddressImpl(U * This, const T & Elt, size_t N)
  • protected void resetToSmall()
  • public llvm::SmallVectorTemplateCommon::size_type size_in_bytes() const

Methods

SmallVectorTemplateCommon<T,
                          type - parameter - 0 -
                              1>(size_t Size)

Declared at: llvm/include/llvm/ADT/SmallVector.h:117

Parameters

size_t Size

void assertSafeToAdd(const void* Elt,
                     size_t N = 1)

Description

Check whether Elt will be invalidated by increasing the size of the vector by N.

Declared at: llvm/include/llvm/ADT/SmallVector.h:178

Parameters

const void* Elt
size_t N = 1

template <
    class ItTy,
    std::enable_if_t<
        !std::is_same<std::remove_const_t<ItTy>,
                      T*>::value,
        bool> = false>
void assertSafeToAddRange(ItTy, ItTy)

Declared at: llvm/include/llvm/ADT/SmallVector.h:206

Templates

ItTy
std::enable_if_t, T *>::value, bool> = false

Parameters

ItTy
ItTy

void assertSafeToAddRange(const T* From,
                          const T* To)

Description

Check whether any part of the range will be invalidated by growing.

Declared at: llvm/include/llvm/ADT/SmallVector.h:196

Parameters

const T* From
const T* To

template <
    class ItTy,
    std::enable_if_t<
        !std::is_same<std::remove_const_t<ItTy>,
                      T*>::value,
        bool> = false>
void assertSafeToReferenceAfterClear(ItTy, ItTy)

Declared at: llvm/include/llvm/ADT/SmallVector.h:193

Templates

ItTy
std::enable_if_t, T *>::value, bool> = false

Parameters

ItTy
ItTy

void assertSafeToReferenceAfterClear(
    const T* From,
    const T* To)

Description

Check whether any part of the range will be invalidated by clearing.

Declared at: llvm/include/llvm/ADT/SmallVector.h:183

Parameters

const T* From
const T* To

void assertSafeToReferenceAfterResize(
    const void* Elt,
    size_t NewSize)

Description

Check whether Elt will be invalidated by resizing the vector to NewSize.

Declared at: llvm/include/llvm/ADT/SmallVector.h:170

Parameters

const void* Elt
size_t NewSize

llvm::SmallVectorTemplateCommon::const_reference
back() const

Declared at: llvm/include/llvm/ADT/SmallVector.h:294

llvm::SmallVectorTemplateCommon::reference back()

Declared at: llvm/include/llvm/ADT/SmallVector.h:290

llvm::SmallVectorTemplateCommon::iterator begin()

Declared at: llvm/include/llvm/ADT/SmallVector.h:249

llvm::SmallVectorTemplateCommon::const_iterator
begin() const

Declared at: llvm/include/llvm/ADT/SmallVector.h:250

size_t capacity_in_bytes() const

Declared at: llvm/include/llvm/ADT/SmallVector.h:265

llvm::SmallVectorTemplateCommon::const_pointer
data() const

Description

Return a pointer to the vector's buffer, even if empty().

Declared at: llvm/include/llvm/ADT/SmallVector.h:270

llvm::SmallVectorTemplateCommon::pointer data()

Description

Return a pointer to the vector's buffer, even if empty().

Declared at: llvm/include/llvm/ADT/SmallVector.h:268

llvm::SmallVectorTemplateCommon::const_iterator
end() const

Declared at: llvm/include/llvm/ADT/SmallVector.h:252

llvm::SmallVectorTemplateCommon::iterator end()

Declared at: llvm/include/llvm/ADT/SmallVector.h:251

llvm::SmallVectorTemplateCommon::const_reference
front() const

Declared at: llvm/include/llvm/ADT/SmallVector.h:285

llvm::SmallVectorTemplateCommon::reference front()

Declared at: llvm/include/llvm/ADT/SmallVector.h:281

void* getFirstEl() const

Description

Find the address of the first element. For this pointer math to be valid with small-size of 0 for T with lots of alignment, it's important that SmallVectorStorage is properly-aligned even for small-size of 0.

Declared at: llvm/include/llvm/ADT/SmallVector.h:109

void grow_pod(size_t MinSize, size_t TSize)

Declared at: llvm/include/llvm/ADT/SmallVector.h:119

Parameters

size_t MinSize
size_t TSize

bool isRangeInStorage(const void* First,
                      const void* Last) const

Description

Return true if First and Last form a valid (possibly empty) range in this vector's storage.

Declared at: llvm/include/llvm/ADT/SmallVector.h:147

Parameters

const void* First
const void* Last

bool isReferenceToRange(const void* V,
                        const void* First,
                        const void* Last) const

Description

Return true if V is an internal reference to the given range.

Declared at: llvm/include/llvm/ADT/SmallVector.h:134

Parameters

const void* V
const void* First
const void* Last

bool isReferenceToStorage(const void* V) const

Description

Return true if V is an internal reference to this vector.

Declared at: llvm/include/llvm/ADT/SmallVector.h:141

Parameters

const void* V

bool isSafeToReferenceAfterResize(const void* Elt,
                                  size_t NewSize)

Description

Return true unless Elt will be invalidated by resizing the vector to NewSize.

Declared at: llvm/include/llvm/ADT/SmallVector.h:156

Parameters

const void* Elt
size_t NewSize

bool isSmall() const

Description

Return true if this is a smallvector which has not had dynamic memory allocated for it.

Declared at: llvm/include/llvm/ADT/SmallVector.h:125

llvm::SmallVectorTemplateCommon::size_type
max_size() const

Declared at: llvm/include/llvm/ADT/SmallVector.h:261

llvm::SmallVectorTemplateCommon::
    const_reverse_iterator
    rbegin() const

Declared at: llvm/include/llvm/ADT/SmallVector.h:256

llvm::SmallVectorTemplateCommon::reverse_iterator
rbegin()

Declared at: llvm/include/llvm/ADT/SmallVector.h:255

llvm::SmallVectorTemplateCommon::
    const_reverse_iterator
    rend() const

Declared at: llvm/include/llvm/ADT/SmallVector.h:258

llvm::SmallVectorTemplateCommon::reverse_iterator
rend()

Declared at: llvm/include/llvm/ADT/SmallVector.h:257

template <class U>
static const T* reserveForParamAndGetAddressImpl(
    U* This,
    const T& Elt,
    size_t N)

Description

Reserve enough space to add one element, and return the updated element pointer in case it was a reference to the storage.

Declared at: llvm/include/llvm/ADT/SmallVector.h:211

Templates

U

Parameters

U* This
const T& Elt
size_t N

void resetToSmall()

Description

Put this vector in a state of being small.

Declared at: llvm/include/llvm/ADT/SmallVector.h:128

llvm::SmallVectorTemplateCommon::size_type
size_in_bytes() const

Declared at: llvm/include/llvm/ADT/SmallVector.h:260