Loading...
Searching...
No Matches
PtrDynList< T, SizeMin > Class Template Reference

A dynamically resizable PtrList with allocation management. More...

#include <PtrDynList.H>

Inheritance diagram for PtrDynList< T, SizeMin >:
Collaboration diagram for PtrDynList< T, SizeMin >:

Public Member Functions

constexpr PtrDynList () noexcept
 Default construct.
 PtrDynList (const label len)
 Construct with given initial capacity.
 PtrDynList (std::pair< label, label > sizing)
 Construct with given size and capacity.
 PtrDynList (const PtrDynList< T, SizeMin > &list)
 Copy construct using 'clone()' method on each element.
 PtrDynList (PtrDynList< T, SizeMin > &&list)
 Move construct.
template<int AnySizeMin>
 PtrDynList (PtrDynList< T, AnySizeMin > &&list)
 Move construct with different sizing parameters.
 PtrDynList (PtrList< T > &&list) noexcept
 Move construct from PtrList.
 PtrDynList (UList< T * > &list)
 Take ownership of pointers in the list, set old pointers to null.
 ~PtrDynList ()
 Destructor, sync allocated size before list destruction.
label capacity () const noexcept
 Size of the underlying storage.
void setCapacity_unsafe (label len) noexcept
 Change the value for the list capacity directly (ADVANCED, UNSAFE) Does not perform any memory management or resizing.
void reserve (const label len)
 Reserve allocation space for at least this size.
void reserve_exact (const label len)
 Reserve allocation space for at least this size. If allocation is required, uses the specified size without any other resizing logic.
void resize (const label len)
 Alter the addressed list size.
void resize_null (const label len)
 Set the addressed list to the given size, deleting all existing entries. Afterwards the list contains all nullptr entries.
void clear ()
 Clear the addressed list, i.e. set the size to zero.
void clearStorage ()
 Clear the list and delete storage.
void shrink_to_fit ()
 Shrink the allocated space to the number of elements used.
void shrink ()
 Alias for shrink_to_fit().
label squeezeNull ()
 Squeeze out intermediate nullptr entries in the list of pointers and adjust the addressable size accordingly.
void swap (PtrList< T > &list)
 Swap with plain PtrList content. Implies shrink_to_fit().
template<int AnySizeMin>
void swap (PtrDynList< T, AnySizeMin > &other) noexcept
 Swap content, independent of sizing parameter.
void transfer (PtrList< T > &list)
 Transfer contents of the argument PtrList into this.
template<int AnySizeMin>
void transfer (PtrDynList< T, AnySizeMin > &list)
 Transfer contents of any sized PtrDynList into this.
template<class... Args>
Templace_back (Args &&... args)
 Construct an element at the end of the list, return reference to the new list element.
void push_back (T *ptr)
 Append an element to the end of the list.
void push_back (std::unique_ptr< T > &&ptr)
 Move append an element to the end of the list.
void push_back (autoPtr< T > &&ptr)
 Move append an element to the end of the list.
void push_back (const refPtr< T > &ptr)
 Move or clone append a tmp to the end of the list.
void push_back (const tmp< T > &ptr)
 Move or clone append a tmp to the end of the list.
void push_back (PtrList< T > &&other)
 Move append another list to the end of this list.
template<int AnySizeMin>
void push_back (PtrDynList< T, AnySizeMin > &&other)
 Move append another list to the end of this list.
void pop_back (label n=1)
 Reduce size by 1 or more elements. Can be called on an empty list.
template<class... Args>
Templace_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.
template<class... Args>
Templace (const label i, Args &&... args)
 Same as emplace_set().
template<class... Args>
Ttry_emplace (const label i, Args &&... args)
 Like emplace_set() but will not overwrite an occupied location.
autoPtr< Tset (const label i, T *ptr)
 Set element to given pointer and return old element (can be null). Auto-sizes list as required.
autoPtr< Tset (const label i, std::unique_ptr< T > &&ptr)
 Set element to given pointer and return old element Auto-sizes list as required.
autoPtr< Tset (const label i, autoPtr< T > &&ptr)
 Set element to given autoPtr and return old element Auto-sizes list as required.
autoPtr< Tset (const label i, const refPtr< T > &ptr)
 Set element to given refPtr and return old element Auto-sizes list as required.
autoPtr< Tset (const label i, const tmp< T > &ptr)
 Set element to given tmp and return old element Auto-sizes list as required.
OstreamprintAddresses (Ostream &os, const bool full=false) const
 Print pointer addresses to Ostream (debugging only).
