Template Class SmallVectorTemplateBase

Inheritance Relationships

Base Type

Derived Types

Class Documentation

template<typename T, bool isPodLike>
class SmallVectorTemplateBase : public llvm_vecsmall::SmallVectorTemplateCommon<T>

SmallVectorTemplateBase<isPodLike = false> - This is where we put method implementations that are designed to work with non-POD-like T’s.

Subclassed by llvm_vecsmall::SmallVectorImpl< uint16_t >, llvm_vecsmall::SmallVectorImpl< KeySuffix >, llvm_vecsmall::SmallVectorImpl< int >, llvm_vecsmall::SmallVectorImpl< MemberScope >

Public Functions

inline void push_back(const T &Elt)
inline void push_back(T &&Elt)
inline void pop_back()

Protected Functions

inline SmallVectorTemplateBase(size_t Size)
void grow(size_t MinSize = 0)

Grow the allocated memory (without initializing new elements), doubling the size of the allocated memory. Guarantees space for at least one more element, or MinSize more elements if specified.

Protected Static Functions

static inline void destroy_range(T *S, T *E)
template<typename It1, typename It2>
static inline void uninitialized_move(It1 I, It1 E, It2 Dest)

Move the range [I, E) into the uninitialized memory starting with “Dest”, constructing elements as needed.

template<typename It1, typename It2>
static inline void uninitialized_copy(It1 I, It1 E, It2 Dest)

Copy the range [I, E) onto the uninitialized memory starting with “Dest”, constructing elements as needed.