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>
|
|
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 |
| |
|
size_type | size_in_bytes () const |
| |
|
size_type | max_size () const |
| |
|
size_t | capacity_in_bytes () const |
| |
|
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 |
| |
|
LLVM_ATTRIBUTE_ALWAYS_INLINE size_t | size () const |
| |
|
LLVM_ATTRIBUTE_ALWAYS_INLINE size_t | capacity () const |
| |
|
LLVM_NODISCARD bool | empty () const |
| |
| void | set_size (size_t Size) |
| | Set the array size to N, which the current array must have enough capacity for. More...
|
| |
|
|
| 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 MinCapacity, size_t TSize) |
| |
|
bool | isSmall () const |
| | Return true if this is a smallvector which has not had dynamic memory allocated for it.
|
| |
|
void | resetToSmall () |
| | Put this vector in a state of being small.
|
| |
|
| SmallVectorBase (void *FirstEl, size_t Capacity) |
| |
|
void | grow_pod (void *FirstEl, size_t MinCapacity, 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.
|
| |
|
|
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.
|
| |
|
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.
|
| |
|
|
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 |
| |
|
unsigned | Size = 0 |
| |
|
unsigned | Capacity |
| |
template<typename T, bool = isPodLike<T>::value>
class wpi::SmallVectorTemplateBase< T, bool >
SmallVectorTemplateBase<isPodLike = false> - This is where we put method implementations that are designed to work with non-POD-like T's.
◆ grow()
template<typename T , bool isPodLike>
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.
The documentation for this class was generated from the following file: