JUCE  v6.1.6 (6.0.8-1114)
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse > Class Template Reference

A basic object container. More...

#include <juce_ArrayBase.h>

Inherits TypeOfCriticalSectionToUse.

Collaboration diagram for juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >:

Public Member Functions

 ArrayBase ()=default
 
 ArrayBase (ArrayBase &&other) noexcept
 
template<class OtherElementType , class OtherCriticalSection , typename = AllowConversion<OtherElementType, OtherCriticalSection>>
 ArrayBase (ArrayBase< OtherElementType, OtherCriticalSection > &&other) noexcept
 Converting move constructor. More...
 
 ~ArrayBase ()
 
template<typename... OtherElements>
void add (const ElementType &firstNewElement, OtherElements &&... otherElements)
 
void add (const ElementType &newElement)
 
template<typename... OtherElements>
void add (ElementType &&firstNewElement, OtherElements &&... otherElements)
 
void add (ElementType &&newElement)
 
template<class OtherArrayType >
void addArray (const OtherArrayType &arrayToAddFrom)
 
template<class OtherArrayType >
std::enable_if<! std::is_pointer< OtherArrayType >::value, int >::type addArray (const OtherArrayType &arrayToAddFrom, int startIndex, int numElementsToAdd=-1)
 
template<typename TypeToCreateFrom >
void addArray (const std::initializer_list< TypeToCreateFrom > &items)
 
template<typename Type >
void addArray (const Type *elementsToAdd, int numElementsToAdd)
 
const ElementType * begin () const noexcept
 
ElementType * begin () noexcept
 
int capacity () const noexcept
 
void clear ()
 
const ElementType * data () const noexcept
 
ElementType * data () noexcept
 
const ElementType * end () const noexcept
 
ElementType * end () noexcept
 
void ensureAllocatedSize (int minNumElements)
 
ElementType getFirst () const noexcept
 
ElementType getLast () const noexcept
 
ElementType getValueWithDefault (const int index) const noexcept
 
void insert (int indexToInsertAt, ParameterType newElement, int numberOfTimesToInsertIt)
 
void insertArray (int indexToInsertAt, const ElementType *newElements, int numberOfElements)
 
void move (int currentIndex, int newIndex) noexcept
 
template<class OtherArrayType >
bool operator!= (const OtherArrayType &other) const noexcept
 
ArrayBaseoperator= (ArrayBase &&other) noexcept
 
template<class OtherElementType , class OtherCriticalSection , typename = AllowConversion<OtherElementType, OtherCriticalSection>>
ArrayBaseoperator= (ArrayBase< OtherElementType, OtherCriticalSection > &&other) noexcept
 Converting move assignment operator. More...
 
template<class OtherArrayType >
bool operator== (const OtherArrayType &other) const noexcept
 
const ElementType & operator[] (const int index) const noexcept
 
ElementType & operator[] (const int index) noexcept
 
void removeElements (int indexToRemoveAt, int numElementsToRemove)
 
void setAllocatedSize (int numElements)
 
void shrinkToNoMoreThan (int maxNumElements)
 
int size () const noexcept
 
void swap (int index1, int index2)
 
void swapWith (ArrayBase &other) noexcept
 

Private Types

template<class OtherElementType , class OtherCriticalSection >
using AllowConversion = typename std::enable_if<! std::is_same< std::tuple< ElementType, TypeOfCriticalSectionToUse >, std::tuple< OtherElementType, OtherCriticalSection > >::value >::type
 
template<typename T >
using IsTriviallyCopyable = std::is_trivially_copyable< T >
 
template<typename T >
using NonTriviallyCopyableVoid = typename std::enable_if<! IsTriviallyCopyable< T >::value, void >::type
 
using ParameterType = typename TypeHelpers::ParameterType< ElementType >::type
 
template<typename T >
using TriviallyCopyableVoid = typename std::enable_if< IsTriviallyCopyable< T >::value, void >::type
 

Private Member Functions

template<typename T = ElementType>
TriviallyCopyableVoid< T > addArrayInternal (const ElementType *otherElements, int numElements)
 
template<typename Type , typename T = ElementType>
TriviallyCopyableVoid< T > addArrayInternal (const Type *otherElements, int numElements)
 
template<typename Type , typename T = ElementType>
NonTriviallyCopyableVoid< T > addArrayInternal (const Type *otherElements, int numElements)
 
