Inherits TypeOfCriticalSectionToUse.
|
| | ArrayBase ()=default |
| |
| | ~ArrayBase () |
| |
| | ArrayBase (ArrayBase &&other) noexcept |
| |
| ArrayBase & | operator= (ArrayBase &&other) noexcept |
| |
| template<class OtherElementType , class OtherCriticalSection , typename = AllowConversion<OtherElementType, OtherCriticalSection>> |
| | ArrayBase (ArrayBase< OtherElementType, OtherCriticalSection > &&other) noexcept |
| | Converting move constructor.
|
| |
| template<class OtherElementType , class OtherCriticalSection , typename = AllowConversion<OtherElementType, OtherCriticalSection>> |
| ArrayBase & | operator= (ArrayBase< OtherElementType, OtherCriticalSection > &&other) noexcept |
| | Converting move assignment operator.
|
| |
| template<class OtherArrayType > |
| bool | operator== (const OtherArrayType &other) const noexcept |
| |
| template<class OtherArrayType > |
| bool | operator!= (const OtherArrayType &other) const noexcept |
| |
| ElementType & | operator[] (const int index) noexcept |
| |
| const ElementType & | operator[] (const int index) const noexcept |
| |
| ElementType | getValueWithDefault (const int index) const noexcept |
| |
| ElementType | getFirst () const noexcept |
| |
| ElementType | getLast () const noexcept |
| |
| ElementType * | begin () noexcept |
| |
| const ElementType * | begin () const noexcept |
| |
| ElementType * | end () noexcept |
| |
| const ElementType * | end () const noexcept |
| |
| ElementType * | data () noexcept |
| |
| const ElementType * | data () const noexcept |
| |
| int | size () const noexcept |
| |
| int | capacity () const noexcept |
| |
| void | setAllocatedSize (int numElements) |
| |
| void | ensureAllocatedSize (int minNumElements) |
| |
| void | shrinkToNoMoreThan (int maxNumElements) |
| |
| void | clear () |
| |
| void | swapWith (ArrayBase &other) noexcept |
| |
| void | add (const ElementType &newElement) |
| |
| void | add (ElementType &&newElement) |
| |
| template<typename... OtherElements> |
| void | add (const ElementType &firstNewElement, OtherElements &&... otherElements) |
| |
| template<typename... OtherElements> |
| void | add (ElementType &&firstNewElement, OtherElements &&... otherElements) |
| |
| template<typename Type > |
| void | addArray (const Type *elementsToAdd, int numElementsToAdd) |
| |
| template<typename TypeToCreateFrom > |
| void | addArray (const std::initializer_list< TypeToCreateFrom > &items) |
| |
| template<class OtherArrayType > |
| void | addArray (const OtherArrayType &arrayToAddFrom) |
| |
| template<class OtherArrayType > |
| std::enable_if_t<! std::is_pointer_v< OtherArrayType >, int > | addArray (const OtherArrayType &arrayToAddFrom, int startIndex, int numElementsToAdd=-1) |
| |
| void | insert (int indexToInsertAt, ParameterType newElement, int numberOfTimesToInsertIt) |
| |
| void | insertArray (int indexToInsertAt, const ElementType *newElements, int numberOfElements) |
| |
| void | removeElements (int indexToRemoveAt, int numElementsToRemove) |
| |
| void | swap (int index1, int index2) |
| |
| void | move (int currentIndex, int newIndex) noexcept |
| |
template<class ElementType, class TypeOfCriticalSectionToUse>
class ArrayBase< ElementType, TypeOfCriticalSectionToUse >
A basic object container.
This class isn't really for public use - it's used by the other array classes, but might come in handy for some purposes.
It inherits from a critical section class to allow the arrays to use the "empty base class optimisation" pattern to reduce their footprint.
- See also
- Array, OwnedArray, ReferenceCountedArray
template<class ElementType , class TypeOfCriticalSectionToUse >
template<class OtherElementType , class OtherCriticalSection , typename = AllowConversion<OtherElementType, OtherCriticalSection>>
Converting move constructor.
Only enabled when the other array has a different type to this one. If you see a compile error here, it's probably because you're attempting a conversion that HeapBlock won't allow.
template<class ElementType , class TypeOfCriticalSectionToUse >
template<class OtherElementType , class OtherCriticalSection , typename = AllowConversion<OtherElementType, OtherCriticalSection>>
| ArrayBase & ArrayBase< ElementType, TypeOfCriticalSectionToUse >::operator= |
( |
ArrayBase< OtherElementType, OtherCriticalSection > && | other | ) |
|
|
noexcept |
Converting move assignment operator.
Only enabled when the other array has a different type to this one. If you see a compile error here, it's probably because you're attempting a conversion that HeapBlock won't allow.