This class implements a range proctor that, unless its release method has previously been invoked, automatically destroys the contiguous sequence of managed objects upon its own destruction by invoking each object's destructor. If release is invoked (see release), the proctor will not destroy any objects upon its own destruction (unless reset is invoked to assign the proctor another contiguous sequence of objects for management). Note that when the length of this object is non‐zero, it must refer to a non‐null array of objects.
Synopsis
Declared in <bslma_autodestructor.h>
template<class TYPE>
class AutoDestructor;
Member Functions
Name |
Description |
|
Create a range proctor to manage an array of objects at the specified |
|
Destroy this range proctor along with the contiguous sequence of objects it manages (if any) by invoking the destructor of each (managed) object. Note that the order in which the managed objects are destroyed is undefined. |
Return the (signed) length of the sequence of objects managed by this range proctor. |
|
Increase by one the (signed) length of the sequence of objects managed by this range proctor. The behavior is undefined unless the origin of the sequence of objects managed by this proctor is non‐zero. The behavior is undefined unless the origin of this range proctor is non‐zero. Note that if the length of this proctor is currently negative, the number of managed objects will decrease by one, whereas if the length is non‐negative, the number of managed objects will increase by one. |
|
Decrease by one the (signed) length of the sequence of objects managed by this range proctor. The behavior is undefined unless the origin of the sequence of objects managed by this proctor is non‐zero. The behavior is undefined unless the origin of this range proctor is non‐zero. Note that if the length of this proctor is currently positive, the number of managed objects will decrease by one, whereas if the length is non‐positive, the number of managed objects will increase by one. |
|
Release from management the sequence of objects currently managed by this range proctor by setting the length of the managed sequence to 0. All objects currently under management will become unmanaged (i.e., when the proctor goes out of scope and it was not assigned another sequence of objects to manage by invoking |
|
Set the specified |
|
Set the (signed) length of the sequence of objects managed by this range proctor to the specified |
Created with MrDocs