This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.
Public Types | |
using | const_iterator = typename SuperClass::const_iterator |
using | iterator = typename SuperClass::iterator |
using | reference = typename SuperClass::reference |
using | size_type = typename SuperClass::size_type |
![]() | |
using | const_iterator = const T * |
using | const_pointer = const T * |
using | const_reference = const T & |
using | const_reverse_iterator = std::reverse_iterator<const_iterator> |
using | difference_type = ptrdiff_t |
using | iterator = T * |
using | pointer = T * |
using | reference = T & |
using | reverse_iterator = std::reverse_iterator<iterator> |
using | size_type = size_t |
using | value_type = T |
![]() | |
using | Size_T = int32_t |
Protected Member Functions | |
RVecImpl (unsigned N) | |
![]() | |
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. | |
![]() | |
SmallVectorTemplateCommon (size_t Size) | |
void | grow_pod (size_t MinSize, 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 ()=delete | |
SmallVectorBase (void *FirstEl, size_t TotalCapacity) | |
void | grow_pod (void *FirstEl, size_t MinSize, 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. | |
bool | Owns () const |
If false, the RVec is in "memory adoption" mode, i.e. it is acting as a view on a memory buffer it does not own. | |
Private Types | |
using | SuperClass = Internal::VecOps::SmallVectorTemplateBase<T> |
Additional Inherited Members | |
![]() | |
static void | destroy_range (T *S, T *E) |
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. | |
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. | |
![]() | |
static void | report_at_maximum_capacity () |
Report that this vector is already at maximum capacity. | |
static void | report_size_overflow (size_t MinSize) |
Report that MinSize doesn't fit into this vector's size type. | |
static constexpr size_t | SizeTypeMax () |
The maximum value of the Size_T used. | |
![]() | |
void * | fBeginX |
Size_T | fCapacity |
Always >= -1. fCapacity == -1 indicates the RVec is in "memory adoption" mode. | |
Size_T | fSize = 0 |
Always >= 0. | |
#include <ROOT/RVec.hxx>
using ROOT::Detail::VecOps::RVecImpl< T >::const_iterator = typename SuperClass::const_iterator |
using ROOT::Detail::VecOps::RVecImpl< T >::iterator = typename SuperClass::iterator |
using ROOT::Detail::VecOps::RVecImpl< T >::reference = typename SuperClass::reference |
using ROOT::Detail::VecOps::RVecImpl< T >::size_type = typename SuperClass::size_type |
|
private |
|
inlineexplicitprotected |
|
delete |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
RVecImpl< T > & ROOT::Detail::VecOps::RVecImpl< T >::operator= | ( | const RVecImpl< T > & | RHS | ) |
RVecImpl< T > & ROOT::Detail::VecOps::RVecImpl< T >::operator= | ( | RVecImpl< T > && | RHS | ) |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void ROOT::Detail::VecOps::RVecImpl< T >::swap | ( | RVecImpl< T > & | RHS | ) |