Open3D (C++ API)  0.19.0
Loading...
Searching...
No Matches
open3d::core::SmallVectorImpl< T > Class Template Reference

#include <SmallVector.h>

Inheritance diagram for open3d::core::SmallVectorImpl< T >:
open3d::core::SmallVectorTemplateBase< T, bool > open3d::core::SmallVectorTemplateCommon< T, typename > open3d::core::SmallVectorBase< SmallVectorSizeType< T > > open3d::core::SmallVector< utility::optional< int64_t >, 4 > open3d::core::SmallVector< int64_t, 4 > open3d::core::SmallVector< T, N > open3d::core::DynamicSizeVector open3d::core::SizeVector

Public Types

using iterator = typename SuperClass::iterator
using const_iterator = typename SuperClass::const_iterator
using reference = typename SuperClass::reference
using size_type = typename SuperClass::size_type
Public Types inherited from open3d::core::SmallVectorTemplateCommon< T, typename >
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 *

Public Member Functions

 SmallVectorImpl (const SmallVectorImpl &)=delete
 ~SmallVectorImpl ()
void clear ()
void resize (size_type N)
void resize_for_overwrite (size_type N)
 Like resize, but T is POD, the new values won't be initialized.
void truncate (size_type N)
 Like resize, but requires that N is less than size().
void resize (size_type N, ValueParamT NV)
void reserve (size_type N)
void pop_back_n (size_type NumItems)
LLVM_NODISCARDpop_back_val ()
void swap (SmallVectorImpl &RHS)
template<typename in_iter, typename = std::enable_if_t<std::is_convertible< typename std::iterator_traits<in_iter>::iterator_category, std::input_iterator_tag>::value>>
void append (in_iter in_start, in_iter in_end)
 Add the specified range to the end of the SmallVector.
void append (size_type NumInputs, ValueParamT Elt)
 Append NumInputs copies of Elt to the end.
void append (std::initializer_list< T > IL)
void append (const SmallVectorImpl &RHS)
void assign (size_type NumElts, ValueParamT Elt)
template<typename in_iter, typename = std::enable_if_t<std::is_convertible< typename std::iterator_traits<in_iter>::iterator_category, std::input_iterator_tag>::value>>
void assign (in_iter in_start, in_iter in_end)
void assign (std::initializer_list< T > IL)
void assign (const SmallVectorImpl &RHS)
iterator erase (const_iterator CI)
iterator erase (const_iterator CS, const_iterator CE)
iterator insert (iterator I, T &&Elt)
iterator insert (iterator I, const T &Elt)
iterator insert (iterator I, size_type NumToInsert, ValueParamT Elt)
template<typename ItTy, typename = std::enable_if_t<std::is_convertible< typename std::iterator_traits<ItTy>::iterator_category, std::input_iterator_tag>::value>>
iterator insert (iterator I, ItTy From, ItTy To)
void insert (iterator I, std::initializer_list< T > IL)
template<typename... ArgTypes>
reference emplace_back (ArgTypes &&... Args)
SmallVectorImploperator= (const SmallVectorImpl &RHS)
SmallVectorImploperator= (SmallVectorImpl &&RHS)
bool operator== (const SmallVectorImpl &RHS) const
bool operator!= (const SmallVectorImpl &RHS) const
bool operator< (const SmallVectorImpl &RHS) const
bool operator> (const SmallVectorImpl &RHS) const
bool operator<= (const SmallVectorImpl &RHS) const
bool operator>= (const SmallVectorImpl &RHS) const
Public Member Functions inherited from open3d::core::SmallVectorTemplateBase< T, bool >
void push_back (const T &Elt)
void push_back (T &&Elt)
void pop_back ()
Public Member Functions inherited from open3d::core::SmallVectorTemplateCommon< T, typename >
iterator begin ()
const_iterator begin () const
iterator end ()
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().
reference operator[] (size_type idx)
const_reference operator[] (size_type idx) const
reference front ()
const_reference front () const
reference back ()
const_reference back () const
size_t capacity () const
LLVM_NODISCARD bool empty () const
size_t size () const
Public Member Functions inherited from open3d::core::SmallVectorBase< SmallVectorSizeType< T > >
size_t size () const
size_t capacity () const
LLVM_NODISCARD bool empty () const