void operator= (const UPtrList< T > &list)
 Copy (clone) assignment.
void operator= (const PtrDynList< T, SizeMin > &list)
 Copy (clone) assignment.
template<int AnySizeMin>
void operator= (const PtrDynList< T, AnySizeMin > &list)
 Copy (clone) assignment with different sizing parameters.
void operator= (PtrList< T > &&list)
 Move assignment.
void operator= (PtrDynList< T, SizeMin > &&list)
 Move assignment.
template<int AnySizeMin>
void operator= (PtrDynList< T, AnySizeMin > &&list)
 Move assignment with different sizing parameters.
void push_back (autoPtr< T > &ptr)=delete
 Disallow push_back with autoPtr without std::move.
autoPtr< Tset (const label i, autoPtr< T > &ptr)
 Set element to given autoPtr and return old element.
void setSize (const label n)
 Same as resize().
void append (autoPtr< T > &ptr)
 Move append an element to the end of the list.
void append (T *ptr)
 Append an element to the end of the list.
void append (std::unique_ptr< T > &&ptr)
 Move append an element to the end of the list.
void append (autoPtr< T > &&ptr)
 Move append an element to the end of the list.
void append (const refPtr< T > &ptr)
 Move or clone append a tmp to the end of the list.
void append (const tmp< T > &ptr)
 Move or clone append a tmp to the end of the list.
void append (PtrList< T > &&other)
 Move append another list to the end of this list.
template<int AnySizeMin>
void append (PtrDynList< T, AnySizeMin > &&other)
 Move append another list to the end of this list.
Public Member Functions inherited from PtrList< T >
constexpr PtrList () noexcept
 Default construct.
 PtrList (const label len)
 Construct with specified size, each element initialized to nullptr.
 PtrList (const PtrList< T > &list)
 Copy construct using 'clone()' method on each element.
 PtrList (PtrList< T > &&list) noexcept
 Move construct.
 PtrList (UList< T * > &list)
 Take ownership of pointers in the list, set old pointers to null.
template<class CloneArg>
 PtrList (const PtrList< T > &list, const CloneArg &cloneArgs)
 Copy construct using 'clone()' method on each element.
 PtrList (PtrList< T > &list, bool reuse)
 Construct as copy or re-use as specified.
 PtrList (const SLPtrList< T > &list)
 Copy construct using 'clone()' on each element of SLPtrList<T>.
template<class INew>
 PtrList (Istream &is, const INew &inew)
 Construct from Istream using given Istream constructor class.
 PtrList (Istream &is)
 Construct from Istream using default Istream constructor class.
 ~PtrList ()
 Destructor. Frees all pointers.
template<class... Args>
PtrList< Tclone (Args &&... args) const
 Make a copy by cloning each of the list elements.
const Tset (const label i) const
 Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking).
void clear ()
 Clear the PtrList. Delete allocated entries and set size to zero.
void free ()
 Free memory and nullify all entries. Does not change the list size.
void resize (const label newLen)
 Adjust size of PtrList.
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.
template<class... Args>
Templace_back (Args &&... args)
 Construct and append an element to the end of the list, return reference to the new list element.
void push_back (T *ptr)
 Append an element to the end of the list.
void push_back (std::unique_ptr< T > &&ptr)
 Move append an element to the end of the list.
void push_back (autoPtr< T > &&ptr)
 Move append an element to the end of the list.
void push_back (const refPtr< T > &ptr)
 Move or clone append a refPtr to the end of the list.
void push_back (const tmp< T > &ptr)
 Move or clone append a tmp to the end of the list.
void push_back (PtrList< T > &&other)
 Move append another list to the end of this list.
template<class... Args>
Templace_set (const label i, Args &&... args)
 Construct and set a new element at given position, (discard old element at that location).
template<class... Args>
Templace (const label i, Args &&... args)
 Same as emplace_set().
template<class... Args>
Ttry_emplace (const label i, Args &&... args)
 Like emplace_set() but will not overwrite an occupied (non-null) location.
autoPtr< Tset (const label i, T *ptr)
 Set element to given pointer and return old element (can be null).
autoPtr< Tset (const label i, std::unique_ptr< T > &&ptr)
 Set element to given unique_ptr and return old element.
autoPtr< Tset (const label i, autoPtr< T > &&ptr)
 Set element to given autoPtr and return old element.
autoPtr< Tset (const label i, const refPtr< T > &ptr)
 Set element to given refPtr and return old element.
autoPtr< Tset (const label i, const tmp< T > &ptr)
 Set element to given tmp and return old element.
