PtrDynList< T, SizeMin > Class Template Reference

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

Inheritance diagram for PtrDynList< T, SizeMin >:
[legend]

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...
 
 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...
 
const Tget (const label i) const
 Return const pointer to element (can be nullptr),. More...
 
const Tset (const label i) const
 Return const pointer to element (if set) or nullptr,. 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 setSize (const label n)
 Same as resize() More...
 
void clear ()
 Clear the addressed list, i.e. set the size to zero. More...
 
void clearStorage ()
 Clear the list and delete storage. More...
 
label expandStorage () noexcept
 Expand the addressable size to fit the allocated capacity. More...
 
void shrink ()
 Shrink the allocated space to the number of elements used. More...
 
label squeezeNull ()
 
template<int AnySizeMin>
void swap (PtrDynList< T, AnySizeMin > &other)
 Swap content, independent of sizing parameter. More...
 
template<class... Args>
void emplace_append (Args &&... args)
 Construct and 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 (autoPtr< 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 (std::unique_ptr< 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...
 
autoPtr< Tremove ()
 Remove and return the top element. More...
 
template<class... Args>
autoPtr< Templace (const label i, Args &&... args)
 Construct and set an element. More...
 
autoPtr< Tset (const label i, T *ptr)
 Set element to given pointer and return old element (can be null) More...
 
autoPtr< Tset (const label i, autoPtr< T > &ptr)
 Set element to given autoPtr and return old element. More...
 
autoPtr< Tset (const label i, autoPtr< T > &&ptr)
 Set element to given autoPtr and return old element. More...
 
autoPtr< Tset (const label i, std::unique_ptr< T > &&ptr)
 Set element to given pointer and return old element. More...
 
autoPtr< Tset (const label i, const refPtr< T > &ptr)
 Set element to given refPtr and return old element. More...
 
autoPtr< Tset (const label i, const tmp< T > &ptr)
 Set element to given tmp and return old element. 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...
 
template<class... Args>
Foam::autoPtr< Templace (const label i, Args &&... args)
 

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 54 of file PtrDynList.H.

Constructor & Destructor Documentation

◆ PtrDynList() [1/5]

constexpr PtrDynList ( )
inlineconstexprnoexcept

Default construct.

Definition at line 35 of file PtrDynListI.H.

◆ PtrDynList() [2/5]

PtrDynList ( const label  len)
inlineexplicit

Construct with given capacity.

Definition at line 43 of file PtrDynListI.H.

◆ PtrDynList() [3/5]

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

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

Definition at line 54 of file PtrDynListI.H.

◆ PtrDynList() [4/5]

PtrDynList ( PtrDynList< T, SizeMin > &&  list)
inline

Move construct.

Definition at line 65 of file PtrDynListI.H.

◆ PtrDynList() [5/5]

PtrDynList ( UList< T * > &  list)
inlineexplicit

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

Definition at line 77 of file PtrDynListI.H.

◆ ~PtrDynList()

~PtrDynList ( )
default

Destructor.

Member Function Documentation

◆ capacity()

Foam::label capacity ( ) const
inlinenoexcept

Size of the underlying storage.

Definition at line 87 of file PtrDynListI.H.

Referenced by PtrDynList< Foam::profilingInformation >::operator=().

Here is the caller graph for this function:

◆ get()

const T * get ( const label  i) const
inline

Return const pointer to element (can be nullptr),.

with bounds checking.

Definition at line 94 of file PtrDynListI.H.

◆ set() [1/7]

const T* set ( const label  i) const
inline

Return const pointer to element (if set) or nullptr,.

with bounds checking. The return value can be tested as a bool.

Definition at line 111 of file PtrDynList.H.

◆ reserve()

void reserve ( const label  len)
inline

Reserve allocation space for at least this size.

Definition at line 101 of file PtrDynListI.H.

◆ resize()

void resize ( const label  newLen)
inline

Alter the addressed list size.

Definition at line 118 of file PtrDynListI.H.

Referenced by PtrDynList< Foam::profilingInformation >::setSize().

Here is the caller graph for this function:

◆ setSize()

void setSize ( const label  n)
inline

Same as resize()

Definition at line 123 of file PtrDynList.H.

◆ clear()

void clear ( )
inline

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

Allocated size does not change

Definition at line 147 of file PtrDynListI.H.

Referenced by PtrDynList< Foam::profilingInformation >::append().

Here is the caller graph for this function:

◆ clearStorage()

void clearStorage ( )
inline

Clear the list and delete storage.

Definition at line 155 of file PtrDynListI.H.

Referenced by PtrDynList< Foam::profilingInformation >::append(), PtrDynList< Foam::profilingInformation >::operator=(), and PtrDynList< Foam::profilingInformation >::PtrDynList().

Here is the caller graph for this function:

◆ expandStorage()

Foam::label expandStorage ( )
inlinenoexcept

Expand the addressable size to fit the allocated capacity.

Returns the previous addressable size.

Definition at line 163 of file PtrDynListI.H.

◆ shrink()

void shrink ( )
inline

Shrink the allocated space to the number of elements used.

Definition at line 175 of file PtrDynListI.H.

◆ squeezeNull()

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 190 of file PtrDynListI.H.

◆ swap()

void swap ( PtrDynList< T, AnySizeMin > &  other)
inline

Swap content, independent of sizing parameter.

Definition at line 201 of file PtrDynListI.H.

◆ emplace_append()

void emplace_append ( Args &&...  args)
inline

Construct and append an element to the end of the list.

Definition at line 221 of file PtrDynListI.H.

◆ append() [1/8]

void append ( T ptr)
inline

Append an element to the end of the list.

Definition at line 228 of file PtrDynListI.H.

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

Here is the caller graph for this function:

◆ append() [2/8]

void append ( autoPtr< T > &  ptr)
inline

Move append an element to the end of the list.

Definition at line 237 of file PtrDynListI.H.

◆ append() [3/8]

void append ( autoPtr< T > &&  ptr)
inline

Move append an element to the end of the list.

Definition at line 244 of file PtrDynListI.H.

◆ append() [4/8]

void append ( std::unique_ptr< T > &&  ptr)
inline

Move append an element to the end of the list.

Definition at line 251 of file PtrDynListI.H.

◆ append() [5/8]

void append ( const refPtr< T > &  ptr)
inline

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

Definition at line 258 of file PtrDynListI.H.

◆ append() [6/8]

void append ( const tmp< T > &  ptr)
inline

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

Definition at line 265 of file PtrDynListI.H.

◆ append() [7/8]

void append ( PtrList< T > &&  other)
inline

Move append another list to the end of this list.

Definition at line 272 of file PtrDynListI.H.

◆ append() [8/8]

void append ( PtrDynList< T, AnySizeMin > &&  other)
inline

Move append another list to the end of this list.

Definition at line 291 of file PtrDynListI.H.

◆ remove()

Foam::autoPtr< T > remove ( )
inline

Remove and return the top element.

Definition at line 310 of file PtrDynListI.H.

◆ emplace() [1/2]

autoPtr<T> emplace ( const label  i,
Args &&...  args 
)
inline

Construct and set an element.

◆ set() [2/7]

Foam::autoPtr< T > set ( const label  i,
T ptr 
)
inline

Set element to given pointer and return old element (can be null)

Definition at line 342 of file PtrDynListI.H.

◆ set() [3/7]

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

Set element to given autoPtr and return old element.

Definition at line 358 of file PtrDynListI.H.

◆ set() [4/7]

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

Set element to given autoPtr and return old element.

Definition at line 369 of file PtrDynListI.H.

◆ set() [5/7]

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

Set element to given pointer and return old element.

Definition at line 380 of file PtrDynListI.H.

◆ set() [6/7]

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

Set element to given refPtr and return old element.

Definition at line 391 of file PtrDynListI.H.

◆ set() [7/7]

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

Set element to given tmp and return old element.

Definition at line 402 of file PtrDynListI.H.

◆ reorder()

void reorder ( const labelUList oldToNew)
inline

Reorder elements. Reordering must be unique (ie, shuffle).

Definition at line 412 of file PtrDynListI.H.

◆ operator=() [1/6]

void operator= ( const PtrList< T > &  list)
inline

Copy (clone) assignment.

Definition at line 424 of file PtrDynListI.H.

◆ operator=() [2/6]

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

Copy (clone) assignment.

Definition at line 440 of file PtrDynListI.H.

◆ operator=() [3/6]

void operator= ( const PtrDynList< T, AnySizeMin > &  list)
inline

Copy (clone) assignment with different sizing parameters.

Definition at line 457 of file PtrDynListI.H.

◆ operator=() [4/6]

void operator= ( PtrList< T > &&  list)
inline

Move assignment.

Definition at line 474 of file PtrDynListI.H.

◆ operator=() [5/6]

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

Move assignment.

Definition at line 491 of file PtrDynListI.H.

◆ operator=() [6/6]

void operator= ( PtrDynList< T, AnySizeMin > &&  list)
inline

Move assignment with different sizing parameters.

Definition at line 509 of file PtrDynListI.H.

◆ emplace() [2/2]

Foam::autoPtr<T> emplace ( const label  i,
Args &&...  args 
)
inline

Definition at line 331 of file PtrDynListI.H.


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