Protected Types

using ValueParamT = typename SuperClass::ValueParamT
Protected Types inherited from open3d::core::SmallVectorTemplateBase< T, bool >
using ValueParamT = const T &

Protected Member Functions

 SmallVectorImpl (unsigned N)
void assignRemote (SmallVectorImpl &&RHS)
Protected Member Functions inherited from open3d::core::SmallVectorTemplateBase< T, bool >
 SmallVectorTemplateBase (size_t Size)
void grow (size_t MinSize=0)
T * mallocForGrow (size_t MinSize, size_t &NewCapacity)
void moveElementsForGrow (T *NewElts)
void takeAllocationForGrow (T *NewElts, size_t NewCapacity)
 Transfer ownership of the allocation, finishing up grow().
const T * reserveForParamAndGetAddress (const T &Elt, size_t N=1)
T * reserveForParamAndGetAddress (T &Elt, size_t N=1)
void growAndAssign (size_t NumElts, const T &Elt)
template<typename... ArgTypes>
T & growAndEmplaceBack (ArgTypes &&... Args)
Protected Member Functions inherited from open3d::core::SmallVectorTemplateCommon< T, typename >
 SmallVectorTemplateCommon (size_t Size)
void grow_pod (size_t MinSize, size_t TSize)
bool isSmall () const
void resetToSmall ()
 Put this vector in a state of being small.
bool isReferenceToRange (const void *V, const void *First, const void *Last) const
 Return true if V is an internal reference to the given range.
bool isReferenceToStorage (const void *V) const
 Return true if V is an internal reference to this vector.
bool isRangeInStorage (const void *First, const void *Last) const
bool isSafeToReferenceAfterResize (const void *Elt, size_t NewSize)
void assertSafeToReferenceAfterResize (const void *Elt, size_t NewSize)
 Check whether Elt will be invalidated by resizing the vector to NewSize.
void assertSafeToAdd (const void *Elt, size_t N=1)
void assertSafeToReferenceAfterClear (const T *From, const T *To)
 Check whether any part of the range will be invalidated by clearing.
template<class ItTy, std::enable_if_t< !std::is_same< std::remove_const_t< ItTy >, T * >::value, bool > = false>
void assertSafeToReferenceAfterClear (ItTy, ItTy)
void assertSafeToAddRange (const T *From, const T *To)
 Check whether any part of the range will be invalidated by growing.
template<class ItTy, std::enable_if_t< !std::is_same< std::remove_const_t< ItTy >, T * >::value, bool > = false>
void assertSafeToAddRange (ItTy, ItTy)
Protected Member Functions inherited from open3d::core::SmallVectorBase< SmallVectorSizeType< T > >
 SmallVectorBase ()=delete
 SmallVectorBase (void *FirstEl, size_t TotalCapacity)
void * mallocForGrow (size_t MinSize, size_t TSize, size_t &NewCapacity)
void grow_pod (void *FirstEl, size_t MinSize, size_t TSize)
void set_size (size_t N)

Additional Inherited Members

Static Protected Member Functions inherited from open3d::core::SmallVectorTemplateBase< T, bool >
static void destroy_range (T *S, T *E)
template<typename It1, typename It2>
static void uninitialized_move (It1 I, It1 E, It2 Dest)
template<typename It1, typename It2>
static void uninitialized_copy (It1 I, It1 E, It2 Dest)
static T && forward_value_param (T &&V)
static const T & forward_value_param (const T &V)
Static Protected Member Functions inherited from open3d::core::SmallVectorTemplateCommon< T, typename >
template<class U>
static const T * reserveForParamAndGetAddressImpl (U *This, const T &Elt, size_t N)
Static Protected Member Functions inherited from open3d::core::SmallVectorBase< SmallVectorSizeType< T > >
static constexpr size_t SizeTypeMax ()
 The maximum value of the Size_T used.
