A dynamically resizable PtrList with allocation management. More...
Public Member Functions | |
constexpr | PtrDynList () noexcept |
Default construct. More... | |
PtrDynList (const label len) | |
Construct with given capacity. More... | |
PtrDynList (const PtrDynList< T, SizeMin > &list) | |
Copy construct using 'clone()' method on each element. More... | |
PtrDynList (PtrDynList< T, SizeMin > &&list) | |
Move construct. More... | |
template<int AnySizeMin> | |
PtrDynList (PtrDynList< T, AnySizeMin > &&list) | |
Move construct with different sizing parameters. More... | |
PtrDynList (PtrList< T > &&list) noexcept | |
Move construct from PtrList. More... | |
PtrDynList (UList< T *> &list) | |
Take ownership of pointers in the list, set old pointers to null. More... | |
~PtrDynList ()=default | |
Destructor. More... | |
label | capacity () const noexcept |
Size of the underlying storage. More... | |
void | reserve (const label len) |
Reserve allocation space for at least this size. More... | |
void | resize (const label newLen) |
Alter the addressed list size. More... | |
void | resize_null (const label newLen) |
Set the addressed list to the given size, deleting all existing entries. Afterwards the list contains all nullptr entries. More... | |
void | clear () |
Clear the addressed list, i.e. set the size to zero. More... | |
void | clearStorage () |
Clear the list and delete storage. More... | |
void | shrink_to_fit () |
Shrink the allocated space to the number of elements used. More... | |
void | shrink_unsafe () |
Shrink the internal bookkeeping of the allocated space to the number of addressed elements without affecting allocation. More... | |
void | shrink () |
Calls shrink_to_fit() More... | |
label | squeezeNull () |
Squeeze out intermediate nullptr entries in the list of pointers and adjust the addressable size accordingly. More... | |
void | swap (PtrList< T > &list) |
Swap with plain PtrList content. Implies shrink_to_fit(). More... | |
template<int AnySizeMin> | |
void | swap (PtrDynList< T, AnySizeMin > &other) noexcept |
Swap content, independent of sizing parameter. More... | |
void | transfer (PtrList< T > &list) |
Transfer contents of the argument PtrList into this. More... | |
template<int AnySizeMin> | |
void | transfer (PtrDynList< T, AnySizeMin > &list) |
Transfer contents of any sized PtrDynList into this. More... | |
template<class... Args> | |
T & | emplace_back (Args &&... args) |
Construct an element at the end of the list, return reference to the new list element. More... | |
void | push_back (T *ptr) |
Append an element to the end of the list. More... | |
void | push_back (std::unique_ptr< T > &&ptr) |
Move append an element to the end of the list. More... | |
void | push_back (autoPtr< T > &&ptr) |
Move append an element to the end of the list. More... | |
void | push_back (const refPtr< T > &ptr) |
Move or clone append a tmp to the end of the list. More... | |
void | push_back (const tmp< T > &ptr) |
Move or clone append a tmp to the end of the list. More... | |
void | push_back (PtrList< T > &&other) |
Move append another list to the end of this list. More... | |
template<int AnySizeMin> | |
void | push_back (PtrDynList< T, AnySizeMin > &&other) |
Move append another list to the end of this list. More... | |
void | pop_back (label n=1) |
Reduce size by 1 or more elements. Can be called on an empty list. More... | |
template<class... Args> | |
T & | emplace_set (const label i, Args &&... args) |
Construct and set a new element at given position, (discard old element at that location). Auto-sizes list as required. More... | |
template<class... Args> | |
T & | emplace (const label i, Args &&... args) |
Same as emplace_set() More... | |
template<class... Args> | |
T & | try_emplace (const label i, Args &&... args) |
Like emplace_set() but will not overwrite an occupied location. More... | |
autoPtr< T > | set (const label i, T *ptr) |
Set element to given pointer and return old element (can be null). Auto-sizes list as required. More... | |
autoPtr< T > | set (const label i, std::unique_ptr< T > &&ptr) |
Set element to given pointer and return old element Auto-sizes list as required. More... | |
autoPtr< T > | set (const label i, autoPtr< T > &&ptr) |
Set element to given autoPtr and return old element Auto-sizes list as required. More... | |
autoPtr< T > | set (const label i, const refPtr< T > &ptr) |
Set element to given refPtr and return old element Auto-sizes list as required. More... | |
autoPtr< T > | set (const label i, const tmp< T > &ptr) |
Set element to given tmp and return old element Auto-sizes list as required. More... | |
void | reorder (const labelUList &oldToNew) |
Reorder elements. Reordering must be unique (ie, shuffle). More... | |
void | operator= (const PtrList< T > &list) |
Copy (clone) assignment. More... | |
void | operator= (const PtrDynList< T, SizeMin > &list) |
Copy (clone) assignment. More... | |
template<int AnySizeMin> | |
void | operator= (const PtrDynList< T, AnySizeMin > &list) |
Copy (clone) assignment with different sizing parameters. More... | |
void | operator= (PtrList< T > &&list) |
Move assignment. More... | |
void | operator= (PtrDynList< T, SizeMin > &&list) |
Move assignment. More... | |
template<int AnySizeMin> | |
void | operator= (PtrDynList< T, AnySizeMin > &&list) |
Move assignment with different sizing parameters. More... | |
void | push_back (autoPtr< T > &ptr)=delete |
Disallow push_back with autoPtr without std::move. More... | |
autoPtr< T > | set (const label i, autoPtr< T > &ptr) |
Set element to given autoPtr and return old element. More... | |
void | setSize (const label n) |
Same as resize() More... | |
void | append (autoPtr< T > &ptr) |
Move append an element to the end of the list. More... | |
void | append (T *ptr) |
Append an element to the end of the list. More... | |
void | append (std::unique_ptr< T > &&ptr) |
Move append an element to the end of the list. More... | |
void | append (autoPtr< T > &&ptr) |
Move append an element to the end of the list. More... | |
void | append (const refPtr< T > &ptr) |
Move or clone append a tmp to the end of the list. More... | |
void | append (const tmp< T > &ptr) |
Move or clone append a tmp to the end of the list. More... | |
void | append (PtrList< T > &&other) |
Move append another list to the end of this list. More... | |
template<int AnySizeMin> | |
void | append (PtrDynList< T, AnySizeMin > &&other) |
Move append another list to the end of this list. More... | |
Public Member Functions inherited from PtrList< T > | |
constexpr | PtrList () noexcept |
Default construct. More... | |
PtrList (const label len) | |
Construct with specified size, each element initialized to nullptr. More... | |
PtrList (const PtrList< T > &list) | |
Copy construct using 'clone()' method on each element. More... | |
PtrList (PtrList< T > &&list) noexcept | |
Move construct. More... | |
PtrList (UList< T *> &list) | |
Take ownership of pointers in the list, set old pointers to null. More... | |
template<class CloneArg > | |
PtrList (const PtrList< T > &list, const CloneArg &cloneArgs) | |
Copy construct using 'clone()' method on each element. More... | |
PtrList (PtrList< T > &list, bool reuse) | |
Construct as copy or re-use as specified. More... | |
PtrList (const SLPtrList< T > &list) | |
Copy construct using 'clone()' on each element of SLPtrList<T> More... | |
template<class INew > | |
PtrList (Istream &is, const INew &inew) | |
Construct from Istream using given Istream constructor class. More... | |
PtrList (Istream &is) | |
Construct from Istream using default Istream constructor class. More... | |
~PtrList () | |
Destructor. Frees all pointers. More... | |
template<class... Args> | |
PtrList< T > | clone (Args &&... args) const |
Make a copy by cloning each of the list elements. More... | |
const T * | set (const label i) const |
Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More... | |
void | clear () |
Clear the PtrList. Delete allocated entries and set size to zero. More... | |
void | free () |
Free memory and nullify all entries. Does not change the list size. More... | |
void | resize (const label newLen) |
Adjust size of PtrList. More... | |
void | resize_null (const label newLen) |
Set the addressed list to the given size, deleting all existing entries. Afterwards the list contains all nullptr entries. More... | |
template<class... Args> | |
T & | emplace_back (Args &&... args) |
Construct and append an element to the end of the list, return reference to the new list element. More... | |
void | push_back (T *ptr) |
Append an element to the end of the list. More... | |
void | push_back (std::unique_ptr< T > &&ptr) |
Move append an element to the end of the list. More... | |
void | push_back (autoPtr< T > &&ptr) |
Move append an element to the end of the list. More... | |
void | push_back (const refPtr< T > &ptr) |
Move or clone append a refPtr to the end of the list. More... | |
void | push_back (const tmp< T > &ptr) |
Move or clone append a tmp to the end of the list. More... | |
void | push_back (PtrList< T > &&other) |
Move append another list to the end of this list. More... | |
template<class... Args> | |
T & | emplace_set (const label i, Args &&... args) |
Construct and set a new element at given position, (discard old element at that location). More... | |
template<class... Args> | |
T & | emplace (const label i, Args &&... args) |
Same as emplace_set() More... | |
template<class... Args> | |
T & | try_emplace (const label i, Args &&... args) |
Like emplace_set() but will not overwrite an occupied (non-null) location. More... | |
autoPtr< T > | set (const label i, T *ptr) |
Set element to given pointer and return old element (can be null) More... | |
autoPtr< T > | set (const label i, std::unique_ptr< T > &&ptr) |
Set element to given unique_ptr and return old element. More... | |
autoPtr< T > | set (const label i, autoPtr< T > &&ptr) |
Set element to given autoPtr and return old element. More... | |
autoPtr< T > | set (const label i, const refPtr< T > &ptr) |
Set element to given refPtr and return old element. More... | |
autoPtr< T > | set (const label i, const tmp< T > &ptr) |
Set element to given tmp and return old element. More... | |
autoPtr< T > | release (const label i) |
Release ownership of the pointer at the given position. More... | |
void | transfer (PtrList< T > &list) |
Transfer into this list and annul the argument list. More... | |
void | operator= (const PtrList< T > &list) |
Copy assignment. More... | |
void | operator= (PtrList< T > &&list) |
Move assignment. More... | |
void | push_back (autoPtr< T > &ptr)=delete |
Disallow push_back with autoPtr without std::move. More... | |
autoPtr< T > | set (const label i, autoPtr< T > &ptr) |
Set element to given autoPtr and return old element. More... | |
void | setSize (const label newLen) |
Same as resize() More... | |
void | append (autoPtr< T > &ptr) |
Move append an element to the end of the list. More... | |
void | append (T *ptr) |
Append an element to the end of the list. More... | |
void | append (std::unique_ptr< T > &&ptr) |
Move append an element to the end of the list. More... | |
void | append (autoPtr< T > &&ptr) |
Move append an element to the end of the list. More... | |
void | append (const refPtr< T > &ptr) |
Move or clone append a tmp to the end of the list. More... | |
void | append (const tmp< T > &ptr) |
Move or clone append a tmp to the end of the list. More... | |
void | append (PtrList< T > &&other) |
Move append another list to the end of this list. More... | |
template<class... Args> | |
Foam::PtrList< T > | clone (Args &&... args) const |
Public Member Functions inherited from UPtrList< T > | |
constexpr | UPtrList () noexcept=default |
Default construct. More... | |
UPtrList (const label len) | |
Construct with specified size and set all entries to nullptr . More... | |
UPtrList (const UPtrList< T > &list) | |
Copy construct (shallow copies addresses) More... | |
UPtrList (UPtrList< T > &&list) noexcept | |
Move construct. More... | |
UPtrList (UPtrList< T > &list, bool reuse) | |
Construct as shallow copy or re-use as specified. More... | |
UPtrList (PtrList< T > &list) | |
Shallow copy from PtrList. More... | |
UPtrList (const UList< T *> &list) | |
Construct from UList of pointers (shallow copy) More... | |
UPtrList (UList< T > &list) | |
Construct from UList, taking the address of each list element. More... | |
bool | empty () const noexcept |
True if the list is empty (ie, size() is zero) More... | |
label | size () const noexcept |
The number of entries in the list. More... | |
label | capacity () const noexcept |
Size of the underlying storage. More... | |
label | count_nonnull () const noexcept |
The number of non-nullptr entries in the list. More... | |
T & | front () |
Reference to the first element of the list. More... | |
const T & | front () const |
Reference to first element of the list. More... | |
T & | back () |
Reference to the last element of the list. More... | |
const T & | back () const |
Reference to the last element of the list. More... | |
const T * | test (const label i) const |
Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More... | |
const T * | get (const label i) const |
Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More... | |
T * | get (const label i) |
Return pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More... | |
const T * | set (const label i) const |
Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking). More... | |
void | clear () |
Set list size to zero. More... | |
void | free () |
Nullify all entries. Does not change the list size. More... | |
void | resize (const label newLen) |
Change the size of the list. Any new entries are nullptr . More... | |
void | resize_null (const label newLen) |
Set the list to the given size and set all entries to nullptr . More... | |
label | squeezeNull () |
Squeeze out nullptr entries in the list of pointers after which any null pointers will be at the end of the list. More... | |
void | trimTrailingNull () |
Reduce addressable list size to ignore any trailing null pointers. More... | |
void | push_back (T *ptr) |
Append an element to the end of the list. More... | |
void | push_back (UPtrList< T > &&other) |
Move append another list to the end of this list. More... | |
void | swap (UPtrList< T > &list) noexcept |
Swap content. More... | |
void | transfer (UPtrList< T > &list) |
Transfer contents into this list and annul the argument. More... | |
T * | set (const label i, T *ptr) |
Set element to specified pointer and return the old list element, which can be a nullptr. More... | |
void | reorder (const labelUList &oldToNew, const bool check=false) |
Reorder elements. Reordering must be unique (ie, shuffle). More... | |
void | sortOrder (const labelUList &order, const bool check=false) |
Reorder elements according to new order mapping (newToOld). Reordering must be unique (ie, shuffle). More... | |
void | checkNonNull () const |
Check and raise FatalError if any nullptr exists in the list. More... | |
const T & | at (const label i) const |
Return const reference to the element at given position. FatalError for bounds problem or nullptr. More... | |
T & | at (const label i) |
Return reference to the element at given position. FatalError for bounds problem or nullptr. More... | |
const T & | operator[] (const label i) const |
Return const reference to the element at given position. FatalError for bounds problem or nullptr. Same as at(). More... | |
T & | operator[] (const label i) |
Return reference to the element at given position. FatalError for bounds problem or nullptr. Same as at(). More... | |
FOAM_DEPRECATED_FOR (2022-09, "get(), set() or test() methods") const T *operator()(const label i) const | |
Deprecated(2022-09) - same as get() More... | |
void | operator= (const UPtrList< T > &list) |
Copy assignment (shallow copies addresses) More... | |
void | operator= (UPtrList< T > &&list) |
Move assignment. More... | |
T ** | begin_ptr () noexcept |
Iterator to begin of raw pointers traversal (use with caution) More... | |
T ** | end_ptr () noexcept |
Iterator beyond end of raw pointers traversal (use with caution) More... | |
iterator | begin () |
Return iterator to begin traversal of non-nullptr entries. More... | |
iterator | end () noexcept |
Return iterator beyond end of UPtrList traversal. More... | |
const_iterator | cbegin () const |
Return const_iterator to begin traversal of non-nullptr entries. More... | |
const_iterator | cend () const noexcept |
Return const_iterator beyond end of UPtrList traversal. More... | |
const_iterator | begin () const |
Return const_iterator to begin traversal of non-nullptr entries. More... | |
const_iterator | end () const noexcept |
Return const_iterator beyond end of UPtrList traversal. More... | |
void | setSize (const label n) |
Alias for resize() More... | |
T & | first () |
Reference to the first element of the list. More... | |
const T & | first () const |
Return reference to first element of the list. More... | |
T & | last () |
Return reference to the last element of the list. More... | |
const T & | last () const |
Return reference to the last element of the list. More... | |
void | append (T *ptr) |
Append an element to the end of the list. More... | |
void | append (UPtrList< T > &&other) |
Move append another list to the end of this list. More... | |
label | count () const noexcept |
The number of non-nullptr entries in the list. More... | |
Additional Inherited Members | |
Public Types inherited from UPtrList< T > | |
typedef T | value_type |
Type of values the list contains. More... | |
typedef T & | reference |
A non-const reference to the value_type. More... | |
typedef const T & | const_reference |
A const reference to the value_type. More... | |
Protected Member Functions inherited from PtrList< T > | |
template<class INew > | |
void | readIstream (Istream &is, const INew &inew) |
Read from Istream using Istream constructor class. More... | |
Protected Member Functions inherited from UPtrList< T > | |
void | setAddressableSize (const label n) noexcept |
Adjust addressable size. More... | |
label | find_next (label pos) const |
The next non-null entry after the specified position. More... | |
UPtrList (Detail::PtrListDetail< T > &&ptrs) noexcept | |
Low-level move construct. More... | |
Protected Attributes inherited from UPtrList< T > | |
Detail::PtrListDetail< T > | ptrs_ |
The list of pointers. More... | |
A dynamically resizable PtrList with allocation management.
Definition at line 48 of file PtrDynList.H.
|
inlinenoexcept |
Default construct.
Definition at line 28 of file PtrDynListI.H.
|
inlineexplicit |
Construct with given capacity.
Definition at line 36 of file PtrDynListI.H.
|
inline |
Copy construct using 'clone()' method on each element.
Definition at line 47 of file PtrDynListI.H.
|
inline |
Move construct.
Definition at line 58 of file PtrDynListI.H.
|
inline |
Move construct with different sizing parameters.
Definition at line 75 of file PtrDynListI.H.
|
inlinenoexcept |
Move construct from PtrList.
Definition at line 91 of file PtrDynListI.H.
|
inlineexplicit |
Take ownership of pointers in the list, set old pointers to null.
Definition at line 101 of file PtrDynListI.H.
|
default |
Destructor.
|
inlinenoexcept |
Size of the underlying storage.
Definition at line 123 of file PtrDynList.H.
Referenced by PtrDynList< Foam::profilingInformation >::transfer().
|
inline |
Reserve allocation space for at least this size.
Definition at line 111 of file PtrDynListI.H.
|
inline |
Alter the addressed list size.
Definition at line 128 of file PtrDynListI.H.
Referenced by PtrDynList< Foam::profilingInformation >::setSize().
|
inline |
Set the addressed list to the given size, deleting all existing entries. Afterwards the list contains all nullptr
entries.
Definition at line 157 of file PtrDynListI.H.
|
inline |
Clear the addressed list, i.e. set the size to zero.
Allocated size does not change
Definition at line 177 of file PtrDynListI.H.
Referenced by PtrDynList< Foam::profilingInformation >::push_back().
|
inline |
Clear the list and delete storage.
Definition at line 185 of file PtrDynListI.H.
Referenced by PtrDynList< Foam::profilingInformation >::PtrDynList(), PtrDynList< Foam::profilingInformation >::push_back(), and PtrDynList< Foam::profilingInformation >::transfer().
|
inline |
Shrink the allocated space to the number of elements used.
Definition at line 193 of file PtrDynListI.H.
Referenced by PtrDynList< Foam::profilingInformation >::shrink().
|
inline |
Shrink the internal bookkeeping of the allocated space to the number of addressed elements without affecting allocation.
Definition at line 207 of file PtrDynListI.H.
|
inline |
Calls shrink_to_fit()
Definition at line 170 of file PtrDynList.H.
|
inline |
Squeeze out intermediate nullptr entries in the list of pointers and adjust the addressable size accordingly.
Definition at line 219 of file PtrDynListI.H.
Swap with plain PtrList content. Implies shrink_to_fit().
Definition at line 228 of file PtrDynListI.H.
|
inlinenoexcept |
Swap content, independent of sizing parameter.
Definition at line 253 of file PtrDynListI.H.
Transfer contents of the argument PtrList into this.
Definition at line 275 of file PtrDynListI.H.
|
inline |
Transfer contents of any sized PtrDynList into this.
Definition at line 294 of file PtrDynListI.H.
|
inline |
Construct an element at the end of the list, return reference to the new list element.
Definition at line 317 of file PtrDynListI.H.
|
inline |
Append an element to the end of the list.
Definition at line 326 of file PtrDynListI.H.
Referenced by PtrDynList< Foam::profilingInformation >::append().
|
inline |
Move append an element to the end of the list.
Definition at line 335 of file PtrDynListI.H.
Move append an element to the end of the list.
Definition at line 342 of file PtrDynListI.H.
Move or clone append a tmp to the end of the list.
Definition at line 349 of file PtrDynListI.H.
Move or clone append a tmp to the end of the list.
Definition at line 356 of file PtrDynListI.H.
Move append another list to the end of this list.
Definition at line 363 of file PtrDynListI.H.
|
inline |
Move append another list to the end of this list.
Definition at line 382 of file PtrDynListI.H.
|
inline |
Reduce size by 1 or more elements. Can be called on an empty list.
Definition at line 412 of file PtrDynListI.H.
|
inline |
Construct and set a new element at given position, (discard old element at that location). Auto-sizes list as required.
i | - the location to set |
args | arguments to forward to the constructor of the element |
Definition at line 428 of file PtrDynListI.H.
|
inline |
Same as emplace_set()
Definition at line 444 of file PtrDynListI.H.
|
inline |
Like emplace_set() but will not overwrite an occupied location.
i | - the location to set (unless already defined) |
args | arguments to forward to the constructor of the element |
Definition at line 456 of file PtrDynListI.H.
|
inline |
Set element to given pointer and return old element (can be null). Auto-sizes list as required.
Definition at line 471 of file PtrDynListI.H.
|
inline |
Set element to given pointer and return old element Auto-sizes list as required.
Definition at line 487 of file PtrDynListI.H.
|
inline |
Set element to given autoPtr and return old element Auto-sizes list as required.
Definition at line 498 of file PtrDynListI.H.
|
inline |
Set element to given refPtr and return old element Auto-sizes list as required.
Definition at line 509 of file PtrDynListI.H.
|
inline |
Set element to given tmp and return old element Auto-sizes list as required.
Definition at line 521 of file PtrDynListI.H.
|
inline |
Reorder elements. Reordering must be unique (ie, shuffle).
Definition at line 531 of file PtrDynListI.H.
Copy (clone) assignment.
Definition at line 543 of file PtrDynListI.H.
|
inline |
Copy (clone) assignment.
Definition at line 559 of file PtrDynListI.H.
|
inline |
Copy (clone) assignment with different sizing parameters.
Definition at line 576 of file PtrDynListI.H.
Move assignment.
Definition at line 596 of file PtrDynListI.H.
|
inline |
Move assignment.
Definition at line 606 of file PtrDynListI.H.
|
inline |
Move assignment with different sizing parameters.
Definition at line 617 of file PtrDynListI.H.
Set element to given autoPtr and return old element.
FOAM_DEPRECATED_FOR(2022-10, "set(autoPtr&&))")
Definition at line 364 of file PtrDynList.H.
|
inline |
Same as resize()
Definition at line 372 of file PtrDynList.H.
Move append an element to the end of the list.
Definition at line 377 of file PtrDynList.H.
Referenced by fvMatrix< Type >::setInterfaces().
|
inline |
Append an element to the end of the list.
FOAM_DEPRECATED_FOR(2022-10, "push_back()")
Definition at line 384 of file PtrDynList.H.
|
inline |
Move append an element to the end of the list.
FOAM_DEPRECATED_FOR(2022-10, "push_back()")
Definition at line 391 of file PtrDynList.H.
Move append an element to the end of the list.
FOAM_DEPRECATED_FOR(2022-10, "push_back()")
Definition at line 401 of file PtrDynList.H.
Move or clone append a tmp to the end of the list.
FOAM_DEPRECATED_FOR(2022-10, "push_back()")
Definition at line 408 of file PtrDynList.H.
Move or clone append a tmp to the end of the list.
FOAM_DEPRECATED_FOR(2022-10, "push_back()")
Definition at line 415 of file PtrDynList.H.
Move append another list to the end of this list.
FOAM_DEPRECATED_FOR(2022-10, "push_back()")
Definition at line 422 of file PtrDynList.H.
|
inline |
Move append another list to the end of this list.
Definition at line 428 of file PtrDynList.H.