autoPtr< Trelease (const label i)
 Release ownership of the pointer at the given position.
void transfer (PtrList< T > &list)
 Transfer into this list and annul the argument list.
void operator= (const UPtrList< T > &list)
 Copy assignment.
void operator= (const PtrList< T > &list)
 Copy assignment.
void operator= (PtrList< T > &&list)
 Move assignment.
void push_back (autoPtr< T > &ptr)=delete
 Disallow push_back with autoPtr without std::move.
autoPtr< Tset (const label i, autoPtr< T > &ptr)
 Set element to given autoPtr and return old element.
void setSize (const label n)
 Same as resize().
void append (autoPtr< T > &ptr)
 Move append an element to the end of the list.
void append (T *ptr)
 Append an element to the end of the list.
void append (std::unique_ptr< T > &&ptr)
 Move append an element to the end of the list.
void append (autoPtr< T > &&ptr)
 Move append an element to the end of the list.
void append (const refPtr< T > &ptr)
 Move or clone append a tmp to the end of the list.
void append (const tmp< T > &ptr)
 Move or clone append a tmp to the end of the list.
void append (PtrList< T > &&other)
 Move append another list to the end of this list.
template<class... Args>
Foam::PtrList< Tclone (Args &&... args) const
Public Member Functions inherited from UPtrList< T >
constexpr UPtrList () noexcept=default
 Default construct.
 UPtrList (const label len)
 Construct with specified size and set all entries to nullptr.
 UPtrList (const UPtrList< T > &list)
 Copy construct (shallow copies addresses).
 UPtrList (UPtrList< T > &&list) noexcept
 Move construct.
 UPtrList (UPtrList< T > &list, bool reuse)
 Construct as shallow copy or re-use as specified.
 UPtrList (PtrList< T > &list)
 Shallow copy from PtrList.
 UPtrList (const UList< T * > &list)
 Construct from UList of pointers (shallow copy).
 UPtrList (UList< T > &list)
 Construct from UList, taking the address of each list element.
bool empty () const noexcept
 True if the list is empty (ie, size() is zero).
label size () const noexcept
 The number of entries in the list.
label capacity () const noexcept
 Size of the underlying storage.
label count_nonnull () const noexcept
 The number of non-nullptr entries in the list.
Tfront ()
 Reference to the first element of the list.
const Tfront () const
 Reference to first element of the list.
Tback ()
 Reference to the last element of the list.
const Tback () const
 Reference to the last element of the list.
const Ttest (const label i) const
 Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking).
const Tget (const label i) const
 Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking).
Tget (const label i)
 Return pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking).
const Tset (const label i) const
 Return const pointer to element (can be nullptr), or nullptr for out-of-range access (ie, with bounds checking).
void clear ()
 Set list size to zero.
void free ()
 Nullify all entries. Does not change the list size.
void resize (const label newLen)
 Change the size of the list. Any new entries are nullptr.
void resize_null (const label newLen)
 Set the list to the given size and set all entries to nullptr.
label squeezeNull ()
 Squeeze out nullptr entries in the list of pointers after which any null pointers will be at the end of the list.
void push_back (T *ptr)
 Append an element to the end of the list.
void push_back (UPtrList< T > &&other)
 Move append another list to the end of this list.
void swap (UPtrList< T > &list) noexcept
 Swap content.
void transfer (UPtrList< T > &list)
 Transfer contents into this list and annul the argument.
Tset (const label i, T *ptr)
 Set element to specified pointer and return the old list element, which can be a nullptr.
void reorder (const labelUList &oldToNew, const bool check=false)
 Reorder elements. Reordering must be unique (ie, shuffle).
void sortOrder (const labelUList &order, const bool check=false)
 Reorder elements according to new order mapping (newToOld). Reordering must be unique (ie, shuffle).
void checkNonNull () const
 Check and raise FatalError if any nullptr exists in the list.
const Tat (const label i) const
 Return const reference to the element at given position. FatalError for bounds problem or nullptr.
Tat (const label i)
 Return reference to the element at given position. FatalError for bounds problem or nullptr.
const Toperator[] (const label i) const
 Return const reference to the element at given position. FatalError for bounds problem or nullptr. Same as at().
Toperator[] (const label i)
 Return reference to the element at given position. FatalError for bounds problem or nullptr. Same as at().
 FOAM_DEPRECATED_FOR (2022-09, "get(), set() or test() methods") const T *operator()(const label i) const
 Deprecated(2022-09) - same as get().
