STD::BASIC_OSTRINGSTREAM(3)

πŸ¦‹ NAME πŸ¦‹

std::basic_ostringstream< _CharT, _Traits, _Alloc > β€” controlling output for std::string, that's the whole vibe bestie πŸ’…

This is page std::basic...s, _Alloc >(3) from the Library Functions Manual, and it's part 1 of 7 β€” more is coming, don't you dare close the tab πŸŽ€


✨ SYNOPSIS ✨

#include <sstream>

She inherits std::basic_ostream< _CharT, _Traits >, so everything that stream can do? Yeah. She does it too. Family traits, literally. πŸ‘‘


🌸 Public Types 🌸

  • typedef ctype< _CharT > __ctype_type β€” the ctype flavor for your char type 🧚
  • typedef basic_ios< _CharT, _Traits > __ios_type β€” the base ios type, iconic behavior lives here
  • typedef num_put< _CharT, ostreambuf_iterator< _CharT, _Traits > > __num_put_type β€” the number-putting machinery ✨
  • typedef basic_ostream< char_type, traits_type > __ostream_type β€” her actual parent, the ostream glow-up
  • typedef basic_streambuf< _CharT, _Traits > __streambuf_type β€” the buffer type, the engine room
  • typedef basic_string< _CharT, _Traits, _Alloc > __string_type β€” the string type she's out here producing
  • typedef basic_stringbuf< _CharT, _Traits, _Alloc > __stringbuf_type β€” the string buffer underneath, lowkey the real MVP
  • typedef _Alloc allocator_type β€” your allocator, as requested 🫢
  • typedef _CharT char_type β€” your char type, no cap
  • enum event { erase_event, imbue_event, copyfmt_event } β€” the set of events that may be passed to an event callback. That's the list, that's the trio πŸ’–
  • typedef void(* event_callback) (event __e, ios_base &__b, int __i) β€” the type of an event callback function πŸ“ž
  • typedef _Ios_Fmtflags fmtflags β€” this is a bitmask type. Flags on flags on flags 🚩
  • typedef traits_type::int_type int_type β€” the traits' int type, periodt
  • typedef _Ios_Iostate iostate β€” this is a bitmask type. Error states live here πŸ’€
  • typedef traits_type::off_type off_type β€” offset type, for the seeking girlies
  • typedef _Ios_Openmode openmode β€” this is a bitmask type. Modes, modes, modes
  • typedef traits_type::pos_type pos_type β€” position type, also for the seeking girlies
  • typedef _Ios_Seekdir seekdir β€” this is an enumerated type. Where are we seeking? Excellent question
  • typedef _Traits traits_type β€” the traits type herself 🌈
    • typedef num_get< _CharT, istreambuf_iterator< _CharT, _Traits > > __num_get_type β€” nested inside traits_type, the number-getting counterpart πŸ“

πŸ’… Public Member Functions πŸ’…

  • basic_ostringstream () β€” default constructor, starts with an empty string buffer. Fresh, clean, nothing in her πŸŽ€
  • basic_ostringstream (__string_type &&__str, ios_base::openmode __mode=ios_base::out) β€” move in a string, pick your __mode, default is ios_base::out
  • basic_ostringstream (basic_ostringstream &&__rhs) β€” move constructor, she takes everything __rhs had
  • basic_ostringstream (const __string_type &__str, ios_base::openmode __mode=ios_base::out) β€” starts with an existing string buffer. She's got baggage and honestly? Slay πŸ’–
  • basic_ostringstream (const basic_ostringstream &)=delete β€” copy constructor is deleted. Not available. Do not try it 🚫
  • template<typename _SAlloc> basic_ostringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, const allocator_type &__a) β€” string plus allocator, templated on _SAlloc ✨
  • template<typename _SAlloc> basic_ostringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, ios_base::openmode __mode, const allocator_type &__a) β€” string, mode, and allocator, the full combo meal πŸ“
  • template<typename _SAlloc> basic_ostringstream (const basic_string< _CharT, _Traits, _SAlloc > &__str, ios_base::openmode __mode=ios_base::out) β€” templated string with a mode, default ios_base::out
  • basic_ostringstream (ios_base::openmode __mode) β€” starts with an empty string buffer, but now you're picking the __mode 🌸
  • basic_ostringstream (ios_base::openmode __mode, const allocator_type &__a) β€” mode plus allocator, no string, still empty
  • ~basic_ostringstream () β€” the destructor does nothing. She's unbothered. Unfazed. Iconic 😌
  • const locale & _M_getloc () const β€” locale access πŸ”
  • template<typename _ValueT> basic_ostream< _CharT, _Traits > & _M_insert (_ValueT __v) β€” the internal insert, templated on _ValueT
  • void _M_setstate (iostate __state) β€” internal state setter
  • bool bad () const β€” fast error checking. Is it bad bad? She'll tell you πŸ’€
  • void clear (iostate __state=goodbit) β€” [re]sets the error state, default is goodbit ✨
  • basic_ios & copyfmt (const basic_ios &__rhs) β€” copies fields of __rhs into this 🫢
  • bool eof () const β€” fast error checking. End of file check, quick quick
  • iostate exceptions () const β€” throwing exceptions on errors 😭
  • void exceptions (iostate __except) β€” throwing exceptions on errors, now you're setting the __except mask
  • bool fail () const β€” fast error checking. Did it fail? Asking for a friend
  • char_type fill () const β€” retrieves the empty character, the fill char
  • char_type fill (char_type __ch) β€” sets a new empty character to __ch
  • fmtflags flags () const β€” access to format flags 🚩
  • fmtflags flags (fmtflags __fmtfl) β€” setting new format flags all at once, go off
  • __ostream_type & flush () β€” synchronizing the stream buffer. Push it out, queen πŸ’…
  • locale getloc () const β€” locale access again, still serving
  • bool good () const β€” fast error checking. Is everything good? Bestie check-in πŸ’–
  • locale imbue (const locale &__loc) β€” moves to a new locale 🌍
  • long & iword (int __ix) β€” access to integer array, index __ix
  • char narrow (char_type __c, char __dfault) const β€” squeezes characters, with __dfault as the fallback
  • __ostream_type & operator<< (__streambuf_type *__sb) β€” extracting from another streambuf πŸ“₯
  • __ostream_type & operator<< (const void *__p) β€” pointer arithmetic inserters 🎯
  • __ostream_type & operator<< (const volatile void *__p) β€” the volatile pointer flavor of the same vibe
  • __ostream_type & operator<< (nullptr_t) β€” and the nullptr_t flavor too
  • basic_ostringstream & operator= (basic_ostringstream &&__rhs) β€” move assignment, she takes over __rhs entirely
  • basic_ostringstream & operator= (const basic_ostringstream &)=delete β€” copy assignment is deleted. Nope. Not a thing 🚫
  • streamsize precision () const β€” flags access πŸ‘€
  • streamsize precision (streamsize __prec) β€” changing flags, setting precision to __prec
  • void *& pword (int __ix) β€” access to void pointer array, index __ix
  • basic_streambuf< _CharT, _Traits > * rdbuf (basic_streambuf< _CharT, _Traits > *__sb) β€” changing the underlying buffer to __sb πŸ”„
  • __stringbuf_type * rdbuf () const β€” accessing the underlying buffer. It's a __stringbuf_type * and it's all hers πŸ’…
  • iostate rdstate () const β€” returns the error state of the stream buffer
  • void register_callback (event_callback __fn, int __index) β€” add the callback __fn with parameter __index πŸ“ž
  • __ostream_type & seekp (off_type, ios_base::seekdir) β€” changing the current write position, offset + direction style
  • __ostream_type & seekp (pos_type) β€” changing the current write position, absolute position style
  • fmtflags setf (fmtflags __fmtfl) β€” setting new format flags 🚩
  • fmtflags setf (fmtflags __fmtfl, fmtflags __mask) β€” setting new format flags, but masked this time
  • void setstate (iostate __state) β€” sets additional flags in the error state
  • __string_type str () && β€” copying out the string buffer, rvalue-ref-qualified version
  • __string_type str () const & β€” copying out the string buffer, const lvalue-ref-qualified version. Same energy, different qualifier
  • void str (__string_type &&__s) β€” setting a new buffer, moving __s in
  • void str (const __string_type &__s) β€” setting a new buffer from __s πŸŽ€
  • template<__allocator_like _SAlloc> basic_string< _CharT, _Traits, _SAlloc > str (const _SAlloc &__sa) const β€” copy out the string but with an allocator-like _SAlloc of your choosing
  • template<__allocator_like _SAlloc> void str (const basic_string< _CharT, _Traits, _SAlloc > &__s) β€” set a new buffer from a string with an allocator-like _SAlloc
  • void swap (basic_ostringstream &__rhs) β€” swap with __rhs, trade places bestie πŸ”
  • pos_type tellp () β€” getting the current write position πŸ“
  • basic_ostream< _CharT, _Traits > * tie () const β€” fetches the current tied stream
  • basic_ostream< _CharT, _Traits > * tie (basic_ostream< _CharT, _Traits > *__tiestr) β€” ties this stream to an output stream __tiestr 🫢
  • void unsetf (fmtflags __mask) β€” clearing format flags 🧹
  • basic_string_view< char_type, traits_type > view () const noexcept β€” a view of it, noexcept, zero drama ✨
  • char_type widen (char __c) const β€” widens characters πŸ¦‹
  • streamsize width () const β€” flags access
  • streamsize width (streamsize __wide) β€” changing flags, width set to __wide

