Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ROOT::Internal::VecOps::SmallVectorTemplateCommon< T > Class Template Reference

template<typename T>
class ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >

This is the part of SmallVectorTemplateBase which does not depend on whether the type T is a POD.

Definition at line 194 of file RVec.hxx.

Public Types

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
 
- Public Types inherited from ROOT::Internal::VecOps::SmallVectorBase
using Size_T = int32_t
 

Public Member Functions

reference back ()
 
const_reference back () const
 
const_iterator begin () const noexcept
 
iterator begin () noexcept
 
size_t capacity () const noexcept
 
size_t capacity_in_bytes () const
 
const_iterator cbegin () const noexcept
 
const_iterator cend () const noexcept
 
const_reverse_iterator crbegin () const noexcept
 
const_reverse_iterator crend () const noexcept
 
const_pointer data () const noexcept
 Return a pointer to the vector's buffer, even if empty().
 
pointer data () noexcept
 Return a pointer to the vector's buffer, even if empty().
 
R__RVEC_NODISCARD bool empty () const
 
const_iterator end () const noexcept
 
iterator end () noexcept
 
reference front ()
 
const_reference front () const
 
size_type max_size () const noexcept
 
const_reverse_iterator rbegin () const noexcept
 
reverse_iterator rbegin () noexcept
 
const_reverse_iterator rend () const noexcept
 
reverse_iterator rend () noexcept
 
size_t size () const
 
size_type size_in_bytes () const
 
- Public Member Functions inherited from ROOT::Internal::VecOps::SmallVectorBase
size_t capacity () const noexcept
 
R__RVEC_NODISCARD bool empty () const
 
void set_size (size_t N)
 Set the array size to N, which the current array must have enough capacity for.
 
void shrink_to_fit ()
 
size_t size () const
 

Protected Member Functions

 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.
 
- Protected Member Functions inherited from ROOT::Internal::VecOps::SmallVectorBase
 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 true, 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 Base = SmallVectorBase
 

Private Member Functions

voidgetFirstEl () const
 Find the address of the first element.
 

Additional Inherited Members

- Static Protected Member Functions inherited from ROOT::Internal::VecOps::SmallVectorBase
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.
 
- Protected Attributes inherited from ROOT::Internal::VecOps::SmallVectorBase
voidfBeginX
 
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>

Inheritance diagram for ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >:
[legend]

Member Typedef Documentation

◆ Base

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::Base = SmallVectorBase
private

Definition at line 195 of file RVec.hxx.

◆ const_iterator

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::const_iterator = const T *

Definition at line 232 of file RVec.hxx.

◆ const_pointer

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::const_pointer = const T *

Definition at line 240 of file RVec.hxx.

◆ const_reference

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::const_reference = const T &

Definition at line 238 of file RVec.hxx.

◆ const_reverse_iterator

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::const_reverse_iterator = std::reverse_iterator<const_iterator>

Definition at line 234 of file RVec.hxx.

◆ difference_type

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::difference_type = ptrdiff_t

Definition at line 229 of file RVec.hxx.

◆ iterator

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::iterator = T *

Definition at line 231 of file RVec.hxx.

◆ pointer

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::pointer = T *

Definition at line 239 of file RVec.hxx.

◆ reference

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::reference = T &

Definition at line 237 of file RVec.hxx.

◆ reverse_iterator

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::reverse_iterator = std::reverse_iterator<iterator>

Definition at line 235 of file RVec.hxx.

◆ size_type

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::size_type = size_t

Definition at line 228 of file RVec.hxx.

◆ value_type

template<typename T >
using ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::value_type = T

Definition at line 230 of file RVec.hxx.

Constructor & Destructor Documentation

◆ SmallVectorTemplateCommon()

template<typename T >
ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::SmallVectorTemplateCommon ( size_t  Size)
inlineprotected

Definition at line 208 of file RVec.hxx.

Member Function Documentation

◆ back() [1/2]

template<typename T >
reference ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::back ( )
inline

Definition at line 288 of file RVec.hxx.

◆ back() [2/2]

template<typename T >
const_reference ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::back ( ) const
inline

Definition at line 296 of file RVec.hxx.

◆ begin() [1/2]

template<typename T >
const_iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::begin ( ) const
inlinenoexcept

Definition at line 248 of file RVec.hxx.

◆ begin() [2/2]

