GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::strstreambuf::strstreambuf(3) C++ Standard Libary std::strstreambuf::strstreambuf(3)

std::strstreambuf::strstreambuf - std::strstreambuf::strstreambuf


explicit strstreambuf( std::streamsize alsize = 0 ); (until C++11)
strstreambuf() : strstreambuf(0) {} (since C++11)
explicit strstreambuf( std::streamsize alsize );
strstreambuf( void* (*palloc)(std::size_t), void (2)
(*pfree)(void*) );
strstreambuf( char* gnext, std::streamsize n, char* pbeg = 0 (3)
); (1)
strstreambuf( signed char* gnext, std::streamsize n, signed (4)
char* pbeg = 0 );
strstreambuf( unsigned char* gnext, std::streamsize n, (5)
unsigned char* pbeg = 0 );
strstreambuf( const char* gnext, std::streamsize n ); (6)
strstreambuf( const signed char* gnext, std::streamsize n); (7)
strstreambuf( const unsigned char* gnext, std::streamsize n ); (8)


1) Constructs a std::strstreambuf object: initializes the base class by calling the
default constructor of std::streambuf, initializes the buffer state to "dynamic"
(the buffer will be allocated as needed), initializes allocated size to the provided
alsize, initializes the allocation and the deallocation functions to null (will use
new[] and delete[])
2) Constructs a std::strstreambuf object: initializes the base class by calling the
default constructor of std::streambuf, initializes the buffer state to "dynamic"
(the buffer will be allocated as needed), initializes allocated size to unspecified
value, initializes the allocation function to palloc and the deallocation function
to pfree
3-5) Constructs a std::strstreambuf object in following steps:
a) Initializes the base class by calling the default constructor of std::streambuf
b) Initializes the buffer state to "constant" (the buffer is a user-provided
fixed-size buffer)
c) Determines the number of elements in the user-provided array as follows: if n is
greater than zero, n is used. If n is zero, std::strlen(gnext) is executed to
determine the buffer size. If n is negative, INT_MAX is used.
d) Configures the std::basic_streambuf pointers as follows: If pbeg is a null
pointer, calls setg(gnext, gnext, gnext + N). If pbeg is not a null pointer,
executes setg(gnext, gnext, pbeg) and setp(pbeg, pbeg+N), where N is the number of
elements in the array as determined earlier.
6-8) Same as strstreambuf((char*)gnext, n), except the "constant" bit is set in the
buffer state bitmask (output to this buffer is not allowed)


alsize - the initial size of the dynamically allocated buffer
palloc - pointer to user-provided allocation function
pfree - pointer to user-provided deallocation function
gnext - pointer to the start of the get area in the user-provided array
pbeg - pointer to the start of the put area in the user-provided array
n - the number of bytes in the get area (if pbeg is null) or in the put area
(if pbeg is not null) of the user-provided array


These constructors are typically called by the constructors of std::strstream


Defect reports


The following behavior-changing defect reports were applied retroactively to
previously published C++ standards.


DR Applied to Behavior as published Correct behavior
P0935R0 C++11 default constructor was explicit made implicit

// Run this code


#include <strstream>
#include <iostream>


int main()
{
std::strstreambuf dyn; // dynamic
std::strstream dyn_s; // equivalent stream
dyn_s << 1.23 << std::ends;
std::cout << dyn_s.str() << '\n';
dyn_s.freeze(false);


char buf[10];
std::strstreambuf user(buf, 10, buf); // user-provided output buffer
std::ostrstream user_s(buf, 10); // equivalent stream
user_s << 1.23 << std::ends;
std::cout << buf << '\n';


std::strstreambuf lit("1 2 3", 5); // constant
std::istrstream lit_s("1 2 3"); // equivalent stream
int i, j, k;
lit_s >> i >> j >> k;
std::cout << i << ' ' << j << ' ' << k << '\n';
}


1.23
1.23
1 2 3


constructor constructs an strstream, optionally allocating the buffer
(public member function of std::strstream)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.