Protected Attributes inherited from open3d::core::SmallVectorBase< SmallVectorSizeType< T > >
void * BeginX
SmallVectorSizeType< T > Size
SmallVectorSizeType< T > Capacity
Static Protected Attributes inherited from open3d::core::SmallVectorTemplateBase< T, bool >
static constexpr bool TakesParamByValue = false

Detailed Description

template<typename T>
class open3d::core::SmallVectorImpl< T >

This class consists of common code factored out of the SmallVector class to reduce code duplication based on the SmallVector 'N' template parameter.

Member Typedef Documentation

◆ const_iterator

template<typename T>
using open3d::core::SmallVectorImpl< T >::const_iterator = typename SuperClass::const_iterator

◆ iterator

template<typename T>
using open3d::core::SmallVectorImpl< T >::iterator = typename SuperClass::iterator

◆ reference

template<typename T>
using open3d::core::SmallVectorImpl< T >::reference = typename SuperClass::reference

◆ size_type

template<typename T>
using open3d::core::SmallVectorImpl< T >::size_type = typename SuperClass::size_type

◆ ValueParamT

template<typename T>
using open3d::core::SmallVectorImpl< T >::ValueParamT = typename SuperClass::ValueParamT
protected

Constructor & Destructor Documentation

◆ SmallVectorImpl() [1/2]

template<typename T>
open3d::core::SmallVectorImpl< T >::SmallVectorImpl ( unsigned N)
inlineexplicitprotected

◆ SmallVectorImpl() [2/2]

template<typename T>
open3d::core::SmallVectorImpl< T >::SmallVectorImpl ( const SmallVectorImpl< T > & )
delete

◆ ~SmallVectorImpl()

template<typename T>
open3d::core::SmallVectorImpl< T >::~SmallVectorImpl ( )
inline

Member Function Documentation

◆ append() [1/4]

template<typename T>
void open3d::core::SmallVectorImpl< T >::append ( const SmallVectorImpl< T > & RHS)
inline

◆ append() [2/4]

template<typename T>
template<typename in_iter, typename = std::enable_if_t<std::is_convertible< typename std::iterator_traits<in_iter>::iterator_category, std::input_iterator_tag>::value>>
void open3d::core::SmallVectorImpl< T >::append ( in_iter in_start,
in_iter in_end )
inline

Add the specified range to the end of the SmallVector.

◆ append() [3/4]

template<typename T>
void open3d::core::SmallVectorImpl< T >::append ( size_type NumInputs,
ValueParamT Elt )
inline

Append NumInputs copies of Elt to the end.

◆ append() [4/4]

template<typename T>
void open3d::core::SmallVectorImpl< T >::append ( std::initializer_list< T > IL)
inline

◆ assign() [1/4]

template<typename T>
void open3d::core::SmallVectorImpl< T >::assign ( const SmallVectorImpl< T > & RHS)
inline

◆ assign() [2/4]

template<typename T>
template<typename in_iter, typename = std::enable_if_t<std::is_convertible< typename std::iterator_traits<in_iter>::iterator_category, std::input_iterator_tag>::value>>
void open3d::core::SmallVectorImpl< T >::assign ( in_iter in_start,
in_iter in_end )
inline

◆ assign() [3/4]

template<typename T>
void open3d::core::SmallVectorImpl< T >::assign ( size_type NumElts,
ValueParamT Elt )
inline

◆ assign() [4/4]

template<typename T>
void open3d::core::SmallVectorImpl< T >::assign ( std::initializer_list< T > IL)
inline

◆ assignRemote()

template<typename T>
void open3d::core::SmallVectorImpl< T >::assignRemote ( SmallVectorImpl< T > && RHS)
inlineprotected

◆ clear()

template<typename T>
void open3d::core::SmallVectorImpl< T >::clear ( )
inline

◆ emplace_back()