template<typename... Elements>
void addAssumingCapacityIsReady (Elements &&... toAdd)
 
template<typename... Elements>
void addImpl (Elements &&... toAdd)
 
void checkSourceIsNotAMember (const ElementType &element)
 
ElementType * createInsertSpace (int indexToInsertAt, int numElements)
 
template<typename T = ElementType>
TriviallyCopyableVoid< T > createInsertSpaceInternal (int indexToInsertAt, int numElements)
 
template<typename T = ElementType>
NonTriviallyCopyableVoid< T > createInsertSpaceInternal (int indexToInsertAt, int numElements)
 
template<typename T = ElementType>
std::enable_if< std::is_move_assignable< T >::value, void >::type moveAssignElement (ElementType *destination, ElementType &&source)
 
template<typename T = ElementType>
std::enable_if<! std::is_move_assignable< T >::value, void >::type moveAssignElement (ElementType *destination, ElementType &&source)
 
template<typename T = ElementType>
TriviallyCopyableVoid< T > moveInternal (int currentIndex, int newIndex) noexcept
 
template<typename T = ElementType>
NonTriviallyCopyableVoid< T > moveInternal (int currentIndex, int newIndex) noexcept
 
template<typename T = ElementType>
TriviallyCopyableVoid< T > removeElementsInternal (int indexToRemoveAt, int numElementsToRemove)
 
template<typename T = ElementType>
NonTriviallyCopyableVoid< T > removeElementsInternal (int indexToRemoveAt, int numElementsToRemove)
 
template<typename T = ElementType>
TriviallyCopyableVoid< T > setAllocatedSizeInternal (int numElements)
 
template<typename T = ElementType>
NonTriviallyCopyableVoid< T > setAllocatedSizeInternal (int numElements)
 

Private Attributes

HeapBlock< ElementType > elements
 
int numAllocated = 0
 
int numUsed = 0
 

Friends

template<class OtherElementType , class OtherCriticalSection >
class ArrayBase
 

Detailed Description

template<class ElementType, class TypeOfCriticalSectionToUse>
class juce::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

@tags{Core}

Member Typedef Documentation

◆ AllowConversion

template<class ElementType , class TypeOfCriticalSectionToUse >
template<class OtherElementType , class OtherCriticalSection >
using juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::AllowConversion = typename std::enable_if<! std::is_same<std::tuple<ElementType, TypeOfCriticalSectionToUse>, std::tuple<OtherElementType, OtherCriticalSection> >::value>::type
private

◆ IsTriviallyCopyable

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T >
using juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::IsTriviallyCopyable = std::is_trivially_copyable<T>
private

◆ NonTriviallyCopyableVoid

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T >
using juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::NonTriviallyCopyableVoid = typename std::enable_if<! IsTriviallyCopyable<T>::value, void>::type
private

◆ ParameterType

template<class ElementType , class TypeOfCriticalSectionToUse >
using juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::ParameterType = typename TypeHelpers::ParameterType<ElementType>::type
private

◆ TriviallyCopyableVoid

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T >
using juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::TriviallyCopyableVoid = typename std::enable_if<IsTriviallyCopyable<T>::value, void>::type
private

Constructor & Destructor Documentation

◆ ArrayBase() [1/3]

template<class ElementType , class TypeOfCriticalSectionToUse >
juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::ArrayBase ( )
default

◆ ~ArrayBase()

template<class ElementType , class TypeOfCriticalSectionToUse >
juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::~ArrayBase ( )
inline

◆ ArrayBase() [2/3]

template<class ElementType , class TypeOfCriticalSectionToUse >
juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::ArrayBase ( ArrayBase< ElementType, TypeOfCriticalSectionToUse > &&  other)
inlinenoexcept

◆ ArrayBase() [3/3]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<class OtherElementType , class OtherCriticalSection , typename = AllowConversion<OtherElementType, OtherCriticalSection>>
juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::ArrayBase ( ArrayBase< OtherElementType, OtherCriticalSection > &&  other)
inlinenoexcept

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.

Member Function Documentation

◆ add() [1/4]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename... OtherElements>
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::add ( const ElementType &  firstNewElement,
OtherElements &&...  otherElements 
)
inline

◆ add() [2/4]

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::add ( const ElementType &  newElement)
inline

◆ add() [3/4]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename... OtherElements>
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::add ( ElementType &&  firstNewElement,
OtherElements &&...  otherElements 
)
inline