template<typename T >
iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::begin ( )
inlinenoexcept

Definition at line 247 of file RVec.hxx.

◆ capacity()

template<typename T >
size_t ROOT::Internal::VecOps::SmallVectorBase::capacity ( ) const
inlinenoexcept

Definition at line 158 of file RVec.hxx.

◆ capacity_in_bytes()

template<typename T >
size_t ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::capacity_in_bytes ( ) const
inline

Definition at line 265 of file RVec.hxx.

◆ cbegin()

template<typename T >
const_iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::cbegin ( ) const
inlinenoexcept

Definition at line 249 of file RVec.hxx.

◆ cend()

template<typename T >
const_iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::cend ( ) const
inlinenoexcept

Definition at line 252 of file RVec.hxx.

◆ crbegin()

template<typename T >
const_reverse_iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::crbegin ( ) const
inlinenoexcept

Definition at line 257 of file RVec.hxx.

◆ crend()

template<typename T >
const_reverse_iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::crend ( ) const
inlinenoexcept

Definition at line 260 of file RVec.hxx.

◆ data() [1/2]

template<typename T >
const_pointer ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::data ( ) const
inlinenoexcept

Return a pointer to the vector's buffer, even if empty().

Definition at line 270 of file RVec.hxx.

◆ data() [2/2]

template<typename T >
pointer ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::data ( )
inlinenoexcept

Return a pointer to the vector's buffer, even if empty().

Definition at line 268 of file RVec.hxx.

◆ empty()

template<typename T >
R__RVEC_NODISCARD bool ROOT::Internal::VecOps::SmallVectorBase::empty ( ) const
inline

Definition at line 160 of file RVec.hxx.

◆ end() [1/2]

template<typename T >
const_iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::end ( ) const
inlinenoexcept

Definition at line 251 of file RVec.hxx.

◆ end() [2/2]

template<typename T >
iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::end ( )
inlinenoexcept

Definition at line 250 of file RVec.hxx.

◆ front() [1/2]

template<typename T >
reference ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::front ( )
inline

Definition at line 272 of file RVec.hxx.

◆ front() [2/2]

template<typename T >
const_reference ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::front ( ) const
inline

Definition at line 280 of file RVec.hxx.

◆ getFirstEl()

template<typename T >
void * ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::getFirstEl ( ) const
inlineprivate

Find the address of the first element.

For this pointer math to be valid with small-size of 0 for T with lots of alignment, it's important that SmallVectorStorage is properly-aligned even for small-size of 0.

Definition at line 200 of file RVec.hxx.

◆ grow_pod()

template<typename T >
void ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::grow_pod ( size_t  MinSize,
size_t  TSize 
)
inlineprotected

Definition at line 210 of file RVec.hxx.

◆ isSmall()

template<typename T >
bool ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::isSmall ( ) const
inlineprotected

Return true if this is a smallvector which has not had dynamic memory allocated for it.

Definition at line 214 of file RVec.hxx.

◆ max_size()

template<typename T >
size_type ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::max_size ( ) const
inlinenoexcept

Definition at line 263 of file RVec.hxx.

◆ rbegin() [1/2]

template<typename T >
const_reverse_iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::rbegin ( ) const
inlinenoexcept

Definition at line 256 of file RVec.hxx.

◆ rbegin() [2/2]

template<typename T >
reverse_iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::rbegin ( )
inlinenoexcept

Definition at line 255 of file RVec.hxx.

◆ rend() [1/2]

template<typename T >
const_reverse_iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::rend ( ) const
inlinenoexcept

Definition at line 259 of file RVec.hxx.

◆ rend() [2/2]

template<typename T >
reverse_iterator ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::rend ( )
inlinenoexcept

Definition at line 258 of file RVec.hxx.

◆ resetToSmall()

template<typename T >
void ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::resetToSmall ( )
inlineprotected

Put this vector in a state of being small.

Definition at line 217 of file RVec.hxx.

◆ size()

template<typename T >
size_t ROOT::Internal::VecOps::SmallVectorBase::size ( ) const
inline

Definition at line 157 of file RVec.hxx.

◆ size_in_bytes()

template<typename T >
size_type ROOT::Internal::VecOps::SmallVectorTemplateCommon< T >::size_in_bytes ( ) const
inline

Definition at line 262 of file RVec.hxx.

  • math/vecops/inc/ROOT/RVec.hxx