Then the manipulator-interface operators, all nested right there in the member list:

  • __ostream_type & operator<< (__ostream_type &(*__pf)(__ostream_type &)) β€” interface for manipulators πŸŽ›οΈ
  • __ostream_type & operator<< (__ios_type &(*__pf)(__ios_type &)) β€” interface for manipulators
  • __ostream_type & operator<< (ios_base &(*__pf)(ios_base &)) β€” interface for manipulators

🌟 Inserters 🌟

Okay so here's the tea πŸ«– β€” all the operator<< functions (aka the formatted output functions) have some common behavior, and it's always the same little ritual:

  • Each one starts by constructing a temporary object of type std::basic_ostream::sentry. That sentry can have several effects, and it wraps up by setting a status flag. See the sentry documentation for more, bestie, because there's a lot going on there.
  • If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument ✨
  • If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state without causing an ios_base::failure to be thrown. Then the original exception gets rethrown 😭
Not me warning you: the exception behavior is exactly as written β€” badbit goes on, no ios_base::failure, original exception rethrown. Don't improvise.

The actual inserters:

  • __ostream_type & operator<< (long __n) β€” integer arithmetic inserters πŸ”’
  • __ostream_type & operator<< (unsigned long __n) β€” integer arithmetic inserters
  • __ostream_type & operator<< (bool __n) β€” integer arithmetic inserters
  • __ostream_type & operator<< (short __n) β€” integer arithmetic inserters
  • __ostream_type & operator<< (unsigned short __n) β€” integer arithmetic inserters
  • __ostream_type & operator<< (int __n) β€” integer arithmetic inserters
  • __ostream_type & operator<< (unsigned int __n) β€” integer arithmetic inserters
  • __ostream_type & operator<< (long long __n) β€” integer arithmetic inserters
  • __ostream_type & operator<< (unsigned long long __n) β€” integer arithmetic inserters
  • __ostream_type & operator<< (double __f) β€” floating point arithmetic inserters πŸ“
  • __ostream_type & operator<< (float __f) β€” floating point arithmetic inserters
  • __ostream_type & operator<< (long double __f) β€” floating point arithmetic inserters

🧚 Unformatted Output Functions 🧚

And for the unformatted girlies, same story, slightly different ending: all the unformatted output functions have some common behavior too. Each one starts by constructing a temporary object of type std::basic_ostream::sentry. That has several effects, concluding with the setting of a status flag β€” see the sentry documentation for more.

  • If the sentry status is good, the function tries to generate whatever data is appropriate for the type of the argument 🌈
  • If an exception is thrown during insertion, ios_base::badbit will be turned on in the stream's error state. And if badbit is on in the stream's exceptions mask, the exception will be rethrown without completing its actions πŸ’€
Yeah, that second bullet is the important one β€” read it twice.
  • __ostream_type & put (char_type __c) β€” simple insertion. One character, in she goes πŸ’–
  • __ostream_type & write (const char_type *__s, streamsize __n) β€” character string insertion, __n chars from __s πŸ“
  • operator bool () const β€” the quick-and-easy status check. Yes or no, bestie πŸ‘‘
  • bool operator! () const β€” the quick-and-easy status check, but negated

⭐ Static Public Member Functions ⭐

  • static bool sync_with_stdio (bool __sync=true) β€” interaction with the standard C I/O objects. Default is true, because of course it is πŸŽ€
  • static int xalloc () throw () β€” access to unique indices. Yes, that's throw () with the empty exception spec, exactly as written, don't @ me πŸ’…

✨ Static Public Attributes ✨

okay bestie, here's the whole shelf of static const goodies you inherit β€” every single one, no skips πŸ’…

  • static const openmode __noreplace β€” yeah this one's just sitting here, no description in the source, we move.
  • static const fmtflags adjustfield β€” a mask of left|right|internal. lowkey perfect for the 2-arg form of setf.
  • static const openmode app β€” seek to end before each write. like "always append, never forget" energy.
  • static const openmode ate β€” open, then immediately seek to end. not to be confused with app, she's a different girl 🫢
  • static const iostate badbit β€” indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file). this is the "it's over" bit πŸ’€
  • static const fmtflags basefield β€” a mask of dec|oct|hex. useful for the 2-arg form of setf.
  • static const seekdir beg β€” request a seek relative to the beginning of the stream.
  • static const openmode binary β€” perform input and output in binary mode (as opposed to text mode). > bestie, this is probably not what you think it is; see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary.
  • static const fmtflags boolalpha β€” insert/extract bool in alphabetic rather than numeric format. so true instead of 1, slay.
  • static const seekdir cur β€” request a seek relative to the current position within the sequence.
  • static const fmtflags dec β€” converts integer input or generates integer output in decimal base.
  • static const seekdir end β€” request a seek relative to the current end of the sequence.
  • static const iostate eofbit β€” indicates that an input operation reached the end of an input sequence. the classic "nothing left to read" moment 😭
  • static const iostate failbit β€” indicates that an input operation failed to read the expected characters, or that an output operation failed to generate the desired characters.
  • static const fmtflags fixed β€” generate floating-point output in fixed-point notation.
  • static const fmtflags floatfield β€” a mask of scientific|fixed. useful for the 2-arg form of setf.
  • static const iostate goodbit β€” indicates all is well. the healthiest bit, we stan 🌸
  • static const fmtflags hex β€” converts integer input or generates integer output in hexadecimal base.
  • static const openmode in β€” open for input. default for ifstream and fstream.
  • static const fmtflags internal β€” adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is designated.
  • static const fmtflags left β€” adds fill characters on the right (final positions) of certain generated output. (i.e., the thing you print is flush left.).
  • static const fmtflags oct β€” converts integer input or generates integer output in octal base.
  • static const openmode out β€” open for output. default for ofstream and fstream.
  • static const fmtflags right β€” adds fill characters on the left (initial positions) of certain generated output. (i.e., the thing you print is flush right.).
  • static const fmtflags scientific β€” generates floating-point output in scientific notation.
  • static const fmtflags showbase β€” generates a prefix indicating the numeric base of generated integer output.
  • static const fmtflags showpoint β€” generates a decimal-point character unconditionally in generated floating-point output.
  • static const fmtflags showpos β€” generates a + sign in non-negative generated numeric output.
  • static const fmtflags skipws β€” skips leading white space before certain input operations.
  • static const openmode trunc β€” truncate an existing stream when opening. default for ofstream.
  • static const fmtflags unitbuf β€” flushes output after each output operation. no buffering, we're impatient πŸ’…
  • static const fmtflags uppercase β€” replaces certain lowercase letters with their uppercase equivalents in generated output.

πŸŽ€ Protected Types πŸŽ€

  • enum { _S_local_word_size }

πŸ”’ Protected Member Functions πŸ”’

  • void _M_cache_locale (const locale &__loc)
  • void _M_call_callbacks (event __ev) throw ()
  • void _M_dispose_callbacks (void) throw ()
  • _Words & _M_grow_words (int __index, bool __iword)
  • void _M_init () throw ()
  • template<typename _ValueT> __ostream_type & _M_insert (_ValueT __v)
  • void _M_move (ios_base &) noexcept
  • void _M_swap (ios_base &__rhs) noexcept
  • void init (basic_streambuf< _CharT, _Traits > *__sb) β€” all setup is performed here. literally all of it, bestie, one stop shop ✨
  • void move (basic_ios &&__rhs)
  • void move (basic_ios &__rhs)
  • void set_rdbuf (basic_streambuf< _CharT, _Traits > *__sb)
  • void swap (basic_ios &__rhs) noexcept
  • void swap (basic_ostream &__rhs)

