ConstPrecisionAdaptor< Type, InputType, Container > Class Template Reference

A const Field/List wrapper with possible data conversion. More...

Inheritance diagram for ConstPrecisionAdaptor< Type, InputType, Container >:
[legend]
Collaboration diagram for ConstPrecisionAdaptor< Type, InputType, Container >:
[legend]

Public Types

typedef Container< Type > FieldType
 The adapted field type. Same as element_type. More...
 
- Public Types inherited from refPtr< Container< Type > >
typedef Container< Type > element_type
 Type of object being managed or referenced. More...
 
typedef Container< Type > * pointer
 Pointer to type of object being managed or referenced. More...
 
typedef Foam::refCount::zero refCount
 Null reference counter class. More...
 

Public Member Functions

 ConstPrecisionAdaptor ()=default
 Default construct, setting content later. More...
 
 ConstPrecisionAdaptor (const Container< InputType > &input)
 Construct from Container of InputType, copying if required. More...
 
 ConstPrecisionAdaptor (tmp< Container< InputType >> &&input)
 Construct from tmp Container of InputType, copy/move as required. More...
 
 ConstPrecisionAdaptor (const tmp< Container< InputType >> &input)
 Construct from tmp Container of InputType, copy/move as required. More...
 
bool active () const noexcept
 Is precision adaption being used (non-passive adaptor)? More...
 
void commit ()
 Commit adapted content changes (no-op for const adaptor) More...
 
void set (const Container< InputType > &input)
 Set adaptor for different input, copying input if required. More...
 
void set (tmp< Container< InputType >> &&input)
 Set adaptor for tmp Container of InputType, copy/move as required. More...
 
void set (const tmp< Container< InputType >> &input)
 Set adaptor for tmp Container of InputType, copy/move as required. More...
 
- Public Member Functions inherited from refPtr< Container< Type > >
Foam::refPtr< Container< Type > > New (Args &&... args)
 
Foam::refPtr< Container< Type > > NewFrom (Args &&... args)
 
constexpr refPtr () noexcept
 Construct with no managed pointer. More...
 
constexpr refPtr (std::nullptr_t) noexcept
 Construct with no managed pointer (literal nullptr). More...
 
constexpr refPtr (Container< Type > *p) noexcept
 Construct, taking ownership of the pointer. More...
 
 refPtr (autoPtr< Container< Type > > &&ptr) noexcept
 Move construct from autoPtr, transferring ownership. More...
 
 refPtr (std::unique_ptr< Container< Type > > &&ptr) noexcept
 Move construct from unique_ptr, transferring ownership. More...
 
constexpr refPtr (const Container< Type > &obj) noexcept
 Construct for a const reference to an object. More...
 
 refPtr (refPtr< Container< Type > > &&rhs) noexcept
 Move construct, transferring ownership. More...
 
 refPtr (const refPtr< Container< Type > > &rhs)
 Copy construct (shallow copy) More...
 
 refPtr (const refPtr< Container< Type > > &rhs, bool reuse)
 Copy/move construct. Optionally reusing pointer. More...
 
 ~refPtr ()
 Destructor: deletes managed pointer. More...
 
bool good () const noexcept
 True if pointer/reference is non-null. More...
 
bool is_const () const noexcept
 If the stored/referenced content is const. More...
 
bool is_pointer () const noexcept
 True if this is a managed pointer (not a reference) More...
 
bool movable () const noexcept
 True if this is a non-null managed pointer. More...
 
Container< Type > * get () noexcept
 Return pointer without nullptr checking. More...
 
const Container< Type > * get () const noexcept
 Return const pointer without nullptr checking. More...
 
const Container< Type > & cref () const
 
void cref (const refPtr< Container< Type > > &other) noexcept
 Clear existing and set (const) reference from other. More...
 
void cref (const Container< Type > &obj) noexcept
 Clear existing and set (const) reference. More...
 
void cref (const Container< Type > *p) noexcept
 Clear existing and set (const) reference to pointer content. More...
 
Container< Type > & ref () const
 
void ref (Container< Type > &obj) noexcept
 Clear existing and set (non-const) reference. More...
 
void ref (Container< Type > *p) noexcept
 Clear existing and set (non-const) reference to pointer content. More...
 
Container< Type > & constCast () const
 
refPtr< Container< Type > > shallowClone () const noexcept
 
Container< Type > * release () noexcept
 
Container< Type > * ptr () const
 Return managed pointer for reuse, or clone() the object reference. More...
 
void clear () const noexcept
 
void reset (refPtr< Container< Type > > &&other) noexcept
 Clear existing and transfer ownership. More...
 
void reset (Container< Type > *p=nullptr) noexcept
 Delete managed pointer and set to new given pointer. More...
 
void reset (autoPtr< Container< Type > > &&other) noexcept
 Clear existing and transfer ownership from autoPtr. More...
 
void reset (std::unique_ptr< Container< Type > > &&other)
 Clear existing and transfer ownership from unique_ptr. More...
 
