Inherits TypeOfCriticalSectionToUse.
|
| ArrayBase () noexcept=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.