🫣 Protected Attributes 🫣

  • _Callback_list * _M_callbacks
  • const __ctype_type * _M_ctype
  • iostate _M_exception
  • char_type _M_fill
  • bool _M_fill_init
  • fmtflags _M_flags
  • locale _M_ios_locale
  • _Words _M_local_word [_S_local_word_size]
  • const __num_get_type * _M_num_get
  • const __num_put_type * _M_num_put
  • streamsize _M_precision
  • basic_streambuf< _CharT, _Traits > * _M_streambuf
  • iostate _M_streambuf_state
  • basic_ostream< _CharT, _Traits > * _M_tie
  • streamsize _M_width
  • _Words * _M_word
  • int _M_word_size
  • _Words _M_word_zero

πŸ’– Detailed Description πŸ’–

template<typename _CharT, typename _Traits, typename _Alloc>
    class std::basic_ostringstream< _CharT, _Traits, _Alloc >

Controlling output for std::string. yes bestie, she's the one holding the pen πŸ–ŠοΈβœ¨

Template Parameters

  • _CharT β€” type of character stream.
  • _Traits β€” traits for character type, defaults to char_traits<_CharT>.
  • _Alloc β€” allocator type, defaults to allocator<_CharT>.

This class supports writing to objects of type std::basic_string, using the inherited functions from std::basic_ostream. To control the associated sequence, an instance of std::basic_stringbuf is used, which this page refers to as sb.


🌈 Member Typedef Documentation 🌈

template<typename _CharT, typename _Traits> typedef num_get<_CharT,
    istreambuf_iterator<_CharT, _Traits> > std::basic_ios< _CharT, _Traits
    >::__num_get_type [inherited]

These are non-standard types. iykyk πŸ™ˆ


typedef void(* std::ios_base::event_callback) (event __e, ios_base &__b, int
    __i) [inherited]

The type of an event callback function.

Parameters

  • __e β€” one of the members of the event enum.
  • __b β€” reference to the ios_base object.
  • __i β€” the integer provided when the callback was registered.

Event callbacks are user defined functions that get called during several ios_base and basic_ios functions, specifically imbue(), copyfmt(), and ~ios().


typedef _Ios_Fmtflags std::ios_base::fmtflags [inherited]

This is a bitmask type. _Ios_Fmtflags is implementation-defined, but it is valid to perform bitwise operations on these values and expect the Right Thing to happen. Defined objects of type fmtflags are:

  • boolalpha
  • dec
  • fixed
  • hex
  • internal
  • left
  • oct
  • right
  • scientific
  • showbase
  • showpoint
  • showpos
  • skipws
  • unitbuf
  • uppercase
  • adjustfield
  • basefield
  • floatfield

typedef _Ios_Iostate std::ios_base::iostate [inherited]

This is a bitmask type. _Ios_Iostate is implementation-defined, but it is valid to perform bitwise operations on these values and expect the Right Thing to happen. Defined objects of type iostate are:

  • badbit
  • eofbit
  • failbit
  • goodbit

typedef _Ios_Openmode std::ios_base::openmode [inherited]

This is a bitmask type. _Ios_Openmode is implementation-defined, but it is valid to perform bitwise operations on these values and expect the Right Thing to happen. Defined objects of type openmode are:

  • app
  • ate
  • binary
  • in
  • out
  • trunc

typedef _Ios_Seekdir std::ios_base::seekdir [inherited]

This is an enumerated type. _Ios_Seekdir is implementation-defined. Defined values of type seekdir are:

  • beg
  • cur, equivalent to SEEK_CUR in the C standard library.
  • end, equivalent to SEEK_END in the C standard library.

🧚 Member Enumeration Documentation 🧚

enum std::ios_base::event [inherited]

The set of events that may be passed to an event callback. erase_event is used during ~ios() and copyfmt(). imbue_event is used during imbue(). copyfmt_event is used during copyfmt().


πŸ‘‘ Constructor & Destructor Documentation πŸ‘‘

template<typename _CharT, typename _Traits, typename _Alloc>
    std::basic_ostringstream< _CharT, _Traits, _Alloc >::basic_ostringstream
    () [inline]

Default constructor starts with an empty string buffer. Initializes sb using mode|out, and passes &sb to the base class initializer. Does not allocate any buffer.

That's a lie. We initialize the base class with NULL, because the string class does its own memory management. 😭

template<typename _CharT, typename _Traits, typename _Alloc>
    std::basic_ostringstream< _CharT, _Traits, _Alloc >::basic_ostringstream
    (ios_base::openmode __mode) [inline],  [explicit]

Starts with an empty string buffer.

Parameters

  • __mode β€” whether the buffer can read, or write, or both.

ios_base::out is automatically included in mode.

Initializes sb using mode|out, and passes &sb to the base class initializer. Does not allocate any buffer.

That's a lie. We initialize the base class with NULL, because the string class does its own memory management. πŸ’€

template<typename _CharT, typename _Traits, typename _Alloc>
    std::basic_ostringstream< _CharT, _Traits, _Alloc >::basic_ostringstream
    (const __string_type & __str, ios_base::openmode __mode = ios_base::out)
    [inline],  [explicit]

Starts with an existing string buffer.

Parameters

  • __str β€” a string to copy as a starting buffer.
  • __mode β€” whether the buffer can read, or write, or both.

ios_base::out is automatically included in mode.

Initializes sb using str and mode|out, and passes &sb to the base class initializer.

That's a lie. We initialize the base class with NULL, because the string class does its own memory management. bestie they really said it three times, and honestly? iconic.

template<typename _CharT, typename _Traits, typename _Alloc>
    std::basic_ostringstream< _CharT, _Traits, _Alloc
    >::~basic_ostringstream () [inline]

The destructor does nothing. The buffer is deallocated by the stringbuf object, not the formatting stream. she's not doing the work, and that's valid 🫢


πŸ’œ Member Function Documentation πŸ’œ

const locale & std::ios_base::_M_getloc () const [inline],  [inherited]

Locale access.

Returns

A reference to the current locale.

Like getloc above, but returns a reference instead of generating a copy. so efficient, we love her ✨

Referenced by std::money_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(), std::num_put< _CharT, _OutIter >::do_put(), std::time_put< _CharT, _OutIter >::do_put(), std::time_get< _CharT, _InIter >::get(), and std::time_put< _CharT, _OutIter >::put().

🩹 bad()

template<typename _CharT, typename _Traits> bool std::basic_ios< _CharT, _Traits >::bad () const

[inline], [nodiscard], [inherited]

Bestie, this is the fast error checking girlie πŸ’… she just peeks and tells you the tea.

Returns: True if the badbit is set.

Heads up tho β€” other iostate flags may also be set, so don't assume badbit is the whole story. πŸ‘€

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry().


🧼 clear()

template<typename _CharT, typename _Traits> void std::basic_ios< _CharT, _Traits >::clear (iostate __state = goodbit)

[inherited]

The [Re]sets the error state function β€” the glow-up reset button for your stream ✨

Parameters

  • __state β€” the new state flag(s) to set.

Peep std::ios_base::iostate for the possible bit values. Most users will not need to pass an argument, fr fr.

References std::ios_base::badbit, exceptions(), rdbuf(), and rdstate().