void operator= (const UPtrList< T > &list)
 Copy assignment (shallow copies addresses).
void operator= (UPtrList< T > &&list)
 Move assignment.
OstreamprintAddresses (Ostream &os) const
 Print pointer addresses to Ostream (debugging only).
OstreamwriteList (Ostream &os, const bool trimNull=false) const
 Write UPtrList to Ostream, optionally ignoring null entries.
T ** begin_ptr () noexcept
 Iterator to begin of raw pointers traversal (use with caution).
T ** end_ptr () noexcept
 Iterator beyond end of raw pointers traversal (use with caution).
iterator begin ()
 Return iterator to begin traversal of non-nullptr entries.
iterator end () noexcept
 Return iterator beyond end of UPtrList traversal.
const_iterator cbegin () const
 Return const_iterator to begin traversal of non-nullptr entries.
const_iterator cend () const noexcept
 Return const_iterator beyond end of UPtrList traversal.
const_iterator begin () const
 Return const_iterator to begin traversal of non-nullptr entries.
const_iterator end () const noexcept
 Return const_iterator beyond end of UPtrList traversal.
void setSize (const label n)
 Alias for resize().
Tfirst ()
 Reference to the first element of the list.
const Tfirst () const
 Return reference to first element of the list.
Tlast ()
 Return reference to the last element of the list.
const Tlast () const
 Return reference to the last element of the list.
void append (T *ptr)
 Append an element to the end of the list.
void append (UPtrList< T > &&other)
 Move append another list to the end of this list.
label count () const noexcept
 The number of non-nullptr entries in the list.

Additional Inherited Members

Public Types inherited from UPtrList< T >
typedef T value_type
 Type of values the list contains.
typedef Treference
 A non-const reference to the value_type.
typedef const Tconst_reference
 A const reference to the value_type.
Protected Member Functions inherited from PtrList< T >
template<class INew>
void readIstream (Istream &is, const INew &inew)
 Read from Istream using Istream constructor class.
Protected Member Functions inherited from UPtrList< T >
void setAddressableSize (const label n) noexcept
 Adjust addressable size.
label find_next (label pos) const
 The next non-null entry after the specified position.
 UPtrList (Detail::PtrListDetail< T > &&ptrs) noexcept
 Low-level move construct.
Protected Attributes inherited from UPtrList< T >
Detail::PtrListDetail< Tptrs_
 The list of pointers.

Detailed Description

template<class T, int SizeMin = 64>
class Foam::PtrDynList< T, SizeMin >

A dynamically resizable PtrList with allocation management.

See also
Foam::UPtrList Foam::PtrList
Source files

Definition at line 55 of file PtrDynList.H.

Constructor & Destructor Documentation

◆ PtrDynList() [1/8]

template<class T, int SizeMin>
PtrDynList ( )
inlineconstexprnoexcept

Default construct.

Definition at line 28 of file PtrDynListI.H.

References Foam::noexcept, PtrList< T >::PtrList(), and Foam::T().

Referenced by append(), operator=(), operator=(), operator=(), operator=(), PtrDynList(), PtrDynList(), PtrDynList(), push_back(), and transfer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ PtrDynList() [2/8]

template<class T, int SizeMin>
PtrDynList ( const label len)
inlineexplicit

Construct with given initial capacity.

Definition at line 36 of file PtrDynListI.H.

References PtrList< T >::PtrList(), reserve(), and Foam::T().

Here is the call graph for this function:

◆ PtrDynList() [3/8]

template<class T, int SizeMin>
PtrDynList ( std::pair< label, label > sizing)
inlineexplicit

Construct with given size and capacity.

Definition at line 46 of file PtrDynListI.H.

References UPtrList< T >::first(), Foam::max(), PtrList< T >::PtrList(), UPtrList< T >::setAddressableSize(), UPtrList< T >::size(), and Foam::T().

Here is the call graph for this function:

◆ PtrDynList() [4/8]

template<class T, int SizeMin>
PtrDynList ( const PtrDynList< T, SizeMin > & list)
inline

Copy construct using 'clone()' method on each element.

Definition at line 59 of file PtrDynListI.H.

References PtrDynList(), PtrList< T >::PtrList(), UPtrList< T >::size(), and Foam::T().

Here is the call graph for this function:

◆ PtrDynList() [5/8]

template<class T, int SizeMin>
PtrDynList ( PtrDynList< T, SizeMin > && list)
inline

Move construct.

Definition at line 70 of file PtrDynListI.H.

References PtrDynList(), PtrList< T >::PtrList(), and Foam::T().

Here is the call graph for this function:

◆ PtrDynList() [6/8]

template<class T, int SizeMin>
template<int AnySizeMin>
PtrDynList ( PtrDynList< T, AnySizeMin > && list)
inline

Move construct with different sizing parameters.

Definition at line 84 of file PtrDynListI.H.

References capacity(), PtrDynList(), PtrList< T >::PtrList(), and Foam::T().

Here is the call graph for this function:

◆ PtrDynList() [7/8]

template<class T, int SizeMin>
PtrDynList ( PtrList< T > && list)
inlinenoexcept

Move construct from PtrList.

Definition at line 97 of file PtrDynListI.H.

References Foam::noexcept, PtrList< T >::PtrList(), and UPtrList< T >::size().

Here is the call graph for this function:

◆ PtrDynList() [8/8]

template<class T, int SizeMin>
PtrDynList ( UList< T * > & list)
inlineexplicit

Take ownership of pointers in the list, set old pointers to null.

Definition at line 108 of file PtrDynListI.H.

References PtrList< T >::PtrList(), UPtrList< T >::size(), and Foam::T().

Here is the call graph for this function:

◆ ~PtrDynList()

template<class T, int SizeMin = 64>
~PtrDynList ( )
inline

Destructor, sync allocated size before list destruction.

Definition at line 118 of file PtrDynList.H.

References UPtrList< T >::setAddressableSize().

Here is the call graph for this function:

Member Function Documentation

◆ capacity()

template<class T, int SizeMin = 64>
label capacity ( ) const
inlinenoexcept

Size of the underlying storage.

Definition at line 128 of file PtrDynList.H.

References Foam::noexcept.

Referenced by PtrDynList().

Here is the caller graph for this function:

◆ setCapacity_unsafe()

template<class T, int SizeMin = 64>
void setCapacity_unsafe ( label len)
inlinenoexcept

Change the value for the list capacity directly (ADVANCED, UNSAFE) Does not perform any memory management or resizing.

Definition at line 134 of file PtrDynList.H.

◆ reserve()

template<class T, int SizeMin>
void reserve ( const label len)
inline

Reserve allocation space for at least this size.

New entries are initialized to nullptr.

Definition at line 118 of file PtrDynListI.H.

References Foam::ListPolicy::reserve_size(), PtrList< T >::resize(), UPtrList< T >::setAddressableSize(), and UPtrList< T >::size().

Referenced by PtrDynList().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ reserve_exact()

template<class T, int SizeMin>
void reserve_exact ( const label len)
inline

Reserve allocation space for at least this size. If allocation is required, uses the specified size without any other resizing logic.

New entries are initialized to nullptr.

Definition at line 142 of file PtrDynListI.H.

References UPtrList< T >::size().

Here is the call graph for this function:

◆ resize()

template<class T, int SizeMin>
void resize ( const label len)
inline

Alter the addressed list size.

New entries are initialized to nullptr.

Definition at line 162 of file PtrDynListI.H.

Referenced by setSize().

Here is the caller graph for this function:

◆ resize_null()

template<class T, int SizeMin>
void resize_null ( const label len)
inline

Set the addressed list to the given size, deleting all existing entries. Afterwards the list contains all nullptr entries.

Definition at line 188 of file PtrDynListI.H.

References UPtrList< T >::setAddressableSize().

Here is the call graph for this function:

◆ clear()

template<class T, int SizeMin>
void clear ( )
inline

Clear the addressed list, i.e. set the size to zero.

Allocated size does not change

Definition at line 212 of file PtrDynListI.H.

◆ clearStorage()

template<class T, int SizeMin>
void clearStorage ( )
inline

Clear the list and delete storage.

Definition at line 220 of file PtrDynListI.H.

References PtrList< T >::clear(), and UPtrList< T >::setAddressableSize().

Here is the call graph for this function:

◆ shrink_to_fit()

template<class T, int SizeMin>
void shrink_to_fit ( )
inline

Shrink the allocated space to the number of elements used.

Definition at line 230 of file PtrDynListI.H.

Referenced by shrink().

Here is the caller graph for this function:

◆ shrink()

template<class T, int SizeMin = 64>
void shrink ( )
inline

Alias for shrink_to_fit().

Definition at line 186 of file PtrDynList.H.

References shrink_to_fit().

Here is the call graph for this function:

◆ squeezeNull()

template<class T, int SizeMin>
Foam::label squeezeNull ( )
inline

Squeeze out intermediate nullptr entries in the list of pointers and adjust the addressable size accordingly.