◆ add() [4/4]

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::add ( ElementType &&  newElement)
inline

◆ addArray() [1/4]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<class OtherArrayType >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::addArray ( const OtherArrayType &  arrayToAddFrom)
inline

◆ addArray() [2/4]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<class OtherArrayType >
std::enable_if<! std::is_pointer<OtherArrayType>::value, int>::type juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::addArray ( const OtherArrayType &  arrayToAddFrom,
int  startIndex,
int  numElementsToAdd = -1 
)
inline

◆ addArray() [3/4]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename TypeToCreateFrom >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::addArray ( const std::initializer_list< TypeToCreateFrom > &  items)
inline

◆ addArray() [4/4]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename Type >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::addArray ( const Type *  elementsToAdd,
int  numElementsToAdd 
)
inline

◆ addArrayInternal() [1/3]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
TriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::addArrayInternal ( const ElementType *  otherElements,
int  numElements 
)
inlineprivate

◆ addArrayInternal() [2/3]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename Type , typename T = ElementType>
TriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::addArrayInternal ( const Type *  otherElements,
int  numElements 
)
inlineprivate

◆ addArrayInternal() [3/3]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename Type , typename T = ElementType>
NonTriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::addArrayInternal ( const Type *  otherElements,
int  numElements 
)
inlineprivate

◆ addAssumingCapacityIsReady()

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename... Elements>
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::addAssumingCapacityIsReady ( Elements &&...  toAdd)
inlineprivate

◆ addImpl()

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename... Elements>
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::addImpl ( Elements &&...  toAdd)
inlineprivate