Referenced by std::basic_ios< char_type, traits_type >::exceptions(), std::basic_fstream< char >::open(), std::basic_fstream< char >::open(), std::basic_ifstream< char >::open(), std::basic_ifstream< char >::open(), std::basic_ofstream< char >::open(), std::basic_ofstream< char >::open(), std::__detail::operator>>(), std::basic_istream< _CharT, _Traits >::putback(), rdbuf(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_ios< char_type, traits_type >::setstate(), and std::basic_istream< _CharT, _Traits >::unget().


πŸ“‹ copyfmt()

template<typename _CharT, typename _Traits> basic_ios< _CharT, _Traits > & std::basic_ios< _CharT, _Traits >::copyfmt (const basic_ios< _CharT, _Traits > & __rhs)

[inherited]

Copies fields of __rhs into this. It's giving "copy her whole aesthetic" πŸŽ€

Parameters

  • __rhs β€” the source values for the copies.

Returns: a reference to this object.

So here's the rundown: all fields of __rhs get copied into this object, except that rdbuf() and rdstate() stay unchanged. All values in the pword and iword arrays get copied too. Before copying, each callback is invoked with erase_event. After copying, each (new) callback is invoked with copyfmt_event. And the final step? Copy exceptions(). Periodt. πŸ’…

References basic_ios(), std::__addressof(), exceptions(), fill(), std::ios_base::flags(), std::ios_base::getloc(), std::ios_base::precision(), tie(), std::tie(), and std::ios_base::width().


🏁 eof()

template<typename _CharT, typename _Traits> bool std::basic_ios< _CharT, _Traits >::eof () const

[inline], [nodiscard], [inherited]

Fast error checking, bestie ⚑

Returns: True if the eofbit is set.

Same disclaimer as before β€” other iostate flags may also be set. 🌸

🚨 exceptions() (the const one)

template<typename _CharT, typename _Traits> iostate std::basic_ios< _CharT, _Traits >::exceptions () const

[inline], [nodiscard], [inherited]

Throwing exceptions on errors β€” the dramatic option, honestly iconic.

Returns: the current exceptions mask.

This changes nothing in the stream, no cap. See the one-argument version of exceptions(iostate) for the meaning of the return value.

Referenced by clear(), and copyfmt().


🎭 exceptions() (the setter)

template<typename _CharT, typename _Traits> void std::basic_ios< _CharT, _Traits >::exceptions (iostate __except)

[inline], [inherited]

Throwing exceptions on errors, but make it a choice this time.

Parameters

  • __except β€” the new exceptions mask.

By default, error flags are set silently 🀫. You can set an exceptions mask for each stream; if a bit in the mask becomes set in the error flags, then an exception of type std::ios_base::failure is thrown.

And if the error flag is already set when the exceptions mask is added, the exception is immediately thrown 😭 no waiting, no chill. Try running the following under GCC 3.1 or later:
#include <iostream>
#include <fstream>
#include <exception>

int main()
{
    std::set_terminate (__gnu_cxx::__verbose_terminate_handler);

    std::ifstream f ("/etc/motd");

    std::cerr << "Setting badbit\n";
    f.setstate (std::ios_base::badbit);

    std::cerr << "Setting exception mask\n";
    f.exceptions (std::ios_base::badbit);
}

πŸ’€ fail()

template<typename _CharT, typename _Traits> bool std::basic_ios< _CharT, _Traits >::fail () const

[inline], [nodiscard], [inherited]

Fast error checking, third installment 🫢

Returns: True if either the badbit or the failbit is set.

Checking the badbit in fail() is historical practice, iykyk. Note that other iostate flags may also be set.

Referenced by std::basic_ios< char_type, traits_type >::operator bool(), std::basic_ios< char_type, traits_type >::operator!(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().


🧴 fill() (getter)

template<typename _CharT, typename _Traits> char_type std::basic_ios< _CharT, _Traits >::fill () const

[inline], [nodiscard], [inherited]

Retrieves the empty character. The little filler character that pads out your output πŸŽ€

Returns: the current fill character.

It defaults to a space (' ') in the current locale.

Referenced by copyfmt(), and std::philox_engine< uint_fast32_t, 32, 4, 10, 0xCD9E8D57, 0x9E3779B9, 0xD2511F53, 0xBB67AE85 >::operator<<.


πŸ–ŒοΈ fill() (setter)

template<typename _CharT, typename _Traits> char_type std::basic_ios< _CharT, _Traits >::fill (char_type __ch)

[inline], [inherited]

Sets a new empty character, glow-up edition ✨

Parameters

  • __ch β€” the new character.

Returns: the previous fill character.

The fill character is used to fill out space when P+ characters have been requested (e.g., via setw), Q characters are actually used, and Q<P. It defaults to a space (' ') in the current locale.


🚩 flags() (getter)

fmtflags std::ios_base::flags () const

[inline], [nodiscard], [inherited]

Access to format flags. The whole vibe of your stream formatting, in one little bundle πŸ¦‹

Returns: the format control flags for both input and output.

Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), std::num_put< _CharT, _OutIter >::do_put(), std::chrono::operator<<(), std::philox_engine< uint_fast32_t, 32, 4, 10, 0xCD9E8D57, 0x9E3779B9, 0xD2511F53, 0xBB67AE85 >::operator<<, std::__detail::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), and std::philox_engine< uint_fast32_t, 32, 4, 10, 0xCD9E8D57, 0x9E3779B9, 0xD2511F53, 0xBB67AE85 >::operator>>.


πŸŽ›οΈ flags() (setter)

fmtflags std::ios_base::flags (fmtflags __fmtfl)

[inline], [inherited]

Setting new format flags all at once. It's giving "new year, new me" 🌈

Parameters

  • __fmtfl β€” the new flags to set.

Returns: the previous format control flags.

Careful bestie β€” this function overwrites all the format flags with __fmtfl. No merging, no mercy. πŸ’€

πŸ’¦ flush()

template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::flush ()

[inherited]

Synchronizing the stream buffer β€” aka making sure your output actually left the group chat and showed up somewhere real.

Returns: *this

If rdbuf() is a null pointer, changes nothing.

Otherwise, calls rdbuf()->pubsync(), and if that returns -1, sets badbit. 😬

References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >::setstate().

Referenced by std::flush().


🌍 getloc()

locale std::ios_base::getloc () const

[inline], [nodiscard], [inherited]

Locale access 🫢

Returns: a copy of the current locale.

If imbue(loc) has previously been called, then this function returns loc. Otherwise, it returns a copy of std::locale(), the global C++ locale.

Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::money_put< _CharT, _OutIter >::do_put(), std::basic_ios< _CharT, _Traits >::imbue(), std::chrono::operator<<(), std::operator>>(), std::operator>>(), and std::ws().


βœ… good()

template<typename _CharT, typename _Traits> bool std::basic_ios< _CharT, _Traits >::good () const

[inline], [nodiscard], [inherited]

Fast error checking β€” the main character check, the vibe check, the "are we okay bestie?" 🌸

Returns: True if no error flags are set.

A wrapper around rdstate.

Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and std::__detail::operator>>().


🌐 imbue()

template<typename _CharT, typename _Traits> locale std::basic_ios< _CharT, _Traits >::imbue (const locale & __loc)

[inherited]

Moves to a new locale β€” she's relocating, new city, new energy 🧚

Parameters

  • __loc β€” the new locale.

Returns: the previous locale.

Calls ios_base::imbue(loc), and if a stream buffer is associated with this stream, calls that buffer's pubimbue(loc).

Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.html

References std::ios_base::getloc(), std::ios_base::imbue(), and rdbuf().

Referenced by std::chrono::operator<<().


πŸ› οΈ init()

template<typename _CharT, typename _Traits> void std::basic_ios< _CharT, _Traits >::init (basic_streambuf< _CharT, _Traits > * __sb)

[protected], [inherited]

All setup is performed here. This is called from the public constructor. It is not virtual and cannot be redefined. No notes. πŸ’…

Referenced by std::basic_fstream< char >::basic_fstream(), std::basic_fstream< char >::basic_fstream(), std::basic_fstream< char >::basic_fstream(), std::basic_ifstream< char >::basic_ifstream(), std::basic_ifstream< char >::basic_ifstream(), std::basic_ifstream< char >::basic_ifstream(), std::basic_ios< char_type, traits_type >::basic_ios(), std::basic_istream< char_type, traits_type >::basic_istream(), std::basic_istringstream< char >::basic_istringstream(), std::basic_istringstream< char >::basic_istringstream(), std::basic_istringstream< char >::basic_istringstream(), std::basic_ofstream< char >::basic_ofstream(), std::basic_ofstream< char >::basic_ofstream(), std::basic_ofstream< char >::basic_ofstream(), std::basic_ostream< char_type, traits_type >::basic_ostream(), std::basic_ostringstream< char >::basic_ostringstream(), std::basic_ostringstream< char >::basic_ostringstream(), std::basic_ostringstream< char >::basic_ostringstream(), std::basic_stringstream< char >::basic_stringstream(), std::basic_stringstream< char >::basic_stringstream(), and std::basic_stringstream< char >::basic_stringstream().


πŸ”’ iword()

long & std::ios_base::iword (int __ix)

[inline], [inherited]

Access to integer array πŸ“

Parameters

  • __ix β€” index into the array.

Returns: a reference to an integer associated with the index.

The iword function provides access to an array of integers that can be used for any purpose. The array grows as required to hold the supplied index. All integers in the array are initialized to 0.

Real talk: the implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that since the array can grow dynamically, it is not safe to hold onto the reference. πŸ™ˆ

References iword().

Referenced by iword().


πŸ” narrow()

template<typename _CharT, typename _Traits> char std::basic_ios< _CharT, _Traits >::narrow (char_type __c, char __dfault) const

[inline], [inherited]

Squeezes characters.

okay so this is still narrow() β€” here's the tea on its args πŸ«–

