std::basic_stringbuf<CharT,Traits,Allocator>::init_buf_ptrs
void init_buf_ptrs(); |
(exposition only*) | |
Initializes the input and output sequences from buf according to mode. buf and mode are exposition-only data members of *this
Immediately after this function returns:
- If std::ios_base::out is set in mode, pbase() points to buf.front() and
epptr(
)
>= pbase(
)
+ buf.size
(
)
is true;
- in addition, if std::ios_base::ate is set in mode, pptr( ) == pbase( ) + buf.size ( ) is true
- otherwise pptr() == pbase() is true
- If std::ios_base::in is set in mode, eback() points to buf.front(), and gptr( ) == eback( ) && egptr( ) == eback( ) + buf.size ( ) is true
Notes
For efficiency reasons, stream buffer operations can violate invariants of buf while it is held encapsulated in the std::basic_stringbuf
, e.g., by writing to characters in the range
[
buf.data() + buf.size()
,
buf.data() + buf.capacity()
)
All operations retrieving a std::basic_string from buf ensure that the std::basic_string
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 1448 | C++98 | calling init_buf_ptrs() madepptr( ) == pbase( ) + buf.data ( ) |
makes pptr( ) == pbase( ) + buf.size ( ) |