#include <iosfwd> namespace std { typedef implementation-defined streamoff; typedef implementation-defined streamsize; template <class stateT> class fpos; class ios_base; template <class charT, class traits = char_traits<charT> > class basic_ios; // [std.ios.manip], manipulators: ios_base& boolalpha (ios_base& str); ios_base& noboolalpha(ios_base& str); ios_base& showbase (ios_base& str); ios_base& noshowbase (ios_base& str); ios_base& showpoint (ios_base& str); ios_base& noshowpoint(ios_base& str); ios_base& showpos (ios_base& str); ios_base& noshowpos (ios_base& str); ios_base& skipws (ios_base& str); ios_base& noskipws (ios_base& str); ios_base& uppercase (ios_base& str); ios_base& nouppercase(ios_base& str); ios_base& unitbuf (ios_base& str); ios_base& nounitbuf (ios_base& str); // [adjustfield.manip] adjustfield: ios_base& internal (ios_base& str); ios_base& left (ios_base& str); ios_base& right (ios_base& str); // [basefield.manip] basefield: ios_base& dec (ios_base& str); ios_base& hex (ios_base& str); ios_base& oct (ios_base& str); // [floatfield.manip] floatfield: ios_base& fixed (ios_base& str); ios_base& scientific (ios_base& str); ios_base& hexfloat (ios_base& str); ios_base& defaultfloat(ios_base& str); // [error.reporting] error reporting: enum class io_errc { stream = 1 }; template <> struct is_error_code_enum<io_errc> : public true_type { }; error_code make_error_code(io_errc e); error_condition make_error_condition(io_errc e); const error_category& iostream_category(); }
typedef implementation-defined streamoff;
The type streamoff is a synonym for one of the signed basic integral types of sufficient size to represent the maximum possible file size for the operating system.297
typedef implementation-defined streamsize;
The type streamsize is a synonym for one of the signed basic integral types. It is used to represent the number of characters transferred in an I/O operation, or the size of I/O buffers.298
Typically long long.
streamsize is used in most places where ISO C would use size_t. Most of the uses of streamsize could use size_t, except for the strstreambuf constructors, which require negative values. It should probably be the signed type corresponding to size_t (which is what Posix.2 calls ssize_t).
namespace std { class ios_base { public: class failure; // [ios::fmtflags] fmtflags typedef T1 fmtflags; static constexpr fmtflags boolalpha = unspecified; static constexpr fmtflags dec = unspecified; static constexpr fmtflags fixed = unspecified; static constexpr fmtflags hex = unspecified; static constexpr fmtflags internal = unspecified; static constexpr fmtflags left = unspecified; static constexpr fmtflags oct = unspecified; static constexpr fmtflags right = unspecified; static constexpr fmtflags scientific = unspecified; static constexpr fmtflags showbase = unspecified; static constexpr fmtflags showpoint = unspecified; static constexpr fmtflags showpos = unspecified; static constexpr fmtflags skipws = unspecified; static constexpr fmtflags unitbuf = unspecified; static constexpr fmtflags uppercase = unspecified; static constexpr fmtflags adjustfield = see below; static constexpr fmtflags basefield = see below; static constexpr fmtflags floatfield = see below; // [ios::iostate] iostate typedef T2 iostate; static constexpr iostate badbit = unspecified; static constexpr iostate eofbit = unspecified; static constexpr iostate failbit = unspecified; static constexpr iostate goodbit = see below; // [ios::openmode] openmode typedef T3 openmode; static constexpr openmode app = unspecified; static constexpr openmode ate = unspecified; static constexpr openmode binary = unspecified; static constexpr openmode in = unspecified; static constexpr openmode out = unspecified; static constexpr openmode trunc = unspecified; // [ios::seekdir] seekdir typedef T4 seekdir; static constexpr fmtflags beg = unspecified; static constexpr fmtflags cur = unspecified; static constexpr fmtflags end = unspecified; class Init; // [fmtflags.state] fmtflags state: fmtflags flags() const; fmtflags flags(fmtflags fmtfl); fmtflags setf(fmtflags fmtfl); fmtflags setf(fmtflags fmtfl, fmtflags mask); void unsetf(fmtflags mask); streamsize precision() const; streamsize precision(streamsize prec); streamsize width() const; streamsize width(streamsize wide); // [ios.base.locales] locales: locale imbue(const locale& loc); locale getloc() const; // [ios.base.storage] storage: static int xalloc(); long& iword(int index); void*& pword(int index); // destructor virtual ~ios_base(); // [ios.base.callback] callbacks; enum event { erase_event, imbue_event, copyfmt_event }; typedef void (*event_callback)(event, ios_base&, int index); void register_callback(event_callback fn, int index); ios_base(const ios_base&) = delete; ios_base& operator=(const ios_base&) = delete; static bool sync_with_stdio(bool sync = true); protected: ios_base(); private: static int index; // exposition only long* iarray; // exposition only void** parray; // exposition only }; }
ios_base defines several member types:
a class failure derived from system_error;
a class Init;
three bitmask types, fmtflags, iostate, and openmode;
an enumerated type, seekdir.
It maintains several kinds of data:
state information that reflects the integrity of the stream buffer;
control information that influences how to interpret (format) input sequences and how to generate (format) output sequences;
additional information that is stored by the program for its private use.
[ Note: For the sake of exposition, the maintained data is presented here as:
static int index, specifies the next available unique index for the integer or pointer arrays maintained for the private use of the program, initialized to an unspecified value;
long* iarray, points to the first element of an arbitrary-length long array maintained for the private use of the program;
void** parray, points to the first element of an arbitrary-length pointer array maintained for the private use of the program. — end note ]
namespace std { class ios_base::failure : public system_error { public: explicit failure(const string& msg, const error_code& ec = io_errc::stream); explicit failure(const char* msg, const error_code& ec = io_errc::stream); }; }
The class failure defines the base class for the types of all objects thrown as exceptions, by functions in the iostreams library, to report errors detected during stream buffer operations.
When throwing ios_base::failure exceptions, implementations should provide values of ec that identify the specific reason for the failure. [ Note: Errors arising from the operating system would typically be reported as system_category() errors with an error value of the error number reported by the operating system. Errors arising from within the stream library would typically be reported as error_code(io_errc::stream, iostream_category()). — end note ]
explicit failure(const string& msg, , const error_code& ec = io_errc::stream);
Effects: Constructs an object of class failure by constructing the base class with msg and ec.
explicit failure(const char* msg, const error_code& ec = io_errc::stream);
Effects: Constructs an object of class failure by constructing the base class with msg and ec.
The type fmtflags is a bitmask type ([bitmask.types]). Setting its elements has the effects indicated in Table [tab:iostreams.fmtflags.effects].
Element | Effect(s) if set |
boolalpha | insert and extract bool type in alphabetic format |
dec | converts integer input or generates integer output in decimal base |
fixed | generate floating-point output in fixed-point notation |
hex | converts integer input or generates integer output in hexadecimal base |
internal | adds fill characters at a designated internal point in certain generated output, or identical to right if no such point is designated |
left | adds fill characters on the right (final positions) of certain generated output |
oct | converts integer input or generates integer output in octal base |
right | adds fill characters on the left (initial positions) of certain generated output |
scientific | generates floating-point output in scientific notation |
showbase | generates a prefix indicating the numeric base of generated integer output |
showpoint | generates a decimal-point character unconditionally in generated floating-point output |
showpos | generates a + sign in non-negative generated numeric output |
skipws | skips leading whitespace before certain input operations |
unitbuf | flushes output after each output operation |
uppercase | replaces certain lowercase letters with their uppercase equivalents in generated output |
Type fmtflags also defines the constants indicated in Table [tab:iostreams.fmtflags.constants].
Constant | Allowable values |
adjustfield | left | right | internal |
basefield | dec | oct | hex |
floatfield | scientific | fixed |
The type iostate is a bitmask type ([bitmask.types]) that contains the elements indicated in Table [tab:iostreams.iostate.effects].
Element | Effect(s) if set |
badbit | indicates a loss of integrity in an input or output sequence (such as an irrecoverable read error from a file); |
eofbit | indicates that an input operation reached the end of an input sequence; |
failbit | indicates that an input operation failed to read the expected characters, or that an output operation failed to generate the desired characters. |
The type openmode is a bitmask type ([bitmask.types]). It contains the elements indicated in Table [tab:iostreams.openmode.effects].
Element | Effect(s) if set |
app | seek to end before each write |
ate | open and seek to end immediately after opening |
binary | perform input and output in binary mode (as opposed to text mode) |
in | open for input |
out | open for output |
trunc | truncate an existing stream when opening |
The type seekdir is an enumerated type ([enumerated.types]) that contains the elements indicated in Table [tab:iostreams.seekdir.effects].
Element | Meaning |
beg | request a seek (for subsequent input or output) relative to the beginning of the stream |
cur | request a seek relative to the current position within the sequence |
end | request a seek relative to the current end of the sequence |
namespace std {
class ios_base::Init {
public:
Init();
~Init();
private:
static int init_cnt; // exposition only
};
}
The class Init describes an object whose construction ensures the construction of the eight objects declared in <iostream> ([iostream.objects]) that associate file stream buffers with the standard C streams provided for by the functions declared in <cstdio> ([c.files]).
For the sake of exposition, the maintained data is presented here as:
static int init_cnt, counts the number of constructor and destructor calls for class Init, initialized to zero.
Effects: Constructs an object of class Init. Constructs and initializes the objects cin, cout, cerr, clog, wcin, wcout, wcerr, and wclog if they have not already been constructed and initialized.
Returns: The format control information for both input and output.
fmtflags flags(fmtflags fmtfl);
Postcondition: fmtfl == flags().
Returns: The previous value of flags().
fmtflags setf(fmtflags fmtfl);
Effects: Sets fmtfl in flags().
Returns: The previous value of flags().
fmtflags setf(fmtflags fmtfl, fmtflags mask);
Effects: Clears mask in flags(), sets fmtfl & mask in flags().
Returns: The previous value of flags().
Effects: Clears mask in flags().
Returns: The precision to generate on certain output conversions.
streamsize precision(streamsize prec);
Postcondition: prec == precision().
Returns: The previous value of precision().
Returns: The minimum field width (number of characters) to generate on certain output conversions.
streamsize width(streamsize wide);
Postcondition: wide == width().
Returns: The previous value of width().
locale imbue(const locale& loc);
Effects: Calls each registered callback pair (fn,index) ([ios.base.callback]) as (*fn)(imbue_event,*this,index) at such a time that a call to ios_base::getloc() from within fn returns the new locale value loc.
Returns: The previous value of getloc().
Postcondition: loc == getloc().
Returns: If no locale has been imbued, a copy of the global C++ locale, locale(), in effect at the time of construction. Otherwise, returns the imbued locale, to be used to perform locale-dependent input and output operations.
bool sync_with_stdio(bool sync = true);
Returns: true if the previous state of the standard iostream objects ([iostream.objects]) was synchronized and otherwise returns false. The first time it is called, the function returns true.
When a standard iostream object str is synchronized with a standard stdio stream f, the effect of inserting a character c by
fputc(f, c);
is the same as the effect of
str.rdbuf()->sputc(c);
for any sequences of characters; the effect of extracting a character c by
c = fgetc(f);
is the same as the effect of
c = str.rdbuf()->sbumpc(c);
for any sequences of characters; and the effect of pushing back a character c by
ungetc(c, f);
is the same as the effect of
str.rdbuf()->sputbackc(c);
for any sequence of characters.299
This implies that operations on a standard iostream object can be mixed arbitrarily with operations on the corresponding stdio stream. In practical terms, synchronization usually means that a standard iostream object and a standard stdio object share a buffer.
Returns: index ++.
Effects: If iarray is a null pointer, allocates an array of long of unspecified size and stores a pointer to its first element in iarray. The function then extends the array pointed at by iarray as necessary to include the element iarray[idx]. Each newly allocated element of the array is initialized to zero. The reference returned is invalid after any other operations on the object.300 However, the value of the storage referred to is retained, so that until the next call to copyfmt, calling iword with the same index yields another reference to the same value. If the function fails301 and *this is a base subobject of a basic_ios<> object or subobject, the effect is equivalent to calling basic_ios<>::setstate(badbit) on the derived object (which may throw failure).
Returns: On success iarray[idx]. On failure, a valid long& initialized to 0.
Effects: If parray is a null pointer, allocates an array of pointers to void of unspecified size and stores a pointer to its first element in parray. The function then extends the array pointed at by parray as necessary to include the element parray[idx]. Each newly allocated element of the array is initialized to a null pointer. The reference returned is invalid after any other operations on the object. However, the value of the storage referred to is retained, so that until the next call to copyfmt, calling pword with the same index yields another reference to the same value. If the function fails302 and *this is a base subobject of a basic_ios<> object or subobject, the effect is equivalent to calling basic_ios<>::setstate(badbit) on the derived object (which may throw failure).
Returns: On success parray[idx]. On failure a valid void*& initialized to 0.
Remarks: After a subsequent call to pword(int) for the same object, the earlier return value may no longer be valid.
An implementation is free to implement both the integer array pointed at by iarray and the pointer array pointed at by parray as sparse data structures, possibly with a one-element cache for each.
for example, because it cannot allocate space.
for example, because it cannot allocate space.
void register_callback(event_callback fn, int index);
Effects: Registers the pair (fn,index) such that during calls to imbue() ([ios.base.locales]), copyfmt(), or ~ios_base() ([ios.base.cons]), the function fn is called with argument index. Functions registered are called when an event occurs, in opposite order of registration. Functions registered while a callback function is active are not called until the next event.
Requires: The function fn shall not throw exceptions.
Remarks: Identical pairs are not merged. A function registered twice will be called twice.
Effects: Each ios_base member has an indeterminate value after construction. The object's members shall be initialized by calling basic_ios::init before the object's first use or before it is destroyed, whichever comes first; otherwise the behavior is undefined.
Effects: Destroys an object of class ios_base. Calls each registered callback pair (fn, index) ([ios.base.callback]) as (*fn)(erase_event, *this, index) at such time that any ios_base member function called from within fn has well defined results.
namespace std { template <class stateT> class fpos { public: // [fpos.members] Members stateT state() const; void state(stateT); private; stateT st; // exposition only }; }
Operations specified in Table [tab:iostreams.position.requirements] are permitted. In that table,
P refers to an instance of fpos,
p and q refer to values of type P,
O refers to type streamoff,
o refers to a value of type streamoff,
sz refers to a value of type streamsize and
i refers to a value of type int.
Expression | Return type | Operational | Assertion/note |
semantics | pre-/post-condition | ||
P(i) |
p == P(i) note: a destructor is assumed. | ||
P p(i); P p = i; | post: p == P(i). | ||
P(o) | fpos | converts from offset | |
O(p) | streamoff | converts to offset | P(O(p)) == p |
p == q | convertible to bool | == is an equivalence relation | |
p != q | convertible to bool | !(p == q) | |
q = p + o p += o | fpos | + offset | q - o == p |
q = p - o p -= o | fpos | - offset | q + o == p |
o = p - q | streamoff | distance | q + o == p |
streamsize(o) O(sz) |
streamsize streamoff |
converts converts |
streamsize(O(sz)) == sz streamsize(O(sz)) == sz |
[ Note: Every implementation is required to supply overloaded operators on fpos objects to satisfy the requirements of [fpos.operations]. It is unspecified whether these operators are members of fpos, global operators, or provided in some other way. — end note ]
namespace std { template <class charT, class traits = char_traits<charT> > class basic_ios : public ios_base { public: // types: typedef charT char_type; typedef typename traits::int_type int_type; typedef typename traits::pos_type pos_type; typedef typename traits::off_type off_type; typedef traits traits_type; explicit operator bool() const; bool operator!() const; iostate rdstate() const; void clear(iostate state = goodbit); void setstate(iostate state); bool good() const; bool eof() const; bool fail() const; bool bad() const; iostate exceptions() const; void exceptions(iostate except); // [basic.ios.cons] Constructor/destructor: explicit basic_ios(basic_streambuf<charT,traits>* sb); virtual ~basic_ios(); // [basic.ios.members] Members: basic_ostream<charT,traits>* tie() const; basic_ostream<charT,traits>* tie(basic_ostream<charT,traits>* tiestr); basic_streambuf<charT,traits>* rdbuf() const; basic_streambuf<charT,traits>* rdbuf(basic_streambuf<charT,traits>* sb); basic_ios& copyfmt(const basic_ios& rhs); char_type fill() const; char_type fill(char_type ch); locale imbue(const locale& loc); char narrow(char_type c, char dfault) const; char_type widen(char c) const; basic_ios(const basic_ios& ) = delete; basic_ios& operator=(const basic_ios&) = delete; protected: basic_ios(); void init(basic_streambuf<charT,traits>* sb); void move(basic_ios& rhs); void move(basic_ios&& rhs); void swap(basic_ios& rhs) noexcept; void set_rdbuf(basic_streambuf<charT, traits>* sb); }; }
explicit basic_ios(basic_streambuf<charT,traits>* sb);
Effects: Constructs an object of class basic_ios, assigning initial values to its member objects by calling init(sb).
Effects: Constructs an object of class basic_ios ([ios.base.cons]) leaving its member objects uninitialized. The object shall be initialized by calling basic_ios::init before its first use or before it is destroyed, whichever comes first; otherwise the behavior is undefined.
Remarks: The destructor does not destroy rdbuf().
void init(basic_streambuf<charT,traits>* sb);
Postconditions: The postconditions of this function are indicated in Table [tab:iostreams.basicios.init.effects].
Element | Value |
rdbuf() | sb |
tie() | 0 |
rdstate() | goodbit if sb is not a null pointer, otherwise badbit. |
exceptions() | goodbit |
flags() | skipws | dec |
width() | 0 |
precision() | 6 |
fill() | widen(' '); |
getloc() | a copy of the value returned by locale() |
iarray | a null pointer |
parray | a null pointer |
basic_ostream<charT,traits>* tie() const;
Returns: An output sequence that is tied to (synchronized with) the sequence controlled by the stream buffer.
basic_ostream<charT,traits>* tie(basic_ostream<charT,traits>* tiestr);
Requires: If tiestr is not null, tiestr must not be reachable by traversing the linked list of tied stream objects starting from tiestr->tie().
Postcondition: tiestr == tie().
Returns: The previous value of tie().
basic_streambuf<charT,traits>* rdbuf() const;
Returns: A pointer to the streambuf associated with the stream.
basic_streambuf<charT,traits>* rdbuf(basic_streambuf<charT,traits>* sb);
Postcondition: sb == rdbuf().
Effects: Calls clear().
Returns: The previous value of rdbuf().
locale imbue(const locale& loc);
Effects: Calls ios_base::imbue(loc) ([ios.base.locales]) and if rdbuf()!=0 then rdbuf()->pubimbue(loc) ([streambuf.locales]).
Returns: The prior value of ios_base::imbue().
char narrow(char_type c, char dfault) const;
Returns: use_facet< ctype<char_type> >(getloc()).narrow(c,dfault)
char_type widen(char c) const;
Returns: use_facet< ctype<char_type> >(getloc()).widen(c)
Returns: The character used to pad (fill) an output conversion to the specified field width.
char_type fill(char_type fillch);
Postcondition: traits::eq(fillch, fill())
Returns: The previous value of fill().
basic_ios& copyfmt(const basic_ios& rhs);
Effects: If (this == &rhs) does nothing. Otherwise assigns to the member objects of *this the corresponding member objects of rhs as follows:
calls each registered callback pair (fn, index) as (*fn)(erase_event, *this, index);
assigns to the member objects of *this the corresponding member objects of rhs, except that
rdstate(), rdbuf(), and exceptions() are left unchanged;
the contents of arrays pointed at by pword and iword are copied, not the pointers themselves;303 and
if any newly stored pointer values in *this point at objects stored outside the object rhs and those objects are destroyed when rhs is destroyed, the newly stored pointer values are altered to point at newly constructed copies of the objects;
calls each callback pair that was copied from rhs as (*fn)(copyfmt_event, *this, index);
calls exceptions(rhs.except()).
Note: The second pass through the callback pairs permits a copied pword value to be zeroed, or to have its referent deep copied or reference counted, or to have other special action taken.
Postconditions: The postconditions of this function are indicated in Table [tab:iostreams.copyfmt.effects].
Element | Value |
rdbuf() | unchanged |
tie() | rhs.tie() |
rdstate() | unchanged |
exceptions() | rhs.exceptions() |
flags() | rhs.flags() |
width() | rhs.width() |
precision() | rhs.precision() |
fill() | rhs.fill() |
getloc() | rhs.getloc() |
Returns: *this.
void move(basic_ios& rhs);
void move(basic_ios&& rhs);
Postconditions: *this shall have the state that rhs had before the function call, except that rdbuf() shall return 0. rhs shall be in a valid but unspecified state, except that rhs.rdbuf() shall return the same value as it returned before the function call, and rhs.tie() shall return 0.
void swap(basic_ios& rhs) noexcept;
Effects: The states of *this and rhs shall be exchanged, except that rdbuf() shall return the same value as it returned before the function call, and rhs.rdbuf() shall return the same value as it returned before the function call.
void set_rdbuf(basic_streambuf<charT, traits>* sb);
Requires: sb != nullptr.
Effects: Associates the basic_streambuf object pointed to by sb with this stream without calling clear().
Postconditions: rdbuf() == sb.
Throws: Nothing.
This suggests an infinite amount of copying, but the implementation can keep track of the maximum element of the arrays that is non-zero.
explicit operator bool() const;
Returns: !fail().
Returns: fail().
Returns: The error state of the stream buffer.
void clear(iostate state = goodbit);
Postcondition: If rdbuf()!=0 then state == rdstate(); otherwise rdstate()==(state | ios_base::badbit).
Effects: If ((state | (rdbuf() ? goodbit : badbit)) & exceptions()) == 0, returns. Otherwise, the function throws an object fail of class basic_ios::failure ([ios::failure]), constructed with implementation-defined argument values.
Effects: Calls clear(rdstate() | state) (which may throw basic_ios::failure ([ios::failure])).
Returns: rdstate() == 0
Returns: true if eofbit is set in rdstate().
Returns: true if badbit is set in rdstate().
Returns: A mask that determines what elements set in rdstate() cause exceptions to be thrown.
void exceptions(iostate except);
Postcondition: except == exceptions().
Effects: Calls clear(rdstate()).
Checking badbit also for fail() is historical practice.
ios_base& boolalpha(ios_base& str);
Effects: Calls str.setf(ios_base::boolalpha).
Returns: str.
ios_base& noboolalpha(ios_base& str);
Effects: Calls str.unsetf(ios_base::boolalpha).
Returns: str.
ios_base& showbase(ios_base& str);
Effects: Calls str.setf(ios_base::showbase).
Returns: str.
ios_base& noshowbase(ios_base& str);
Effects: Calls str.unsetf(ios_base::showbase).
Returns: str.
ios_base& showpoint(ios_base& str);
Effects: Calls str.setf(ios_base::showpoint).
Returns: str.
ios_base& noshowpoint(ios_base& str);
Effects: Calls str.unsetf(ios_base::showpoint).
Returns: str.
ios_base& showpos(ios_base& str);
Effects: Calls str.setf(ios_base::showpos).
Returns: str.
ios_base& noshowpos(ios_base& str);
Effects: Calls str.unsetf(ios_base::showpos).
Returns: str.
ios_base& skipws(ios_base& str);
Effects: Calls str.setf(ios_base::skipws).
Returns: str.
ios_base& noskipws(ios_base& str);
Effects: Calls str.unsetf(ios_base::skipws).
Returns: str.
ios_base& uppercase(ios_base& str);
Effects: Calls str.setf(ios_base::uppercase).
Returns: str.
ios_base& nouppercase(ios_base& str);
Effects: Calls str.unsetf(ios_base::uppercase).
Returns: str.
ios_base& unitbuf(ios_base& str);
Effects: Calls str.setf(ios_base::unitbuf).
Returns: str.
ios_base& nounitbuf(ios_base& str);
Effects: Calls str.unsetf(ios_base::unitbuf).
Returns: str.
ios_base& internal(ios_base& str);
Effects: Calls str.setf(ios_base::internal, ios_base::adjustfield).
Returns: str.
ios_base& left(ios_base& str);
Effects: Calls str.setf(ios_base::left, ios_base::adjustfield).
Returns: str.
ios_base& right(ios_base& str);
Effects: Calls str.setf(ios_base::right, ios_base::adjustfield).
Returns: str.
Effects: Calls str.setf(ios_base::dec, ios_base::basefield).
Effects: Calls str.setf(ios_base::hex, ios_base::basefield).
Returns: str.
Effects: Calls str.setf(ios_base::oct, ios_base::basefield).
Returns: str.
The function signature dec(ios_base&) can be called by the function signature basic_ostream& stream::operator<<(ios_base& (*)(ios_base&)) to permit expressions of the form cout << dec to change the format flags stored in cout.
ios_base& fixed(ios_base& str);
Effects: Calls str.setf(ios_base::fixed, ios_base::floatfield).
Returns: str.
ios_base& scientific(ios_base& str);
Effects: Calls str.setf(ios_base::scientific, ios_base::floatfield).
Returns: str.
ios_base& hexfloat(ios_base& str);
Effects: Calls str.setf(ios_base::fixed | ios_base::scientific, ios_base::floatfield).
Returns: str.
[ Note: The more obvious use of ios_base::hex to specify hexadecimal floating-point format would change the meaning of existing well defined programs. C++2003 gives no meaning to the combination of fixed and scientific. — end note ]
Effects: Calls str.unsetf(ios_base::floatfield).
Returns: str.
error_code make_error_code(io_errc e);
Returns: error_code(static_cast<int>(e), iostream_category()).
error_condition make_error_condition(io_errc e);
Returns: error_condition(static_cast<int>(e), iostream_category()).
const error_category& iostream_category();
Returns: A reference to an object of a type derived from class error_category.
The object's default_error_condition and equivalent virtual functions shall behave as specified for the class error_category. The object's name virtual function shall return a pointer to the string "iostream".