Parameters

  • __c β€” the character to narrow, bestie
  • __dfault β€” the character to narrow (aka your fallback, the one who shows up when nobody else can) πŸ’…

Returns

The narrowed character. Periodt. ✨

It maps a character of char_type to a character of char, if possible β€” like, only if it's giving what it needs to give. It returns the result of:

std::use_facet<ctype<char_type> >(getloc()).narrow(c,dfault)

Additional l10n notes live at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.html β€” go read them, they ate. πŸ’–


template<typename _CharT, typename _Traits> std::basic_ios< _CharT, _Traits >::operator bool () const [inline], [explicit], [nodiscard], [inherited]

The quick-and-easy status check πŸŽ€. The way this lets you write little constructs like if (!a_stream) ... and while (a_stream) ... β€” iconic behavior honestly.

template<typename _CharT, typename _Traits> bool std::basic_ios< _CharT, _Traits >::operator! () const [inline], [nodiscard], [inherited]

Also the quick-and-easy status check πŸ’…. Same deal, same energy: it lets you write things like if (!a_stream) ... and while (a_stream) ...

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (__ios_type &(* __pf )(__ios_type &)) [inline], [inherited]

Interface for manipulators 🧚. Manipulators like std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For more info, go peek at the iomanip header, iykyk.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (__ostream_type &(* __pf )(__ostream_type &)) [inline], [inherited]

Interface for manipulators 🌸. Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For more information, see the iomanip header.

template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (__streambuf_type * __sb) [inherited]

Extracting from another streambuf 😭 this one's a whole saga, so sit down.

Parameters

  • __sb β€” a pointer to a streambuf

