|
Open3D (C++ API)
0.19.0
|
#include <SmallVector.h>
Protected Types | |
| using | ValueParamT |
Protected Member Functions | |
| SmallVectorTemplateBase (size_t Size) | |
| void | grow (size_t MinSize=0) |
| const T * | reserveForParamAndGetAddress (const T &Elt, size_t N=1) |
| T * | reserveForParamAndGetAddress (T &Elt, size_t N=1) |
| void | growAndAssign (size_t NumElts, T Elt) |
| template<typename... ArgTypes> | |
| T & | growAndEmplaceBack (ArgTypes &&... Args) |
| 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(). | |
| 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) |
Static Protected Member Functions | |
| static void | destroy_range (T *, T *) |
| 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) |
| template<typename T1, typename T2> | |
| static void | uninitialized_copy (T1 *I, T1 *E, T2 *Dest, std::enable_if_t< std::is_same< typename std::remove_const< T1 >::type, T2 >::value > *=nullptr) |
| static ValueParamT | forward_value_param (ValueParamT V) |
Copy V or return a reference, depending on ValueParamT. | |
| 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. | |
Static Protected Attributes | |
| static constexpr bool | TakesParamByValue = sizeof(T) <= 2 * sizeof(void *) |
Friends | |
| class | SmallVectorTemplateCommon< T > |
Additional Inherited Members | |
| 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 * |
| Protected Attributes inherited from open3d::core::SmallVectorBase< SmallVectorSizeType< T > > | |
| void * | BeginX |
| SmallVectorSizeType< T > | Size |
| SmallVectorSizeType< T > | Capacity |
SmallVectorTemplateBase<TriviallyCopyable = true> - This is where we put method implementations that are designed to work with trivially copyable T's. This allows using memcpy in place of copy/move construction and skipping destruction.
|
protected |
Either const T& or T, depending on whether it's cheap enough to take parameters by value.
|
inlineprotected |
|
inlinestaticprotected |
|
inlinestaticprotected |
Copy V or return a reference, depending on ValueParamT.
|
inlineprotected |
Double the size of the allocated memory, guaranteeing space for at least one more element or MinSize if specified.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
Create a new allocation big enough for MinSize and pass back its size in NewCapacity. This is the first section of grow().
|
protected |
Move existing elements over to the new allocation NewElts, the middle section of grow().
|
inline |
|
inline |
|
inlineprotected |
Reserve enough space to add one element, and return the updated element pointer in case it was a reference to the storage.
|
inlineprotected |
Reserve enough space to add one element, and return the updated element pointer in case it was a reference to the storage.
|
protected |
Transfer ownership of the allocation, finishing up grow().
|
inlinestaticprotected |
Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.
|
inlinestaticprotected |
Copy the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.
|
inlinestaticprotected |
Move the range [I, E) onto the uninitialized memory starting with "Dest", constructing elements into it as needed.
|
friend |
|
staticconstexprprotected |
True if it's cheap enough to take parameters by value. Doing so avoids overhead related to mitigations for reference invalidation.