Returns
the number of non-null entries

Definition at line 243 of file PtrDynListI.H.

References UPtrList< T >::setAddressableSize(), and UPtrList< T >::squeezeNull().

Here is the call graph for this function:

◆ swap() [1/2]

template<class T, int SizeMin>
void swap ( PtrList< T > & list)
inline

Swap with plain PtrList content. Implies shrink_to_fit().

Definition at line 252 of file PtrDynListI.H.

References FOAM_UNLIKELY, and PtrList< T >::PtrList().

Here is the call graph for this function:

◆ swap() [2/2]

template<class T, int SizeMin>
template<int AnySizeMin>
void swap ( PtrDynList< T, AnySizeMin > & other)
inlinenoexcept

Swap content, independent of sizing parameter.

Definition at line 279 of file PtrDynListI.H.

◆ transfer() [1/2]

template<class T, int SizeMin>
void transfer ( PtrList< T > & list)
inline

Transfer contents of the argument PtrList into this.

Definition at line 305 of file PtrDynListI.H.

References PtrList< T >::PtrList(), UPtrList< T >::setAddressableSize(), UPtrList< T >::size(), and PtrList< T >::transfer().

Referenced by operator=(), operator=(), and operator=().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ transfer() [2/2]

template<class T, int SizeMin>
template<int AnySizeMin>
void transfer ( PtrDynList< T, AnySizeMin > & list)
inline

Transfer contents of any sized PtrDynList into this.

Definition at line 318 of file PtrDynListI.H.

References FOAM_UNLIKELY, PtrDynList(), and PtrList< T >::PtrList().

Here is the call graph for this function:

◆ emplace_back()

template<class T, int SizeMin>
template<class... Args>
T & emplace_back ( Args &&... args)
inline

Construct an element at the end of the list, return reference to the new list element.

Definition at line 346 of file PtrDynListI.H.

References args, push_back(), Foam::T(), and T.

Here is the call graph for this function:

◆ push_back() [1/8]

template<class T, int SizeMin>
void push_back ( T * ptr)
inline

Append an element to the end of the list.

Definition at line 355 of file PtrDynListI.H.

References UPtrList< T >::ptrs_, resize(), UPtrList< T >::size(), and Foam::T().

Referenced by append(), append(), append(), append(), append(), append(), append(), append(), emplace_back(), push_back(), push_back(), push_back(), and push_back().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ push_back() [2/8]

template<class T, int SizeMin>
void push_back ( std::unique_ptr< T > && ptr)
inline

Move append an element to the end of the list.

Definition at line 364 of file PtrDynListI.H.

References push_back().

Here is the call graph for this function:

◆ push_back() [3/8]

template<class T, int SizeMin>
void push_back ( autoPtr< T > && ptr)
inline

Move append an element to the end of the list.

Definition at line 371 of file PtrDynListI.H.

References push_back().

Here is the call graph for this function:

◆ push_back() [4/8]

template<class T, int SizeMin>
void push_back ( const refPtr< T > & ptr)
inline

Move or clone append a tmp to the end of the list.

Definition at line 378 of file PtrDynListI.H.

References refPtr< T >::ptr(), and push_back().

Here is the call graph for this function:

◆ push_back() [5/8]

template<class T, int SizeMin>
void push_back ( const tmp< T > & ptr)
inline

Move or clone append a tmp to the end of the list.

Definition at line 385 of file PtrDynListI.H.

References tmp< T >::ptr(), and push_back().

Here is the call graph for this function:

◆ push_back() [6/8]

template<class T, int SizeMin>
void push_back ( PtrList< T > && other)
inline

Move append another list to the end of this list.

Definition at line 392 of file PtrDynListI.H.

References PtrList< T >::PtrList(), resize(), set(), and UPtrList< T >::size().

Here is the call graph for this function:

◆ push_back() [7/8]

template<class T, int SizeMin>
template<int AnySizeMin>
void push_back ( PtrDynList< T, AnySizeMin > && other)
inline

Move append another list to the end of this list.

Definition at line 410 of file PtrDynListI.H.

References Foam::abort(), Foam::FatalError, FatalErrorInFunction, FOAM_UNLIKELY, PtrDynList(), PtrList< T >::PtrList(), resize(), set(), and UPtrList< T >::size().

Here is the call graph for this function:

◆ pop_back()

template<class T, int SizeMin>
void pop_back ( label n = 1)
inline

Reduce size by 1 or more elements. Can be called on an empty list.