This function behaves like one of the basic arithmetic extractors, in that it also constructs a sentry object and has the same error handling behavior. (Yes, "extractors" β€” that's what it says, no cap.)

If __sb is NULL, the stream will set failbit in its error state πŸ’€.

Characters are extracted from __sb and inserted into *this until one of the following occurs:

  • the input stream reaches end-of-file,
  • insertion into the output sequence fails (in this case, the character that would have been inserted is not extracted), or
  • an exception occurs while getting a character from __sb, which sets failbit in the error state

If the function inserts no characters, failbit is set.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (bool __n) [inline], [inherited]

Integer arithmetic inserters πŸ“

Parameters

  • __n β€” a variable of builtin integral type.

Returns

*this if successful ✨

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (const void * __p) [inline], [inherited]

Pointer arithmetic inserters πŸ‘‘

Parameters

  • __p β€” a variable of pointer type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (double __f) [inline], [inherited]

Floating point arithmetic inserters 🌈

Parameters

  • __f β€” a variable of builtin floating point type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (float __f) [inline], [inherited]

Floating point arithmetic inserters πŸ’œ (yes bestie, float got its own whole entry, they said equal rights)

Parameters

  • __f β€” a variable of builtin floating point type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (int __n) [inherited]

Integer arithmetic inserters πŸ”₯ (notice: no [inline] here, she's built different)

Parameters

  • __n β€” a variable of builtin integral type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (ios_base &(* __pf )(ios_base &)) [inline], [inherited]

Interface for manipulators πŸŽ€. Manipulators such as std::endl and std::hex use these functions in constructs like "std::cout << std::endl". For more information, see the iomanip header.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (long __n) [inline], [inherited]

Integer arithmetic inserters ✨

Parameters

  • __n β€” a variable of builtin integral type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (long double __f) [inline], [inherited]

Floating point arithmetic inserters πŸ¦‹

Parameters

  • __f β€” a variable of builtin floating point type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (long long __n) [inline], [inherited]

Integer arithmetic inserters πŸ’–

Parameters

  • __n β€” a variable of builtin integral type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::operator<< (short __n) [inherited]

Integer arithmetic inserters 🌟

Parameters

  • __n β€” a variable of builtin integral type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

References basic_ostream(), std::ios_base::badbit, std::ostreambuf_iterator< _CharT, _Traits >::failed(), std::ios_base::goodbit, std::num_put< _CharT, _OutIter >::put(), std::basic_ios< _CharT, _Traits >::setstate(), and std::use_facet().

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (unsigned int __n) [inline], [inherited]

Integer arithmetic inserters πŸ’œ

Parameters

  • __n β€” a variable of builtin integral type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (unsigned long __n) [inline], [inherited]

Integer arithmetic inserters 🧚

Parameters

  • __n β€” a variable of builtin integral type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (unsigned long long __n) [inline], [inherited]

Integer arithmetic inserters 😭 (the longest of the long longs, she's the main character)

Parameters

  • __n β€” a variable of builtin integral type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.

template<typename _CharT, typename _Traits> __ostream_type & std::basic_ostream< _CharT, _Traits >::operator<< (unsigned short __n) [inline], [inherited]

Integer arithmetic inserters 🌸

Parameters

  • __n β€” a variable of builtin integral type.

Returns

*this if successful

These functions use the stream's current locale (specifically, the num_get facet) to perform numeric formatting.


streamsize std::ios_base::precision () const [inline], [nodiscard], [inherited]

Flags access πŸ”‘

Returns

The precision to generate on certain output operations.

Be careful if you try to give a definition of precision here; see DR 189. πŸ’€ (not me warning you twice, it's literally in the source)

Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), and std::chrono::operator<<().

streamsize std::ios_base::precision (streamsize __prec) [inline], [inherited]

Changing flags ✨

Parameters

  • __prec β€” the new precision value.

Returns

The previous value of precision().

template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::put (char_type __c) [inherited]

Simple insertion πŸŽ€

Parameters

  • __c β€” the character to insert.

Returns

*this

Tries to insert __c.

Note: This function is not overloaded on signed char and unsigned char. πŸ™ˆ

References std::ios_base::badbit, std::ios_base::goodbit, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >::setstate().

Referenced by std::endl(), and std::ends().

void *& std::ios_base::pword (int __ix) [inline], [inherited]

Access to void pointer array πŸ‘‘

Parameters

  • __ix β€” index into the array.

Returns

A reference to a void* associated with the index.

The pword function provides access to an array of pointers that can be used for any purpose. The array grows as required to hold the supplied index. All pointers in the array are initialized to 0.

The implementation reserves several indices. You should use xalloc to obtain an index that is safe to use. Also note that since the array can grow dynamically, it is not safe to hold onto the reference ⚠️ β€” she will move on you, fr fr.

template<typename _CharT, typename _Traits> basic_streambuf< _CharT, _Traits > * std::basic_ios< _CharT, _Traits >::rdbuf (basic_streambuf< _CharT, _Traits > * __sb) [inherited]

Changing the underlying buffer πŸ¦‹

Parameters

  • __sb β€” the new stream buffer.

Returns

The previous stream buffer.

Associates a new buffer with the current stream, and clears the error state. Clean, fresh start energy πŸ’…βœ¨

okay bestie, we're mid-marathon through the member functions πŸ’ͺ no breaks, hydration check, let's GO 🧚

rdbuf (the setter, continued) πŸ”€

Due to historical accidents which the LWG refuses to correct, the I/O library suffers from a design error: this function is hidden in derived classes by overrides of the zero-argument rdbuf(), which is non-virtual for hysterical raisins. As a result, you must use explicit qualifications to access this function via any derived class. For example:

std::fstream     foo;         // or some other derived type
std::streambuf*  p = .....;

foo.ios::rdbuf(p);            // ios == basic_ios<char>

References clear().


template<typename _CharT, typename _Traits, typename _Alloc> __stringbuf_type * std::basic_ostringstream< _CharT, _Traits, _Alloc >::rdbuf () const [inline], [nodiscard] 🌊

Accessing the underlying buffer.

Returns

  • The current basic_stringbuf buffer.

This hides both signatures of std::basic_ios::rdbuf(). not me noticing that it's out here shadowing everything πŸ’€


template<typename _CharT, typename _Traits> iostate std::basic_ios< _CharT, _Traits >::rdstate () const [inline], [nodiscard], [inherited] 🚦

Returns the error state of the stream buffer.

Returns

  • A bit pattern (well, isn't everything?)

See std::ios_base::iostate for the possible bit values. Most users will call one of the interpreting wrappers, e.g., good().

Referenced by std::basic_ios< char_type, traits_type >::bad(), clear(), std::basic_ios< char_type, traits_type >::eof(), std::basic_ios< char_type, traits_type >::fail(), std::basic_ios< char_type, traits_type >::good(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_ios< char_type, traits_type >::setstate(), and std::basic_istream< _CharT, _Traits >::unget().


void std::ios_base::register_callback (event_callback __fn, int __index) [inherited] πŸ“ž

Add the callback __fn with parameter __index.

Parameters

  • __fn β€” The function to add.
  • __index β€” The integer to pass to the function when invoked.

Registers a function as an event callback with an integer parameter to be passed to the function when invoked. Multiple copies of the function are allowed. If there are multiple callbacks, they are invoked in the order they were registered.

the way it literally says "multiple copies are allowed" β€” girl, go off, duplicate your callbacks, I support you ✨


template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (off_type __off, ios_base::seekdir __dir) [inherited] 🎯

Changing the current write position.

Parameters

  • __off β€” A file offset object.
  • __dir β€” The direction in which to seek.

Returns

  • *this

If fail() is not true, calls rdbuf()->pubseekoff(off,dir). If that function fails, sets failbit.

References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >::setstate().


template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::seekp (pos_type __pos) [inherited] 🎯

Changing the current write position.

Parameters

  • __pos β€” A file position object.

Returns

  • *this

If fail() is not true, calls rdbuf()->pubseekpos(pos). If that function fails, sets failbit.

References std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::failbit, std::ios_base::out, std::basic_ios< _CharT, _Traits >::rdbuf(), and std::basic_ios< _CharT, _Traits >::setstate().


fmtflags std::ios_base::setf (fmtflags __fmtfl) [inline], [inherited] πŸŽ›οΈ

Setting new format flags.

Parameters

  • __fmtfl β€” Additional flags to set.

Returns

  • The previous format control flags.

This function sets additional flags in format control. Flags that were previously set remain set.

Referenced by std::__detail::operator>>().


fmtflags std::ios_base::setf (fmtflags __fmtfl, fmtflags __mask) [inline], [inherited] πŸŽ›οΈ

Setting new format flags.

Parameters

  • __fmtfl β€” Additional flags to set.
  • __mask β€” The flags mask for fmtfl.

Returns

  • The previous format control flags.

This function clears mask in the format flags, then sets fmtfl & mask. An example mask is ios_base::adjustfield.

mask goes in, mask goes out, that's just the rules πŸ’…


template<typename _CharT, typename _Traits> void std::basic_ios< _CharT, _Traits >::setstate (iostate __state) [inline], [inherited] ⚠️

Sets additional flags in the error state.

Parameters

  • __state β€” The additional state flag(s) to set.

See std::ios_base::iostate for the possible bit values.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_fstream< char >::close(), std::basic_ifstream< char >::close(), std::basic_ofstream< char >::close(), std::basic_ostream< _CharT, _Traits >::flush(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::getline(), std::getline(), std::basic_fstream< char >::open(), std::basic_fstream< char >::open(), std::basic_ifstream< char >::open(), std::basic_ifstream< char >::open(), std::basic_ofstream< char >::open(), std::basic_ofstream< char >::open(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::operator<<(), std::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::operator>>(), std::operator>>(), std::tr2::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_ostream< _CharT, _Traits >::seekp(), std::basic_istream< _CharT, _Traits >::sync(), and std::ws().

okay that list is giving "everyone in the group chat got invited" energy, and honestly? iconic. this one function is the main character of the I/O library πŸ˜­πŸ‘‘


template<typename _CharT, typename _Traits, typename _Alloc> __string_type std::basic_ostringstream< _CharT, _Traits, _Alloc >::str () const & [inline], [nodiscard] πŸ“€

Copying out the string buffer.

Returns

  • rdbuf()->str()

template<typename _CharT, typename _Traits, typename _Alloc> void std::basic_ostringstream< _CharT, _Traits, _Alloc >::str (const __string_type & __s) [inline] πŸ“₯

Setting a new buffer.

Parameters

  • __s β€” The string to use as a new sequence.

Calls rdbuf()->str(s).


bool std::ios_base::sync_with_stdio (bool __sync = true) [static], [inherited] πŸ”—

Interaction with the standard C I/O objects.

Parameters

  • __sync β€” Whether to synchronize or not.

Returns

  • True if the standard streams were previously synchronized.

The synchronization referred to is only that between the standard C facilities (e.g., stdout) and the standard C++ objects (e.g., cout). User-declared streams are unaffected. See https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary

heads up bestie: it's the standard streams only. your own custom streams don't get dragged into this, they're doing their own thing πŸ¦‹

template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits >::pos_type std::basic_ostream< _CharT, _Traits >::tellp () [inherited] πŸ“

Getting the current write position.

Returns

  • A file position object.

If fail() is not false, returns pos_type(-1) to indicate failure. Otherwise returns rdbuf()->pubseekoff(0,cur,out).

References std::ios_base::cur, std::basic_ios< _CharT, _Traits >::fail(), std::ios_base::out, and std::basic_ios< _CharT, _Traits >::rdbuf().


template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits > * std::basic_ios< _CharT, _Traits >::tie () const [inline], [nodiscard], [inherited] πŸŽ€

Fetches the current tied stream.

Returns

  • A pointer to the tied stream, or NULL if the stream is not tied.

A stream may be tied (or synchronized) to a second output stream. When this stream performs any I/O, the tied stream is first flushed. For example, std::cin is tied to std::cout.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), and copyfmt().


template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits > * std::basic_ios< _CharT, _Traits >::tie (basic_ostream< _CharT, _Traits > * __tiestr) [inline], [inherited] πŸŽ€

Ties this stream to an output stream.

Parameters

  • __tiestr β€” The output stream.

Returns

  • The previously tied output stream, or NULL if the stream was not tied.

This sets up a new tie; see tie() for more.

cin and cout are literally tied, that's their whole relationship, and you know what? goals 🫢


void std::ios_base::unsetf (fmtflags __mask) [inline], [inherited] 🧹

Clearing format flags.

Parameters

  • __mask β€” The flags to unset.

This function clears __mask in the format flags.


template<typename _CharT, typename _Traits> char_type std::basic_ios< _CharT, _Traits >::widen (char __c) const [inline], [inherited] 🌸

Widens characters.

Parameters

  • __c β€” The character to widen.

Returns

  • The widened character.

Maps a character of char to a character of char_type.

Returns the result of

std::use_facet<ctype<char_type> >(getloc()).widen(c)

Additional l10n notes are at https://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.html

Referenced by std::endl(), std::basic_ios< char_type, traits_type >::fill(), std::basic_istream< char_type, traits_type >::get(), std::basic_istream< char_type, traits_type >::get(), std::basic_istream< char_type, traits_type >::getline(), std::getline(), std::getline(), std::operator<<(), std::operator<<(), std::philox_engine< uint_fast32_t, 32, 4, 10, 0xCD9E8D57, 0x9E3779B9, 0xD2511F53, 0xBB67AE85 >::operator<<, and std::tr2::operator>>().

not the random number engine showing up in the localization credits πŸ’€ girl what are you doing here


streamsize std::ios_base::width () const [inline], [nodiscard], [inherited] πŸ“

Flags access.

Returns

  • The minimum field width to generate on output operations.

Minimum field width refers to the number of characters.

Referenced by std::basic_ios< _CharT, _Traits >::copyfmt(), std::num_put< _CharT, _OutIter >::do_put(), std::operator>>(), and std::operator>>().


streamsize std::ios_base::width (streamsize __wide) [inline], [inherited] πŸ“

Changing flags.

Parameters

  • __wide β€” The new width value.

Returns

  • The previous value of width().

template<typename _CharT, typename _Traits> basic_ostream< _CharT, _Traits > & std::basic_ostream< _CharT, _Traits >::write (const char_type * __s, streamsize __n) [inherited] ✍️

Character string insertion.

Parameters

  • __s β€” The array to insert.
  • __n β€” Maximum number of characters to insert.

Returns

  • *this

Characters are copied from __s and inserted into the stream until one of the following happens:

  • __n characters are inserted
  • inserting into the output sequence fails (in this case, badbit will be set in the stream's error state)
Note: This function is not overloaded on signed char and unsigned char. like, it just doesn't do that. no cap. πŸ™ˆ

int std::ios_base::xalloc () [static], [inherited] 🎟️

Access to unique indices.

Returns

  • An integer different from all previous calls.

every single call gets a fresh number, no repeats, no reruns β€” she's booked and busy πŸ”₯


okay that's the chunk bestie, deep breaths, we're not done yet β€” more coming, don't touch that scroll wheel πŸ¦‹

This function returns a unique integer every single time you call it ✨ like it literally never repeats itself, iconic behavior. You can use it for anything honestly, but its main character purpose is being a unique index for the iword and pword functions. The whole vibe is: your app calls xalloc to grab an index into the iword/pword arrays so you can use it without fear of conflict 🫢 no stepping on anybody's toes, periodt.

The implementation keeps a static variable that gets incremented and returned on every invocation. And bestie, xalloc is guaranteed to hand you an index that's safe to use in the iword and pword arrays πŸ’… trust.


πŸŽ€ Member Data Documentation πŸŽ€

const fmtflags std::ios_base::adjustfield [static], [inherited]

A mask of left|right|internal β€” so useful for the 2-arg form of setf πŸ’–

Referenced by std::num_put< _CharT, _OutIter >::do_put(), std::internal(), std::left(), and std::right().

const openmode std::ios_base::app [static], [inherited]

Seek to the end before each write 🌸 every single time, no skipping.

Referenced by std::basic_filebuf< char_type, traits_type >::_M_set_buffer(), std::basic_filebuf< _CharT, _Traits >::overflow(), and std::basic_filebuf< _CharT, _Traits >::xsputn().

const openmode std::ios_base::ate [static], [inherited]

Open and seek to the end immediately after opening β€” one and done ✨

Referenced by std::basic_filebuf< _CharT, _Traits >::open().

const iostate std::ios_base::badbit [static], [inherited]

This one means the integrity of your input or output sequence is gone 😭 like an irrecoverable read error from a file. It's giving disaster.

Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::basic_ostream< _CharT, _Traits >::sentry::~sentry(), std::basic_ios< _CharT, _Traits >::clear(), std::basic_ostream< _CharT, _Traits >::flush(), std::basic_iostream< char_type, traits_type >::get(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::basic_iostream< char_type, traits_type >::operator<<(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, char_traits< _CharT > >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::tellg(), std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

const fmtflags std::ios_base::basefield [static], [inherited]

A mask of dec|oct|hex β€” again, chef's kiss for the 2-arg form of setf πŸŽ€

Referenced by std::dec(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), std::hex(), and std::oct().

const seekdir std::ios_base::beg [static], [inherited]

Request a seek relative to the beginning of the stream 🌱 back to square one.

Referenced by std::basic_filebuf< _CharT, _Traits >::seekpos().

const openmode std::ios_base::binary [static], [inherited]

Do your input and output in binary mode instead of text mode. And bestie, hear me β€” this is probably not what you think it is 😭 see https://gcc.gnu.org/onlinedocs/libstdc++/manual/fstreams.html#std.io.filestreams.binary before you get any ideas.

Referenced by std::basic_filebuf< _CharT, _Traits >::showmanyc().

const fmtflags std::ios_base::boolalpha [static], [inherited]

Insert/extract bool in alphabetic format instead of numeric format β€” so true/false instead of 1/0, we love a glow-up πŸ’…

Referenced by std::boolalpha(), std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and std::noboolalpha().

const seekdir std::ios_base::cur [static], [inherited]

Request a seek relative to the current position within the sequence πŸ“ right where you're standing, no cap.

Referenced by std::basic_filebuf< _CharT, _Traits >::imbue(), std::basic_filebuf< _CharT, _Traits >::overflow(), std::basic_filebuf< _CharT, _Traits >::pbackfail(), std::basic_filebuf< _CharT, _Traits >::seekoff(), std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff(), std::basic_istream< _CharT, _Traits >::tellg(), and std::basic_ostream< _CharT, _Traits >::tellp().

const fmtflags std::ios_base::dec [static], [inherited]

Converts integer input or generates integer output in decimal base πŸ”’ the classic.

Referenced by std::dec(), std::philox_engine< uint_fast32_t, 32, 4, 10, 0xCD9E8D57, 0x9E3779B9, 0xD2511F53, 0xBB67AE85 >::operator<<, and std::philox_engine< uint_fast32_t, 32, 4, 10, 0xCD9E8D57, 0x9E3779B9, 0xD2511F53, 0xBB67AE85 >::operator>>.

const seekdir std::ios_base::end [static], [inherited]

Request a seek relative to the current end of the sequence πŸ”š the other end of the vibe.

Referenced by std::basic_filebuf< _CharT, _Traits >::open(), and std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff().

const iostate std::ios_base::eofbit [static], [inherited]

Means an input operation reached the end of an input sequence πŸ¦‹ you hit the wall, bestie, nothing left to read.

Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_date(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_time(), std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, char_traits< _CharT > >::peek(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, char_traits< _CharT > >::seekg(), std::basic_istream< _CharT, _Traits >::unget(), std::basic_istream< _CharT, char_traits< _CharT > >::unget(), and std::ws().

const iostate std::ios_base::failbit [static], [inherited]

Means an input operation failed to read the characters you expected, or an output operation failed to generate the characters you wanted 😭 it tried and it did not slay.

Referenced by std::basic_ostream< _CharT, _Traits >::sentry::sentry(), std::basic_fstream< char >::close(), std::basic_ifstream< char >::close(), std::basic_ofstream< char >::close(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_fstream< char >::open(), std::basic_fstream< char >::open(), std::basic_ifstream< char >::open(), std::basic_ifstream< char >::open(), std::basic_ofstream< char >::open(), std::basic_ofstream< char >::open(), std::operator<<(), std::basic_iostream< char_type, traits_type >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_ostream< _CharT, _Traits >::seekp(), and std::basic_ostream< _CharT, _Traits >::seekp().

const fmtflags std::ios_base::fixed [static], [inherited]

Generate floating-point output in fixed-point notation πŸ“Œ locked in, literally.

Referenced by std::fixed(), and std::hexfloat().

const fmtflags std::ios_base::floatfield [static], [inherited]

A mask of scientific|fixed β€” you already know, it's for the 2-arg form of setf πŸ’–

Referenced by std::defaultfloat(), std::fixed(), std::hexfloat(), and std::scientific().

const iostate std::ios_base::goodbit [static], [inherited]

Indicates all is well ✨🌈 the good vibes state, the everything-is-fine era, we love to see it.

Referenced by std::basic_istream< _CharT, _Traits >::sentry::sentry(), std::num_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get(), std::time_get< _CharT, _InIter >::do_get_monthname(), std::time_get< _CharT, _InIter >::do_get_weekday(), std::time_get< _CharT, _InIter >::do_get_year(), std::basic_ostream< _CharT, _Traits >::flush(), std::basic_iostream< char_type, traits_type >::get(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::basic_istream< _CharT, _Traits >::get(), std::time_get< _CharT, _InIter >::get(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_istream< _CharT, _Traits >::ignore(), std::basic_iostream< char_type, traits_type >::operator<<(), std::basic_ostream< _CharT, _Traits >::operator<<(), std::basic_iostream< char_type, traits_type >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::basic_istream< _CharT, _Traits >::operator>>(), std::operator>>(), std::basic_istream< _CharT, _Traits >::peek(), std::basic_ostream< _CharT, _Traits >::put(), std::basic_istream< _CharT, _Traits >::putback(), std::basic_istream< _CharT, _Traits >::read(), std::basic_istream< _CharT, _Traits >::readsome(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::seekg(), std::basic_istream< _CharT, _Traits >::sync(), std::basic_istream< _CharT, _Traits >::unget(), and std::ws().

const fmtflags std::ios_base::hex [static], [inherited]

Converts integer input or generates integer output in hexadecimal base πŸ”₯ the cool kid base, fr fr.

Referenced by std::num_get< _CharT, _InIter >::do_get(), std::num_put< _CharT, _OutIter >::do_put(), and std::hex().

const openmode std::ios_base::in [static], [inherited]

Open for input πŸ“₯ and it's the default for ifstream and fstream, just so you know.

…and bestie, that is NOT even the full guest list for std::ios_base::in. The references keep coming like a group chat where nobody ever says goodbye πŸ’€ here's the rest of them, all of them, no skips:

  • std::basic_fstream< char >::basic_fstream()
  • std::basic_fstream< char >::basic_fstream()
  • std::basic_fstream< char >::basic_fstream()
  • std::basic_ifstream< char >::basic_ifstream()
  • std::basic_ifstream< char >::basic_ifstream()
  • std::basic_ifstream< char >::basic_ifstream()
  • std::basic_istringstream< char >::basic_istringstream()
  • std::basic_stringbuf< char >::basic_stringbuf()
  • std::basic_stringstream< char >::basic_stringstream()
  • std::basic_filebuf< char_type, traits_type >::_M_set_buffer()
  • std::basic_fstream< char >::open()
  • std::basic_fstream< char >::open()
  • std::basic_fstream< char >::open()
  • std::basic_ifstream< char >::open()
  • std::basic_ifstream< char >::open()
  • std::basic_ifstream< char >::open()
  • std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow()
  • std::basic_filebuf< _CharT, _Traits >::pbackfail()
  • std::basic_streambuf< char_type, traits_type >::pubseekoff()
  • std::basic_streambuf< char_type, traits_type >::pubseekpos()
  • std::basic_istream< _CharT, _Traits >::seekg()
  • std::basic_istream< _CharT, _Traits >::seekg()
  • std::basic_streambuf< char_type, traits_type >::seekoff()
  • std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff()
  • std::basic_stringbuf< char >::seekoff()
  • std::basic_streambuf< char_type, traits_type >::seekpos()
  • std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos()
  • std::basic_stringbuf< char >::seekpos()
  • std::basic_filebuf< _CharT, _Traits >::showmanyc()
  • std::basic_stringbuf< char >::showmanyc()
  • std::basic_istream< _CharT, _Traits >::tellg()
  • std::basic_filebuf< _CharT, _Traits >::underflow()
  • std::basic_stringbuf< _CharT, _Traits, _Alloc >::underflow()
  • std::basic_filebuf< _CharT, _Traits >::xsgetn()

Yes, some of them are listed three times. That's not a typo, that's overloads, and we respect overloads in this house πŸ‘‘ periodt.


  • const fmtflags std::ios_base::internal [static], [inherited] β€” drops fill characters at a designated internal point in certain generated output. And if no such point got designated? It just acts identical to right. Lowkey it's the understudy that ate anyway ✨

Referenced by:

  • std::internal()
  • const fmtflags std::ios_base::left [static], [inherited] β€” adds fill characters on the right (the final positions) of certain generated output. I.e., the thing you print is flush left. Main character behavior 🫢

Referenced by:

  • std::num_put< _CharT, _OutIter >::do_put()
  • std::left()
  • std::philox_engine< uint_fast32_t, 32, 4, 10, 0xCD9E8D57, 0x9E3779B9, 0xD2511F53, 0xBB67AE85 >::operator<<
  • const fmtflags std::ios_base::oct [static], [inherited] β€” converts integer input, or generates integer output, in octal base. Eight fingers, one vibe 🌈

Referenced by:

  • std::oct()
  • const openmode std::ios_base::out [static], [inherited] β€” open for output. It's the default for ofstream and fstream. The blueprint, the blueprint πŸ’…

Referenced by:

  • std::basic_fstream< char >::basic_fstream()
  • std::basic_fstream< char >::basic_fstream()
  • std::basic_fstream< char >::basic_fstream()
  • std::basic_ofstream< char >::basic_ofstream()
  • std::basic_ofstream< char >::basic_ofstream()
  • std::basic_ofstream< char >::basic_ofstream()
  • std::basic_ostringstream< char >::basic_ostringstream()
  • std::basic_stringbuf< char >::basic_stringbuf()
  • std::basic_stringstream< char >::basic_stringstream()
  • std::basic_filebuf< char_type, traits_type >::_M_set_buffer()
  • std::basic_fstream< char >::open()
  • std::basic_fstream< char >::open()
  • std::basic_fstream< char >::open()
  • std::basic_ofstream< char >::open()
  • std::basic_ofstream< char >::open()
  • std::basic_ofstream< char >::open()
  • std::basic_filebuf< _CharT, _Traits >::overflow()
  • std::basic_stringbuf< _CharT, _Traits, _Alloc >::overflow()
  • std::basic_stringbuf< _CharT, _Traits, _Alloc >::pbackfail()
  • std::basic_streambuf< char_type, traits_type >::pubseekoff()
  • std::basic_streambuf< char_type, traits_type >::pubseekpos()
  • std::basic_streambuf< char_type, traits_type >::seekoff()
  • std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekoff()
  • std::basic_stringbuf< char >::seekoff()
  • std::basic_ostream< _CharT, _Traits >::seekp()
  • std::basic_ostream< _CharT, _Traits >::seekp()
  • std::basic_streambuf< char_type, traits_type >::seekpos()
  • std::basic_stringbuf< _CharT, _Traits, _Alloc >::seekpos()
  • std::basic_stringbuf< char >::seekpos()
  • std::basic_ostream< _CharT, _Traits >::tellp()
  • std::basic_filebuf< _CharT, _Traits >::xsputn()
  • const fmtflags std::ios_base::right [static], [inherited] β€” adds fill characters on the left (the initial positions) of certain generated output. I.e., the thing you print is flush right. The mirror of left, obviously, and equally iconic πŸŽ€

Referenced by:

  • std::right()
  • const fmtflags std::ios_base::scientific [static], [inherited] β€” generates floating-point output in scientific notation. 1e10 energy fr fr 🧚

Referenced by:

  • std::hexfloat()
  • std::scientific()
  • const fmtflags std::ios_base::showbase [static], [inherited] β€” generates a prefix that tells you the numeric base of the generated integer output. It's giving "label your leftovers" 🌸

Referenced by:

  • std::num_put< _CharT, _OutIter >::do_put()
  • std::noshowbase()
  • std::showbase()
  • const fmtflags std::ios_base::showpoint [static], [inherited] β€” generates a decimal-point character unconditionally in generated floating-point output. No conditions, no maybes, the point is showing up πŸ’…

Referenced by:

  • std::noshowpoint()
  • std::showpoint()
  • const fmtflags std::ios_base::showpos [static], [inherited] β€” generates a + sign in non-negative generated numeric output. Positivity, but make it literal ✨

Referenced by:

  • std::noshowpos()
  • std::showpos()
  • const fmtflags std::ios_base::skipws [static], [inherited] β€” skips leading white space before certain input operations. The "leave me on read" setting but for spaces 🫢

Referenced by:

  • std::noskipws()
  • std::__detail::operator>>()
  • std::philox_engine< uint_fast32_t, 32, 4, 10, 0xCD9E8D57, 0x9E3779B9, 0xD2511F53, 0xBB67AE85 >::operator>>
  • std::skipws()
  • const openmode std::ios_base::trunc [static], [inherited] β€” truncates an existing stream when opening. Default for ofstream. She does not do "drafts," she does "fresh page" πŸ’€
  • const fmtflags std::ios_base::unitbuf [static], [inherited] β€” flushes output after each output operation. Zero chill, everything out immediately, no holding it in 🌈

Referenced by:

  • std::basic_ostream< _CharT, _Traits >::sentry::~sentry()
  • std::nounitbuf()
  • std::unitbuf()
  • const fmtflags std::ios_base::uppercase [static], [inherited] β€” replaces certain lowercase letters with their uppercase equivalents in generated output. ALL CAPS MOMENT, and honestly? Slay πŸ”₯

Referenced by:

  • std::num_put< _CharT, _OutIter >::do_put()
  • std::nouppercase()
  • std::uppercase()

✨ AUTHOR ✨

Generated automatically by Doxygen for libstdc++ from the source code. So no, a human did not sit down and lovingly hand-type this β€” the robot wrote it, and the robot ate πŸ˜­πŸ‘‘


That's the whole page, bestie. You made it to the end of std::basic_ostringstream and honestly you deserve a little treat for surviving every single referenced-by πŸ“

This whole thing comes courtesy of libstdc++, and the page you just finished reading is std::basic...s, _Alloc >(3). Take care of your streams and they'll take care of you πŸ’–πŸ¦‹

πŸ“¦ where this page comes from
  • arch rolling: gcc 16.2.1+r23+gd564253eb6c8-1 Β· GPL-3.0-or-later WITH GCC-exception-3.1 AND GFDL-1.3-or-later
  • fedora 44: libstdc++-docs 16.2.1-2.fc44
  • fedora 44: libstdc++-docs 16.2.1-3.fc44 Β· GPL-3.0-or-later AND LGPL-3.0-or-later AND (GPL-3.0-or-later WITH GCC-exception-3.1) AND (GPL-3.0-or-later WITH Texinfo-exception) AND (LGPL-2.1-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GCC-exception-2.0) AND (GPL-2.0-or-later WITH GNU-compiler-exception) AND BSL-1.0 AND GFDL-1.3-or-later AND Linux-man-pages-copyleft-2-para AND SunPro AND BSD-1-Clause AND BSD-2-Clause AND BSD-2-Clause-Views AND BSD-3-Clause AND BSD-4-Clause AND BSD-Source-Code AND Zlib AND MIT AND Apache-2.0 AND (Apache-2.0 WITH LLVM-Exception) AND ZPL-2.1 AND ISC AND LicenseRef-Fedora-Public-Domain AND HP-1986 AND curl AND Martin-Birgmeier AND HPND-Markus-Kuhn AND dtoa AND SMLNJ AND AMD-newlib AND OAR AND HPND-merchantability-variant AND HPND-Intel
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms