WPILibC++
2019.1.1-beta-2-5-g55493b0
|
SmallVectorTemplateBase<isPodLike = false> - This is where we put method implementations that are designed to work with non-POD-like T's. More...
#include <SmallVector.h>
Public Member Functions | |
void | push_back (const T &Elt) |
void | push_back (T &&Elt) |
void | pop_back () |
![]() | |
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 |
![]() | |
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) |
Grow the allocated memory (without initializing new elements), doubling the size of the allocated memory. More... | |
![]() | |
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 |
![]() | |
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 *S, T *E) |
template<typename It1 , typename It2 > | |
static 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. 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 as needed. More... | |
Additional Inherited Members | |
![]() | |
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 * |
![]() | |
void * | BeginX |
void * | EndX |
void * | CapacityX |
SmallVectorTemplateBase<isPodLike = false> - This is where we put method implementations that are designed to work with non-POD-like T's.
|
protected |
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.
|
inlinestaticprotected |
Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements as needed.
|
inlinestaticprotected |
Move the range [I, E) into the uninitialized memory starting with "Dest", constructing elements as needed.