[#bsl-basic_stringstream-2constructor-00] = xref:bsl.adoc[bsl]::xref:bsl/basic_stringstream.adoc[basic_stringstream]::basic_stringstream :relfileprefix: ../../ :mrdocs: Constructors == Synopses Declared in `<bslstl_stringstream.h>` Create a `basic_stringstream` object having the same value as the specified `original` object by moving the contents of `original` to the newly‐created object. `original` is left in a valid but unspecified state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:bsl/basic_stringstream/2constructor-034.adoc[basic_stringstream](xref:bsl/basic_stringstream.adoc[basic_stringstream]&& original); ---- [.small]#xref:bsl/basic_stringstream/2constructor-034.adoc[_» more..._]# Create a `basic_stringstream` object. Use the specified `initialString` indicating the initial sequence of characters that this buffer will access or manipulate. Optionally specify a `modeBitMask` indicating whether this buffer may be read from, written to, or both. If `modeBitMask` is not supplied, this buffer is created with `ios_base::in | ios_base::out`. Optionally specify the `allocator` used to supply memory. If `allocator` is not supplied, the allocator in `initialString` is used. `initialString` is left in a valid but unspecified state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit xref:bsl/basic_stringstream/2constructor-074.adoc[basic_stringstream](xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef<StringType>] initialString); ---- [.small]#xref:bsl/basic_stringstream/2constructor-074.adoc[_» more..._]# Create a `basic_stringstream` object. Optionally specify a `modeBitMask` indicating whether the underlying stream‐buffer may be read from, written to, or both (`rdbuf` is created using `modeBitMask`). If `modeBitMask` is not supplied, `rdbuf` will be created using `ios_base::in | ios_base::out`. Optionally specify an `initialString` indicating the initial sequence of characters that this stream may access or manipulate. If `initialString` is not supplied, the initial sequence of characters will be empty. Optionally specify the `allocator` used to supply memory. If `allocator` is not supplied, a default‐constructed object of the (template parameter) `ALLOCATOR` type is used. If the `ALLOCATOR` argument is of type `bsl::allocator` (the default), then `allocator`, if supplied, shall be convertible to `bslma::Allocator *`. If the `ALLOCATOR` argument is of type `bsl::allocator` and `allocator` is not supplied, the currently installed default allocator will be used to supply memory. If `initialString` is passed by `MovableRef`, it is left in a valid but unspecified state. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit xref:bsl/basic_stringstream/2constructor-08.adoc[basic_stringstream](xref:bsl/basic_stringstream/allocator_type.adoc[allocator_type] const& allocator = allocator_type()); ---- [.small]#xref:bsl/basic_stringstream/2constructor-08.adoc[_» more..._]# Create a `basic_stringstream` object. Use the specified `initialString` (of a type convertible to `basic_string_view<CHAR_TYPE, CHAR_TRAITS>` but not to `const CHAR_TYPE *`) indicating the initial sequence of characters that this stream will access or manipulate. `rdbuf` is created using `ios_base::in | ios_base::out`. Optionally specify the `allocator` used to supply memory. If `allocator` is not supplied, a default‐constructed object of the (template parameter) `ALLOCATOR` type is used. If the `ALLOCATOR` argument is of type `bsl::allocator` (the default), then `allocator`, if supplied, shall be convertible to `bslma::Allocator *`. If the `ALLOCATOR` argument is of type `bsl::allocator` and `allocator` is not supplied, the currently installed default allocator will be used to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class STRING_VIEW_LIKE_TYPE> explicit xref:bsl/basic_stringstream/2constructor-04f.adoc[basic_stringstream](STRING_VIEW_LIKE_TYPE const& initialString); ---- [.small]#xref:bsl/basic_stringstream/2constructor-04f.adoc[_» more..._]# Same as the constructor taking `const allocator_type&`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit xref:bsl/basic_stringstream/2constructor-05.adoc[basic_stringstream]( ios_base::openmode modeBitMask, xref:bsl/basic_stringstream/allocator_type.adoc[allocator_type] const& allocator = allocator_type()); ---- [.small]#xref:bsl/basic_stringstream/2constructor-05.adoc[_» more..._]# Same as the constructor taking `MovableRef<StringType>`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:bsl/basic_stringstream/2constructor-043.adoc[basic_stringstream]( xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef<StringType>] initialString, ios_base::openmode modeBitMask); ---- [.small]#xref:bsl/basic_stringstream/2constructor-043.adoc[_» more..._]# Same as the constructor taking `MovableRef<StringType>`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:bsl/basic_stringstream/2constructor-078.adoc[basic_stringstream]( xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef<StringType>] initialString, xref:bsl/basic_stringstream/allocator_type.adoc[allocator_type] const& allocator); ---- [.small]#xref:bsl/basic_stringstream/2constructor-078.adoc[_» more..._]# Same as the constructor taking `const allocator_type&`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- explicit xref:bsl/basic_stringstream/2constructor-0c.adoc[basic_stringstream]( xref:bsl/basic_stringstream.adoc[StringType] const& initialString, xref:bsl/basic_stringstream/allocator_type.adoc[allocator_type] const& allocator = allocator_type()); ---- [.small]#xref:bsl/basic_stringstream/2constructor-0c.adoc[_» more..._]# Create a `basic_stringstream` object. Use the specified `initialString` (of a type convertible to `basic_string_view<CHAR_TYPE, CHAR_TRAITS>` but not to `const CHAR_TYPE *`) indicating the initial sequence of characters that this stream will access or manipulate. Use the specified `modeBitMask` to indicate whether this stream may be read from, written to, or both. Optionally specify the `allocator` used to supply memory. If `allocator` is not supplied, a default‐constructed object of the (template parameter) `ALLOCATOR` type is used. If the `ALLOCATOR` argument is of type `bsl::allocator` (the default), then `allocator`, if supplied, shall be convertible to `bslma::Allocator *`. If the `ALLOCATOR` argument is of type `bsl::allocator` and `allocator` is not supplied, the currently installed default allocator will be used to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class STRING_VIEW_LIKE_TYPE> xref:bsl/basic_stringstream/2constructor-032.adoc[basic_stringstream]( STRING_VIEW_LIKE_TYPE const& initialString, ios_base::openmode modeBitMask); ---- [.small]#xref:bsl/basic_stringstream/2constructor-032.adoc[_» more..._]# Create a `basic_stringstream` object. Use the specified `initialString` indicating the initial sequence of characters that this stream will access or manipulate. `rdbuf` is created using `ios_base::in | ios_base::out`. Optionally specify the `allocator` used to supply memory. If `allocator` is not supplied, a default‐constructed object of the (template parameter) `ALLOCATOR` type is used. If the `ALLOCATOR` argument is of type `bsl::allocator` (the default), then `allocator`, if supplied, shall be convertible to `bslma::Allocator *`. If the `ALLOCATOR` argument is of type `bsl::allocator` and `allocator` is not supplied, the currently installed default allocator will be used to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class SALLOC> explicit xref:bsl/basic_stringstream/2constructor-0a.adoc[basic_stringstream]( xref:bsl/basic_string-0faf.adoc[bsl::basic_string<CHAR_TYPE, CHAR_TRAITS, SALLOC>] const& initialString, xref:bsl/basic_stringstream/allocator_type.adoc[allocator_type] const& allocator = allocator_type()) requires !bsl::is_same<ALLOCATOR, SALLOC>::value; ---- [.small]#xref:bsl/basic_stringstream/2constructor-0a.adoc[_» more..._]# Same as the constructor taking `MovableRef<StringType>` and `ios_base::openmode`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:bsl/basic_stringstream/2constructor-0b.adoc[basic_stringstream]( xref:BloombergLP/bslmf/MovableRef.adoc[BloombergLP::bslmf::MovableRef<StringType>] initialString, ios_base::openmode modeBitMask, xref:bsl/basic_stringstream/allocator_type.adoc[allocator_type] const& allocator); ---- [.small]#xref:bsl/basic_stringstream/2constructor-0b.adoc[_» more..._]# Same as the constructor taking `const StringType&` and `const allocator_type&`. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- xref:bsl/basic_stringstream/2constructor-031.adoc[basic_stringstream]( xref:bsl/basic_stringstream.adoc[StringType] const& initialString, ios_base::openmode modeBitMask, xref:bsl/basic_stringstream/allocator_type.adoc[allocator_type] const& allocator = allocator_type()); ---- [.small]#xref:bsl/basic_stringstream/2constructor-031.adoc[_» more..._]# Create a `basic_stringstream` object. Use the specified `initialString` indicating the initial sequence of characters that this stream will access or manipulate. Use the specified `modeBitMask` to indicate whether this stream may be read from, written to, or both. Optionally specify the `allocator` used to supply memory. If `allocator` is not supplied, a default‐constructed object of the (template parameter) `ALLOCATOR` type is used. If the `ALLOCATOR` argument is of type `bsl::allocator` (the default), then `allocator`, if supplied, shall be convertible to `bslma::Allocator *`. If the `ALLOCATOR` argument is of type `bsl::allocator` and `allocator` is not supplied, the currently installed default allocator will be used to supply memory. [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- template<class SALLOC> xref:bsl/basic_stringstream/2constructor-09.adoc[basic_stringstream]( xref:bsl/basic_string-0faf.adoc[bsl::basic_string<CHAR_TYPE, CHAR_TRAITS, SALLOC>] const& initialString, ios_base::openmode modeBitMask, xref:bsl/basic_stringstream/allocator_type.adoc[allocator_type] const& allocator = allocator_type()) requires !bsl::is_same<ALLOCATOR, SALLOC>::value; ---- [.small]#xref:bsl/basic_stringstream/2constructor-09.adoc[_» more..._]# [.small]#Created with https://www.mrdocs.com[MrDocs]#