Pointer management similar to std::unique_ptr, with some additional methods and type checking. More...
Public Types | |
typedef T | element_type |
Type of object being managed. More... | |
typedef T * | pointer |
Pointer to type of object being managed. More... | |
Public Member Functions | |
constexpr | autoPtr () noexcept |
Construct with no managed pointer. More... | |
constexpr | autoPtr (std::nullptr_t) noexcept |
Construct with no managed pointer (literal nullptr). More... | |
autoPtr (T *p) noexcept | |
Construct, taking ownership of the pointer. More... | |
autoPtr (autoPtr< T > &&ap) noexcept | |
Move construct, transferring ownership. More... | |
template<class U > | |
autoPtr (autoPtr< U > &&ap) | |
Move construct, transferring ownership from derived type. More... | |
autoPtr (const autoPtr< T > &ap) noexcept | |
A move construct disguised as a copy construct (transfers ownership) More... | |
~autoPtr () noexcept | |
Deletes the managed pointer. More... | |
bool | good () const noexcept |
True if the managed pointer is non-null. More... | |
T * | get () noexcept |
Return pointer to managed object without nullptr checking. More... | |
const T * | get () const noexcept |
Return const pointer to managed object without nullptr checking. More... | |
T & | ref () |
Return reference to the managed object without nullptr checking. More... | |
T * | release () noexcept |
Release ownership and return the pointer. More... | |
T * | ptr () noexcept |
Same as release() . More... | |
void | clear () noexcept |
Same as reset(nullptr) More... | |
void | reset (autoPtr< T > &&other) noexcept |
Delete managed object and set to new given pointer. More... | |
void | reset (T *p=nullptr) noexcept |
Delete managed object and set to new given pointer. More... | |
void | swap (autoPtr< T > &other) noexcept |
Swaps the managed object with other autoPtr. More... | |
template<class... Args> | |
autoPtr< T > | clone (Args &&... args) const |
Copy construct by invoking clone on underlying managed object. More... | |
T & | operator* () |
Return reference to the managed object. More... | |
const T & | operator* () const |
Return const reference to the object. More... | |
T * | operator-> () |
Dereferences (non-const) pointer to the managed object. More... | |
const T * | operator-> () const |
Dereferences (const) pointer to the managed object. More... | |
T & | operator() () |
Return reference to the object data. More... | |
const T & | operator() () const |
Return const reference to the object data. More... | |
operator bool () const noexcept | |
True if pointer/reference is non-null. Same as good() More... | |
operator const T * () const noexcept | |
Cast to pointer type. More... | |
operator T* () noexcept | |
Cast to pointer type. More... | |
operator const T & () const | |
Deprecated(2019-01) Automatic cast conversion to underlying type. More... | |
void | operator= (T *p)=delete |
No copy assignment from plain pointer (uncontrolled access) More... | |
void | operator= (autoPtr< T > &&ap) noexcept |
Transfer object ownership from parameter. More... | |
template<class U > | |
void | operator= (autoPtr< U > &&ap) noexcept |
Transfer object ownership from parameter. More... | |
void | operator= (const autoPtr< T > &ap)=delete |
No move assignment disguised as a copy assignment. More... | |
void | operator= (std::nullptr_t) noexcept |
Reset via assignment from literal nullptr. More... | |
bool | valid () const noexcept |
Identical to good(), or bool operator. More... | |
bool | empty () const noexcept |
Deprecated(2020-07) True if the managed pointer is null. More... | |
void | set (T *p) noexcept |
Deprecated(2018-02) Identical to reset(). More... | |
template<class... Args> | |
Foam::autoPtr< T > | New (Args &&... args) |
template<class U , class... Args> | |
Foam::autoPtr< T > | NewFrom (Args &&... args) |
template<class... Args> | |
Foam::autoPtr< T > | clone (Args &&... args) const |
Static Public Member Functions | |
template<class... Args> | |
static autoPtr< T > | New (Args &&... args) |
Construct autoPtr of T with forwarding arguments. More... | |
template<class U , class... Args> | |
static autoPtr< T > | NewFrom (Args &&... args) |
Construct autoPtr from derived type with forwarding arguments. More... | |
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
typedef T element_type |
|
inlineconstexprnoexcept |
Construct with no managed pointer.
Definition at line 53 of file autoPtrI.H.
|
inlineconstexprnoexcept |
Construct with no managed pointer (literal nullptr).
Definition at line 60 of file autoPtrI.H.
References Foam::noexcept.
Construct, taking ownership of the pointer.
Definition at line 67 of file autoPtrI.H.
References Foam::noexcept.
Move construct, transferring ownership.
Definition at line 74 of file autoPtrI.H.
References Foam::noexcept.
Move construct, transferring ownership from derived type.
U must be derivable from T
Definition at line 82 of file autoPtrI.H.
|
inlinenoexcept |
Deletes the managed pointer.
Definition at line 91 of file autoPtrI.H.
Construct autoPtr of T with forwarding arguments.
args | list of arguments with which an instance of T will be constructed. |
Construct autoPtr from derived type with forwarding arguments.
args | list of arguments with which an instance of U will be constructed. |
|
inlinenoexcept |
True if the managed pointer is non-null.
Definition at line 145 of file autoPtr.H.
References bool.
Referenced by writeFile::createFile(), UniformValueField< Type >::good(), argList::parse(), rawIOField< Type >::rawIOField(), uncollatedFileOperation::readHeader(), uncollatedFileOperation::readStream(), masterUncollatedFileOperation::readStream(), Table< Type >::Table(), FIREMeshWriter::write(), FLMAsurfaceFormat< Face >::write(), and decomposedBlockData::writeBlocks().
|
inlinenoexcept |
Return pointer to managed object without nullptr checking.
Pointer remains under autoPtr management.
Definition at line 152 of file autoPtr.H.
Referenced by refinementHistory::add(), refinementHistory::apply(), HashPtrTable< T, Key, Hash >::insert(), and fvExpressionField::performAction().
|
inlinenoexcept |
|
inline |
Return reference to the managed object without nullptr checking.
When get() == nullptr, additional guards may be required to avoid inadvertent access of a nullptr.
Definition at line 161 of file autoPtr.H.
Referenced by sensitivitySurface::accumulateIntegrand(), sensitivitySurfacePoints::accumulateIntegrand(), energySpectrum::calcAndWriteSpectrum(), sensitivitySurface::smoothSensitivities(), TDACChemistryModel< ReactionThermo, ThermoType >::TDACChemistryModel(), objectiveForce::update_dxdbMultiplier(), objectiveMoment::update_dxdbMultiplier(), and Foam::ensightOutput::writeCloudField().
|
inlinenoexcept |
Release ownership and return the pointer.
Definition at line 100 of file autoPtrI.H.
Referenced by PtrDynList< T, SizeMin >::append(), PtrList< T >::append(), HashPtrTable< T, Key, Hash >::insert(), fvExpressionField::performAction(), HashPtrTable< T, Key, Hash >::set(), PtrDynList< T, SizeMin >::set(), and regIOobject::store().
|
inlinenoexcept |
Same as release()
.
Definition at line 172 of file autoPtr.H.
Referenced by variablesSet::allocateField(), variablesSet::allocateFluxField(), fvMeshDistribute::distribute(), rigidBodyModel::join(), PtrListDictionary< phaseModel >::set(), and OFstreamCollator::write().
|
inlinenoexcept |
Same as reset(nullptr)
Definition at line 176 of file autoPtr.H.
Referenced by meshRefinement::distribute(), snappySnapDriver::doSnap(), rawIOField< Type >::rawIOField(), reactingMixture< ThermoType >::reactingMixture(), masterUncollatedFileOperation::readStream(), FIREMeshWriter::write(), and FLMAsurfaceFormat< Face >::write().
Delete managed object and set to new given pointer.
Definition at line 117 of file autoPtrI.H.
Referenced by polyMeshAdder::add(), refinementHistory::add(), ATCUaGradU::addATC(), AMIInterpolation::agglomerate(), variablesSet::allocateRenamedField(), refinementHistory::apply(), sensitivityBezierFI::assembleSensitivities(), sensitivitySurface::assembleSensitivities(), sensitivityVolBSplinesFI::assembleSensitivities(), PatchInteractionFields< CloudType >::clearOrReset(), writeFile::createFile(), snappySnapDriver::detectNearSurfaces(), faMeshDistributor::distribute(), distributedTriSurfaceMesh::distribute(), snappySnapDriver::doSnap(), sensitivitySurfacePoints::finaliseFaceMultiplier(), distributedTriSurfaceMesh::findNearest(), PatchTools::gatherAndMerge(), distributedTriSurfaceMesh::getVolumeType(), if(), steadyOptimisation::lineSearchUpdate(), polyTopoChange::makeMesh(), rigidBodyModel::merge(), averageNeighbourFvGeometryScheme::movePoints(), MultiComponentPhaseModel< BasePhaseModel, phaseThermo >::MultiComponentPhaseModel(), functionObjectList::New(), lineSearch::New(), isoSurfaceBase::New(), entry::New(), Foam::vtk::newFormatter(), masterUncollatedFileOperation::NewIFstream(), Foam::NewOrNone(), objective::objective(), optMeshMovement::optMeshMovement(), processorCyclicPolyPatch::order(), fvExpressionField::performAction(), projectCurveEdge::position(), projectEdge::position(), projectFace::project(), PurePhaseModel< BasePhaseModel, phaseThermo >::PurePhaseModel(), radiativeIntensityRay::radiativeIntensityRay(), functionObjectList::read(), decomposedBlockData::read(), BilgerMixtureFraction::read(), masterUncollatedFileOperation::read(), decomposedBlockData::readBlock(), decomposedBlockData::readBlocks(), masterUncollatedFileOperation::readStream(), Foam::reconstructLagrangian(), Foam::redistributeLagrangian(), autoPtr< T >::set(), cyclicAMIPolyPatch::setAMIFaces(), variablesSet::setFluxField(), sensitivitySurface::smoothSensitivities(), objective::updateNormalizationFactor(), Foam::ensightOutput::writeCloudPositions(), externalCoupled::writeGeometry(), and decomposedBlockData::writeObject().
|
inlinenoexcept |
Delete managed object and set to new given pointer.
Definition at line 109 of file autoPtrI.H.
Swaps the managed object with other autoPtr.
Definition at line 128 of file autoPtrI.H.
Referenced by Foam::Swap().
Copy construct by invoking clone on underlying managed object.
A no-op if no pointer is managed
args | list of arguments for clone |
Referenced by mapPolyMesh::mapPolyMesh().
|
inline |
Return reference to the managed object.
FatalError if no pointer is managed
Definition at line 154 of file autoPtrI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, Foam::name(), and T.
Referenced by autoPtr< bool >::operator const bool &().
|
inline |
Return const reference to the object.
FatalError if no pointer is managed
Definition at line 167 of file autoPtrI.H.
|
inline |
Dereferences (non-const) pointer to the managed object.
FatalError if no pointer is managed
Definition at line 174 of file autoPtrI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, Foam::name(), and T.
|
inline |
Dereferences (const) pointer to the managed object.
FatalError if no pointer is managed
Definition at line 187 of file autoPtrI.H.
|
inline |
Return reference to the object data.
FatalError if no pointer is managed
Definition at line 194 of file autoPtrI.H.
References Foam::operator*().
|
inline |
Return const reference to the object data.
FatalError if no pointer is managed
Definition at line 201 of file autoPtrI.H.
|
inlineexplicitnoexcept |
|
inlinenoexcept |
|
inline |
Deprecated(2019-01) Automatic cast conversion to underlying type.
FatalError if no pointer is managed
|
delete |
No copy assignment from plain pointer (uncontrolled access)
Transfer object ownership from parameter.
Definition at line 208 of file autoPtrI.H.
Transfer object ownership from parameter.
Definition at line 220 of file autoPtrI.H.
No move assignment disguised as a copy assignment.
|
inlinenoexcept |
Reset via assignment from literal nullptr.
Definition at line 231 of file autoPtrI.H.
|
inlinenoexcept |
Identical to good(), or bool operator.
Definition at line 272 of file autoPtr.H.
References bool.
Referenced by meshRefinement::blockLeakFaces(), objective::JCycle(), and objective::write().
|
inlinenoexcept |
Deprecated(2020-07) True if the managed pointer is null.
Definition at line 278 of file autoPtr.H.
Referenced by MultiComponentPhaseModel< BasePhaseModel, phaseThermo >::MultiComponentPhaseModel().
|
inlinenoexcept |
Deprecated(2018-02) Identical to reset().
Definition at line 288 of file autoPtr.H.
References p, and autoPtr< T >::reset().
Referenced by BlendedInterfacialModel< ModelType >::BlendedInterfacialModel(), and multiphaseSystem::dragCoeffs().
|
inline |
Definition at line 36 of file autoPtrI.H.
|
inline |
Definition at line 44 of file autoPtrI.H.
|
inline |
Definition at line 140 of file autoPtrI.H.
References args.