void swap (refPtr< Container< Type > > &other) noexcept
 Swaps the managed object with other. More...
 
const Container< Type > & operator* () const
 Return const reference to the object. More...
 
Container< Type > & operator* ()
 Return reference to the managed object. More...
 
const Container< Type > * operator-> () const
 Dereferences (const) pointer to the managed object. More...
 
Container< Type > * operator-> ()
 Dereferences (non-const) pointer to the managed object. More...
 
const Container< Type > & operator() () const
 Return const reference to the object - same as cref() method. More...
 
 operator bool () const noexcept
 True if pointer/reference is non-null. Same as good() More...
 
 operator const Container< Type > & () const
 Cast to underlying data type, using the cref() method. More...
 
void operator= (const refPtr< Container< Type > > &other)
 Transfer ownership of the managed pointer. More...
 
void operator= (refPtr< Container< Type > > &&other) noexcept
 Clear existing and transfer ownership. More...
 
void operator= (Container< Type > *p)
 Take ownership of the pointer. More...
 
void operator= (std::nullptr_t) noexcept
 Reset via assignment from literal nullptr. More...
 
 operator tmp< Container< Type > > ()
 Conversion to tmp, releases pointer or shallow-copies reference. More...
 
bool valid () const noexcept
 Identical to good(), or bool operator. More...
 
bool empty () const noexcept
 Deprecated(2020-07) True if a null managed pointer. More...
 

Static Public Member Functions

static const Container< Type > & select (const Container< InputType > &input, Container< Type > &other)
 
- Static Public Member Functions inherited from refPtr< Container< Type > >
static refPtr< Container< Type > > New (Args &&... args)
 Construct refPtr of T with forwarding arguments. More...
 
static refPtr< Container< Type > > NewFrom (Args &&... args)
 Construct refPtr from derived type with forwarding arguments. More...
 
static word typeName ()
 The type-name, constructed from type-name of T. More...
 

Detailed Description

template<class Type, class InputType, template< class > class Container = Field>
class Foam::ConstPrecisionAdaptor< Type, InputType, Container >

A const Field/List wrapper with possible data conversion.

Definition at line 57 of file PrecisionAdaptor.H.

Member Typedef Documentation

◆ FieldType

typedef Container<Type> FieldType

The adapted field type. Same as element_type.

Definition at line 97 of file PrecisionAdaptor.H.

Constructor & Destructor Documentation

◆ ConstPrecisionAdaptor() [1/4]

ConstPrecisionAdaptor ( )
default

Default construct, setting content later.

◆ ConstPrecisionAdaptor() [2/4]

ConstPrecisionAdaptor ( const Container< InputType > &  input)
inlineexplicit

Construct from Container of InputType, copying if required.

Definition at line 106 of file PrecisionAdaptor.H.

References Foam::input().

Here is the call graph for this function:

◆ ConstPrecisionAdaptor() [3/4]

ConstPrecisionAdaptor ( tmp< Container< InputType >> &&  input)
inlineexplicit

Construct from tmp Container of InputType, copy/move as required.

Definition at line 112 of file PrecisionAdaptor.H.

References Foam::input().

Here is the call graph for this function:

◆ ConstPrecisionAdaptor() [4/4]

ConstPrecisionAdaptor ( const tmp< Container< InputType >> &  input)
inlineexplicit

Construct from tmp Container of InputType, copy/move as required.

Definition at line 118 of file PrecisionAdaptor.H.

References Foam::input().

Here is the call graph for this function:

Member Function Documentation

◆ active()

bool active ( ) const
inlinenoexcept

Is precision adaption being used (non-passive adaptor)?

Definition at line 127 of file PrecisionAdaptor.H.

References refPtr< Container< Type > >::good(), and refPtr< Container< Type > >::is_pointer().

Here is the call graph for this function:

◆ commit()

void commit ( )
inline

Commit adapted content changes (no-op for const adaptor)

Definition at line 134 of file PrecisionAdaptor.H.

◆ set() [1/3]

void set ( const Container< InputType > &  input)
inline

Set adaptor for different input, copying input if required.

Definition at line 138 of file PrecisionAdaptor.H.

References Foam::input().

Here is the call graph for this function:

◆ set() [2/3]

void set ( tmp< Container< InputType >> &&  input)
inline

Set adaptor for tmp Container of InputType, copy/move as required.

Definition at line 144 of file PrecisionAdaptor.H.

References Foam::input().

Here is the call graph for this function:

◆ set() [3/3]

void set ( const tmp< Container< InputType >> &  input)
inline

Set adaptor for tmp Container of InputType, copy/move as required.

Definition at line 150 of file PrecisionAdaptor.H.

References Foam::input().

Here is the call graph for this function:

◆ select()

static const Container<Type>& select ( const Container< InputType > &  input,
Container< Type > &  other 
)
inlinestatic

Select a reference to the input (if types are identical), or copy into other and return a reference to that

Definition at line 161 of file PrecisionAdaptor.H.

References Foam::input().

Here is the call graph for this function:

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