Definition at line 444 of file PtrDynListI.H.

References clear(), n, resize(), and UPtrList< T >::size().

Here is the call graph for this function:

◆ emplace_set()

template<class T, int SizeMin>
template<class... Args>
T & emplace_set ( const label i,
Args &&... args )
inline

Construct and set a new element at given position, (discard old element at that location). Auto-sizes list as required.

Parameters
i- the location to set
argsarguments to forward to the constructor of the element
Returns
reference to the new list element.

Definition at line 459 of file PtrDynListI.H.

References args, PtrList< T >::emplace_set(), resize(), UPtrList< T >::size(), and Foam::T().

Referenced by emplace().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ emplace()

template<class T, int SizeMin>
template<class... Args>
T & emplace ( const label i,
Args &&... args )
inline

Same as emplace_set().

Definition at line 475 of file PtrDynListI.H.

References args, emplace_set(), and Foam::T().

Here is the call graph for this function:

◆ try_emplace()

template<class T, int SizeMin>
template<class... Args>
T & try_emplace ( const label i,
Args &&... args )
inline

Like emplace_set() but will not overwrite an occupied location.

Parameters
i- the location to set (unless already defined)
argsarguments to forward to the constructor of the element
Returns
reference to the existing or the new list element.

Definition at line 487 of file PtrDynListI.H.

References args, resize(), UPtrList< T >::size(), Foam::T(), and PtrList< T >::try_emplace().

Here is the call graph for this function:

◆ set() [1/6]

template<class T, int SizeMin>
Foam::autoPtr< T > set ( const label i,
T * ptr )
inline

Set element to given pointer and return old element (can be null). Auto-sizes list as required.

Definition at line 502 of file PtrDynListI.H.

References resize(), UPtrList< T >::set(), UPtrList< T >::size(), and Foam::T().

Referenced by push_back(), push_back(), set(), set(), set(), set(), and set().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set() [2/6]

template<class T, int SizeMin>
Foam::autoPtr< T > set ( const label i,
std::unique_ptr< T > && ptr )
inline

Set element to given pointer and return old element Auto-sizes list as required.

Definition at line 518 of file PtrDynListI.H.

References set().

Here is the call graph for this function:

◆ set() [3/6]

template<class T, int SizeMin>
Foam::autoPtr< T > set ( const label i,
autoPtr< T > && ptr )
inline

Set element to given autoPtr and return old element Auto-sizes list as required.

Definition at line 529 of file PtrDynListI.H.

References set().

Here is the call graph for this function:

◆ set() [4/6]

template<class T, int SizeMin>
Foam::autoPtr< T > set ( const label i,
const refPtr< T > & ptr )
inline

Set element to given refPtr and return old element Auto-sizes list as required.

Definition at line 540 of file PtrDynListI.H.

References refPtr< T >::ptr(), and set().

Here is the call graph for this function:

◆ set() [5/6]

template<class T, int SizeMin>
Foam::autoPtr< T > set ( const label i,
const tmp< T > & ptr )
inline

Set element to given tmp and return old element Auto-sizes list as required.

Definition at line 552 of file PtrDynListI.H.

References tmp< T >::ptr(), and set().

Here is the call graph for this function:

◆ printAddresses()

template<class T, int SizeMin>
Foam::Ostream & printAddresses ( Ostream & os,
const bool full = false ) const

Print pointer addresses to Ostream (debugging only).

Optionally print addresses within the upper (capacity) region

Definition at line 563 of file PtrDynListI.H.

References os(), UPtrList< T >::printAddresses(), and UPtrList< T >::ptrs_.

Here is the call graph for this function:

◆ operator=() [1/6]

template<class T, int SizeMin>
void operator= ( const UPtrList< T > & list)
inline

Copy (clone) assignment.

Definition at line 583 of file PtrDynListI.H.

References FOAM_UNLIKELY, PtrList< T >::operator=(), resize(), and UPtrList< T >::size().

Here is the call graph for this function:

◆ operator=() [2/6]

template<class T, int SizeMin>
void operator= ( const PtrDynList< T, SizeMin > & list)
inline

Copy (clone) assignment.

Definition at line 606 of file PtrDynListI.H.

References FOAM_UNLIKELY, PtrList< T >::operator=(), PtrDynList(), resize(), and UPtrList< T >::size().

Here is the call graph for this function:

◆ operator=() [3/6]

template<class T, int SizeMin>
template<int AnySizeMin>
void operator= ( const PtrDynList< T, AnySizeMin > & list)
inline

Copy (clone) assignment with different sizing parameters.