template<typename T>
template<typename... ArgTypes>
reference open3d::core::SmallVectorImpl< T >::emplace_back ( ArgTypes &&... Args)
inline

◆ erase() [1/2]

template<typename T>
iterator open3d::core::SmallVectorImpl< T >::erase ( const_iterator CI)
inline

◆ erase() [2/2]

template<typename T>
iterator open3d::core::SmallVectorImpl< T >::erase ( const_iterator CS,
const_iterator CE )
inline

◆ insert() [1/5]

template<typename T>
iterator open3d::core::SmallVectorImpl< T >::insert ( iterator I,
const T & Elt )
inline

◆ insert() [2/5]

template<typename T>
template<typename ItTy, typename = std::enable_if_t<std::is_convertible< typename std::iterator_traits<ItTy>::iterator_category, std::input_iterator_tag>::value>>
iterator open3d::core::SmallVectorImpl< T >::insert ( iterator I,
ItTy From,
ItTy To )
inline

◆ insert() [3/5]

template<typename T>
iterator open3d::core::SmallVectorImpl< T >::insert ( iterator I,
size_type NumToInsert,
ValueParamT Elt )
inline

◆ insert() [4/5]

template<typename T>
void open3d::core::SmallVectorImpl< T >::insert ( iterator I,
std::initializer_list< T > IL )
inline

◆ insert() [5/5]

template<typename T>
iterator open3d::core::SmallVectorImpl< T >::insert ( iterator I,
T && Elt )
inline

◆ operator!=()

template<typename T>
bool open3d::core::SmallVectorImpl< T >::operator!= ( const SmallVectorImpl< T > & RHS) const
inline

◆ operator<()

template<typename T>
bool open3d::core::SmallVectorImpl< T >::operator< ( const SmallVectorImpl< T > & RHS) const
inline

◆ operator<=()

template<typename T>
bool open3d::core::SmallVectorImpl< T >::operator<= ( const SmallVectorImpl< T > & RHS) const
inline

◆ operator=() [1/2]

template<typename T>
SmallVectorImpl< T > & open3d::core::SmallVectorImpl< T >::operator= ( const SmallVectorImpl< T > & RHS)

◆ operator=() [2/2]

template<typename T>
SmallVectorImpl< T > & open3d::core::SmallVectorImpl< T >::operator= ( SmallVectorImpl< T > && RHS)

◆ operator==()

template<typename T>
bool open3d::core::SmallVectorImpl< T >::operator== ( const SmallVectorImpl< T > & RHS) const
inline

◆ operator>()

template<typename T>
bool open3d::core::SmallVectorImpl< T >::operator> ( const SmallVectorImpl< T > & RHS) const
inline

◆ operator>=()

template<typename T>
bool open3d::core::SmallVectorImpl< T >::operator>= ( const SmallVectorImpl< T > & RHS) const
inline

◆ pop_back_n()

template<typename T>
void open3d::core::SmallVectorImpl< T >::pop_back_n ( size_type NumItems)
inline

◆ pop_back_val()

template<typename T>
LLVM_NODISCARD T open3d::core::SmallVectorImpl< T >::pop_back_val ( )
inline

◆ reserve()

template<typename T>
void open3d::core::SmallVectorImpl< T >::reserve ( size_type N)
inline

◆ resize() [1/2]

template<typename T>
void open3d::core::SmallVectorImpl< T >::resize ( size_type N)
inline

◆ resize() [2/2]

template<typename T>
void open3d::core::SmallVectorImpl< T >::resize ( size_type N,
ValueParamT NV )
inline

◆ resize_for_overwrite()

template<typename T>
void open3d::core::SmallVectorImpl< T >::resize_for_overwrite ( size_type N)
inline

Like resize, but T is POD, the new values won't be initialized.

◆ swap()

template<typename T>
void open3d::core::SmallVectorImpl< T >::swap ( SmallVectorImpl< T > & RHS)

◆ truncate()

template<typename T>
void open3d::core::SmallVectorImpl< T >::truncate ( size_type N)
inline

Like resize, but requires that N is less than size().


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