BDE 4.14.0 Production release
|
#include <bslstl_string.h>
Public Member Functions | |
String_ClearProctor (FULL_STRING_TYPE *stringPtr) | |
~String_ClearProctor () | |
void | release () |
This component private class
implements a proctor that sets the length of a string to zero, and, if release
is not called, will restore that string upon it's destruction. The intended usage is to implement assign
methods in terms of append
(by clearing the string before appending to it), while maintaining the strong exceptions guarantee. Note that after constructing this proctor for a string s
, the invariant s[s.length()] == CHAR_TYPE()
is violated for non-empty s
. This invariant will be restored by either a successful append
or by the proctor's destructor if an exception is thrown. Note that the template parameter was renamed from STRING_TYPE to FULL_STRING_TYPE due to a name clash with a define elsewhere in the code base (see DRQS 112049582).
See bslstl_string
|
explicit |
Create a String_ClearProctor
for the specified stringPtr
, and set both the length of stringPtr
to 0 and the first character of stringPtr
to CHAR_TYPE()
.
bsl::String_ClearProctor< FULL_STRING_TYPE >::~String_ClearProctor | ( | ) |
Destroy this object, and if release
has not been called, restore the original state of the string supplied at construction.
void bsl::String_ClearProctor< FULL_STRING_TYPE >::release | ( | ) |
Release the proctor indicating that the string state need not to be restored.