◆ begin() [1/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
const ElementType* juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::begin ( ) const
inlinenoexcept

◆ begin() [2/2]

◆ capacity()

template<class ElementType , class TypeOfCriticalSectionToUse >
int juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::capacity ( ) const
inlinenoexcept

◆ checkSourceIsNotAMember()

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::checkSourceIsNotAMember ( const ElementType &  element)
inlineprivate

◆ clear()

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::clear ( )
inline

◆ createInsertSpace()

template<class ElementType , class TypeOfCriticalSectionToUse >
ElementType* juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::createInsertSpace ( int  indexToInsertAt,
int  numElements 
)
inlineprivate

◆ createInsertSpaceInternal() [1/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
TriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::createInsertSpaceInternal ( int  indexToInsertAt,
int  numElements 
)
inlineprivate

◆ createInsertSpaceInternal() [2/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
NonTriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::createInsertSpaceInternal ( int  indexToInsertAt,
int  numElements 
)
inlineprivate

◆ data() [1/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
const ElementType* juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::data ( ) const
inlinenoexcept

◆ data() [2/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
ElementType* juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::data ( )
inlinenoexcept

◆ end() [1/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
const ElementType* juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::end ( ) const
inlinenoexcept

◆ end() [2/2]

◆ ensureAllocatedSize()

◆ getFirst()

template<class ElementType , class TypeOfCriticalSectionToUse >
ElementType juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::getFirst ( ) const
inlinenoexcept

◆ getLast()

template<class ElementType , class TypeOfCriticalSectionToUse >
ElementType juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::getLast ( ) const
inlinenoexcept

◆ getValueWithDefault()

template<class ElementType , class TypeOfCriticalSectionToUse >
ElementType juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::getValueWithDefault ( const int  index) const
inlinenoexcept

◆ insert()

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::insert ( int  indexToInsertAt,
ParameterType  newElement,
int  numberOfTimesToInsertIt 
)
inline

◆ insertArray()

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::insertArray ( int  indexToInsertAt,
const ElementType *  newElements,
int  numberOfElements 
)
inline

◆ move()

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::move ( int  currentIndex,
int  newIndex 
)
inlinenoexcept

◆ moveAssignElement() [1/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
std::enable_if<std::is_move_assignable<T>::value, void>::type juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::moveAssignElement ( ElementType *  destination,
ElementType &&  source 
)
inlineprivate

◆ moveAssignElement() [2/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
std::enable_if<! std::is_move_assignable<T>::value, void>::type juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::moveAssignElement ( ElementType *  destination,
ElementType &&  source 
)
inlineprivate

◆ moveInternal() [1/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
TriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::moveInternal ( int  currentIndex,
int  newIndex 
)
inlineprivatenoexcept

◆ moveInternal() [2/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
NonTriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::moveInternal ( int  currentIndex,
int  newIndex 
)
inlineprivatenoexcept

◆ operator!=()

template<class ElementType , class TypeOfCriticalSectionToUse >
template<class OtherArrayType >
bool juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::operator!= ( const OtherArrayType &  other) const
inlinenoexcept

◆ operator=() [1/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
ArrayBase& juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::operator= ( ArrayBase< ElementType, TypeOfCriticalSectionToUse > &&  other)
inlinenoexcept

◆ operator=() [2/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<class OtherElementType , class OtherCriticalSection , typename = AllowConversion<OtherElementType, OtherCriticalSection>>
ArrayBase& juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::operator= ( ArrayBase< OtherElementType, OtherCriticalSection > &&  other)
inlinenoexcept

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.

◆ operator==()

template<class ElementType , class TypeOfCriticalSectionToUse >
template<class OtherArrayType >
bool juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::operator== ( const OtherArrayType &  other) const
inlinenoexcept

◆ operator[]() [1/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
const ElementType& juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::operator[] ( const int  index) const
inlinenoexcept

◆ operator[]() [2/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
ElementType& juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::operator[] ( const int  index)
inlinenoexcept

◆ removeElements()

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::removeElements ( int  indexToRemoveAt,
int  numElementsToRemove 
)
inline

◆ removeElementsInternal() [1/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
TriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::removeElementsInternal ( int  indexToRemoveAt,
int  numElementsToRemove 
)
inlineprivate

◆ removeElementsInternal() [2/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
NonTriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::removeElementsInternal ( int  indexToRemoveAt,
int  numElementsToRemove 
)
inlineprivate

◆ setAllocatedSize()

◆ setAllocatedSizeInternal() [1/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
TriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::setAllocatedSizeInternal ( int  numElements)
inlineprivate

◆ setAllocatedSizeInternal() [2/2]

template<class ElementType , class TypeOfCriticalSectionToUse >
template<typename T = ElementType>
NonTriviallyCopyableVoid<T> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::setAllocatedSizeInternal ( int  numElements)
inlineprivate

◆ shrinkToNoMoreThan()

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::shrinkToNoMoreThan ( int  maxNumElements)
inline

◆ size()

template<class ElementType , class TypeOfCriticalSectionToUse >
int juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::size ( ) const
inlinenoexcept

◆ swap()

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::swap ( int  index1,
int  index2 
)
inline

◆ swapWith()

template<class ElementType , class TypeOfCriticalSectionToUse >
void juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::swapWith ( ArrayBase< ElementType, TypeOfCriticalSectionToUse > &  other)
inlinenoexcept

Friends And Related Function Documentation

◆ ArrayBase

template<class ElementType , class TypeOfCriticalSectionToUse >
template<class OtherElementType , class OtherCriticalSection >
friend class ArrayBase
friend

Member Data Documentation

◆ elements

template<class ElementType , class TypeOfCriticalSectionToUse >
HeapBlock<ElementType> juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::elements
private

Referenced by juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::addArray(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::addArrayInternal(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::addAssumingCapacityIsReady(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::begin(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::clear(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::createInsertSpace(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::createInsertSpaceInternal(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::data(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::end(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::ensureAllocatedSize(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::getFirst(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::getLast(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::getValueWithDefault(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::moveInternal(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::operator=(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::operator[](), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::removeElementsInternal(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::setAllocatedSize(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::setAllocatedSizeInternal(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::swap(), and juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::swapWith().

◆ numAllocated

◆ numUsed

template<class ElementType , class TypeOfCriticalSectionToUse >
int juce::ArrayBase< ElementType, TypeOfCriticalSectionToUse >::numUsed = 0
private

Referenced by juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::addArray(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::addArrayInternal(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::addAssumingCapacityIsReady(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::addImpl(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::clear(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::createInsertSpace(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::createInsertSpaceInternal(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::end(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::getFirst(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::getLast(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::getValueWithDefault(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::insert(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::insertArray(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::move(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::operator=(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::operator[](), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::removeElements(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::removeElementsInternal(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::setAllocatedSize(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::setAllocatedSizeInternal(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::size(), juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::swap(), and juce::ArrayBase< juce::InAppPurchases::Listener *, DummyCriticalSection >::swapWith().


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