WPILibC++  2019.3.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
wpi::SmallVectorTemplateBase< T, true > Class Template Reference

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

#include <SmallVector.h>

Inheritance diagram for wpi::SmallVectorTemplateBase< T, true >:
wpi::SmallVectorTemplateCommon< T > wpi::SmallVectorBase

Public Member Functions

void push_back (const T &Elt)
 
void pop_back ()
 
- Public Member Functions inherited from wpi::SmallVectorTemplateCommon< T >
LLVM_ATTRIBUTE_ALWAYS_INLINE
iterator 
begin ()
 
LLVM_ATTRIBUTE_ALWAYS_INLINE
const_iterator 
begin () const
 
LLVM_ATTRIBUTE_ALWAYS_INLINE
iterator 
end ()
 
LLVM_ATTRIBUTE_ALWAYS_INLINE
const_iterator 
end () const
 
reverse_iterator rbegin ()
 
const_reverse_iterator rbegin () const
 
reverse_iterator rend ()
 
const_reverse_iterator rend () const
 
LLVM_ATTRIBUTE_ALWAYS_INLINE
size_type 
size () const
 
size_type max_size () const
 
size_t capacity () const
 Return the total number of elements in the currently allocated buffer.
 
pointer data ()
 Return a pointer to the vector's buffer, even if empty().
 
const_pointer data () const
 Return a pointer to the vector's buffer, even if empty().
 
LLVM_ATTRIBUTE_ALWAYS_INLINE
reference 
operator[] (size_type idx)
 
LLVM_ATTRIBUTE_ALWAYS_INLINE
const_reference 
operator[] (size_type idx) const
 
reference front ()
 
const_reference front () const
 
reference back ()
 
const_reference back () const
 
- Public Member Functions inherited from wpi::SmallVectorBase
size_t size_in_bytes () const
 This returns size()*sizeof(T).
 
size_t capacity_in_bytes () const
 capacity_in_bytes - This returns capacity()*sizeof(T).
 
LLVM_NODISCARD bool empty () const
 

Protected Member Functions

 SmallVectorTemplateBase (size_t Size)
 
void grow (size_t MinSize=0)
 Double the size of the allocated memory, guaranteeing space for at least one more element or MinSize if specified. More...
 
- Protected Member Functions inherited from wpi::SmallVectorTemplateCommon< T >
 SmallVectorTemplateCommon (size_t Size)
 
void grow_pod (size_t MinSizeInBytes, size_t TSize)
 
bool isSmall () const
 Return true if this is a smallvector which has not had dynamic memory allocated for it. More...
 
void resetToSmall ()
 Put this vector in a state of being small.
 
void setEnd (T *P)
 
iterator capacity_ptr ()
 
const_iterator capacity_ptr () const
 
- Protected Member Functions inherited from wpi::SmallVectorBase
 SmallVectorBase (void *FirstEl, size_t Size)
 
void grow_pod (void *FirstEl, size_t MinSizeInBytes, size_t TSize)
 This is an implementation of the grow() method which only works on POD-like data types and is out of line to reduce code duplication. More...
 

Static Protected Member Functions

static void destroy_range (T *, T *)
 
template<typename It1 , typename It2 >
static void uninitialized_move (It1 I, It1 E, It2 Dest)
 Move the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed. More...
 
template<typename It1 , typename It2 >
static void uninitialized_copy (It1 I, It1 E, It2 Dest)
 Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed. More...
 
template<typename T1 , typename T2 >
static void uninitialized_copy (T1 *I, T1 *E, T2 *Dest, typename std::enable_if< std::is_same< typename std::remove_const< T1 >::type, T2 >::value >::type *=nullptr)
 Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed. More...
 

Additional Inherited Members

- Public Types inherited from wpi::SmallVectorTemplateCommon< T >
using size_type = size_t
 
using difference_type = ptrdiff_t
 
using value_type = T
 
using iterator = T *
 
using const_iterator = const T *
 
using const_reverse_iterator = std::reverse_iterator< const_iterator >
 
using reverse_iterator = std::reverse_iterator< iterator >
 
using reference = T &
 
using const_reference = const T &
 
using pointer = T *
 
using const_pointer = const T *
 
- Protected Attributes inherited from wpi::SmallVectorBase
void * BeginX
 
void * EndX
 
void * CapacityX
 

Detailed Description

template<typename T>
class wpi::SmallVectorTemplateBase< T, true >

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

Member Function Documentation

template<typename T >
void wpi::SmallVectorTemplateBase< T, true >::grow ( size_t  MinSize = 0)
inlineprotected

Double the size of the allocated memory, guaranteeing space for at least one more element or MinSize if specified.

template<typename T >
template<typename It1 , typename It2 >
static void wpi::SmallVectorTemplateBase< T, true >::uninitialized_copy ( It1  I,
It1  E,
It2  Dest 
)
inlinestaticprotected

Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.

template<typename T >
template<typename T1 , typename T2 >
static void wpi::SmallVectorTemplateBase< T, true >::uninitialized_copy ( T1 *  I,
T1 *  E,
T2 *  Dest,
typename std::enable_if< std::is_same< typename std::remove_const< T1 >::type, T2 >::value >::type *  = nullptr 
)
inlinestaticprotected

Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.

template<typename T >
template<typename It1 , typename It2 >
static void wpi::SmallVectorTemplateBase< T, true >::uninitialized_move ( It1  I,
It1  E,
It2  Dest 
)
inlinestaticprotected

Move the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.


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