Definition at line 630 of file PtrDynListI.H.

References FOAM_UNLIKELY, PtrList< T >::operator=(), PtrDynList(), PtrList< T >::PtrList(), resize(), and UPtrList< T >::size().

Here is the call graph for this function:

◆ operator=() [4/6]

template<class T, int SizeMin>
void operator= ( PtrList< T > && list)
inline

Move assignment.

Definition at line 654 of file PtrDynListI.H.

References PtrList< T >::PtrList(), and transfer().

Here is the call graph for this function:

◆ operator=() [5/6]

template<class T, int SizeMin>
void operator= ( PtrDynList< T, SizeMin > && list)
inline

Move assignment.

Definition at line 664 of file PtrDynListI.H.

References PtrDynList(), and transfer().

Here is the call graph for this function:

◆ operator=() [6/6]

template<class T, int SizeMin>
template<int AnySizeMin>
void operator= ( PtrDynList< T, AnySizeMin > && list)
inline

Move assignment with different sizing parameters.

Definition at line 675 of file PtrDynListI.H.

References PtrDynList(), and transfer().

Here is the call graph for this function:

◆ push_back() [8/8]

template<class T, int SizeMin = 64>
void push_back ( autoPtr< T > & ptr)
delete

Disallow push_back with autoPtr without std::move.

◆ set() [6/6]

template<class T, int SizeMin = 64>
autoPtr< T > set ( const label i,
autoPtr< T > & ptr )
inline

Set element to given autoPtr and return old element.

FOAM_DEPRECATED_FOR(2022-10, "set(autoPtr&&))")

Definition at line 385 of file PtrDynList.H.

References autoPtr< T >::release(), and set().

Here is the call graph for this function:

◆ setSize()

template<class T, int SizeMin = 64>
void setSize ( const label n)
inline

Same as resize().

Definition at line 393 of file PtrDynList.H.

References n, and resize().

Here is the call graph for this function:

◆ append() [1/8]

template<class T, int SizeMin = 64>
void append ( autoPtr< T > & ptr)
inline

Move append an element to the end of the list.

Definition at line 398 of file PtrDynList.H.

References push_back().

Referenced by fvMatrix< Type >::setInterfaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ append() [2/8]

template<class T, int SizeMin = 64>
void append ( T * ptr)
inline

Append an element to the end of the list.

FOAM_DEPRECATED_FOR(2022-10, "push_back()")

Definition at line 405 of file PtrDynList.H.

References push_back(), and Foam::T().

Here is the call graph for this function:

◆ append() [3/8]

template<class T, int SizeMin = 64>
void append ( std::unique_ptr< T > && ptr)
inline

Move append an element to the end of the list.

FOAM_DEPRECATED_FOR(2022-10, "push_back()")

Definition at line 412 of file PtrDynList.H.

References push_back().

Here is the call graph for this function:

◆ append() [4/8]

template<class T, int SizeMin = 64>
void append ( autoPtr< T > && ptr)
inline

Move append an element to the end of the list.

FOAM_DEPRECATED_FOR(2022-10, "push_back()")

Definition at line 422 of file PtrDynList.H.

References push_back().

Here is the call graph for this function:

◆ append() [5/8]

template<class T, int SizeMin = 64>
void append ( const refPtr< T > & ptr)
inline

Move or clone append a tmp to the end of the list.

FOAM_DEPRECATED_FOR(2022-10, "push_back()")

Definition at line 429 of file PtrDynList.H.

References push_back().

Here is the call graph for this function:

◆ append() [6/8]

template<class T, int SizeMin = 64>
void append ( const tmp< T > & ptr)
inline

Move or clone append a tmp to the end of the list.

FOAM_DEPRECATED_FOR(2022-10, "push_back()")

Definition at line 436 of file PtrDynList.H.

References push_back().

Here is the call graph for this function:

◆ append() [7/8]

template<class T, int SizeMin = 64>
void append ( PtrList< T > && other)
inline

Move append another list to the end of this list.

FOAM_DEPRECATED_FOR(2022-10, "push_back()")

Definition at line 443 of file PtrDynList.H.

References PtrList< T >::PtrList(), and push_back().

Here is the call graph for this function:

◆ append() [8/8]

template<class T, int SizeMin = 64>
template<int AnySizeMin>
void append ( PtrDynList< T, AnySizeMin > && other)
inline

Move append another list to the end of this list.

Definition at line 449 of file PtrDynList.H.

References PtrDynList(), and push_back().

Here is the call graph for this function:

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