Difference between revisions of "cpp/io/basic ios"
(→Protected member functions: move to template) |
m (fmt) |
||
(21 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
{{cpp/title|basic_ios}} | {{cpp/title|basic_ios}} | ||
− | {{cpp/io/basic_ios/ | + | {{cpp/io/basic_ios/navbar}} |
− | {{ddcl | header=ios | 1= | + | {{ddcl|header=ios|1= |
− | template< | + | template< |
− | class CharT, | + | class CharT, |
class Traits = std::char_traits<CharT> | class Traits = std::char_traits<CharT> | ||
− | > class basic_ios | + | > class basic_ios |
+ | : public std::ios_base | ||
}} | }} | ||
− | The class {{tt|basic_ios}} provides facilities for interfacing with objects that have {{ | + | The class {{tt|std::basic_ios}} provides facilities for interfacing with objects that have {{lc|std::basic_streambuf}} interface. Several {{tt|std::basic_ios}} objects can refer to one actual {{tt|std::basic_streambuf}} object. |
− | {{inheritance diagram | + | {{inheritance diagram/std-basic_ios}} |
− | + | ||
− | }} | + | |
− | + | {{cpp/basic char typedefs|ios}} | |
− | + | {{cpp/io/member types}} | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
===Public member functions=== | ===Public member functions=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc constructor}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc destructor}} |
− | {{ | + | {{dsc mem fun|operator{{=}}|nolink=true|the copy assignment operator is deleted}} |
− | {{ | + | {{dsc h2|State functions}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc good}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc eof}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc fail}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc bad}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc operator!}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc operator bool}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc rdstate}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc setstate}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc clear}} |
− | {{ | + | {{dsc h2|Formatting}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc copyfmt}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc fill}} |
− | {{ | + | {{dsc h2|Miscellaneous}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc exceptions}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc imbue}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc rdbuf}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc tie}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc narrow}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc widen}} |
− | {{ | + | {{dsc end}} |
===Protected member functions=== | ===Protected member functions=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc init}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc move}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc swap}} |
− | {{ | + | {{dsc inc|cpp/io/basic_ios/dsc set_rdbuf}} |
− | {{ | + | {{dsc end}} |
{{cpp/io/ios_base/inherit}} | {{cpp/io/ios_base/inherit}} | ||
+ | |||
+ | ===Notes=== | ||
+ | Straightforward implementation of {{tt|std::basic_ios}} stores only the following members (which all depend on the template parameters and thus cannot be part of {{lc|std::ios_base}}): | ||
+ | * the fill character (see {{rlt|fill|fill()}}) | ||
+ | * the tied stream pointer (see {{rlt|tie|tie()}}) | ||
+ | * the associated stream buffer pointer (see {{rlt|rdbuf|rdbuf()}}). | ||
+ | |||
+ | Actual implementations vary: | ||
+ | |||
+ | Microsoft Visual Studio stores just those three members. | ||
+ | |||
+ | LLVM libc++ stores 1 less member: it maintains the {{tt|rdbuf}} pointer as a {{c/core|void*}} member of {{tt|ios_base}}. | ||
+ | |||
+ | GNU libstdc++ stores 4 additional members: three cached facets and a flag to indicate that fill was initialized. | ||
+ | |||
+ | <!-- should I even bother with Oracle which plays dumb and maintains the iostate and the exception mask all in here instead of ios_base? --> | ||
+ | |||
+ | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Latest revision as of 09:58, 8 September 2023
Defined in header <ios>
|
||
template< class CharT, |
||
The class std::basic_ios
provides facilities for interfacing with objects that have std::basic_streambuf interface. Several std::basic_ios
objects can refer to one actual std::basic_streambuf
object.
Inheritance diagram
Several typedefs for common character types are provided:
Defined in header
<ios> | |
Type | Definition |
std::ios
|
std::basic_ios<char> |
std::wios
|
std::basic_ios<wchar_t> |
Contents |
[edit] Member types
Member type | Definition |
char_type
|
CharT
|
traits_type
|
Traits ; the program is ill-formed if Traits::char_type is not CharT .
|
int_type
|
Traits::int_type
|
pos_type
|
Traits::pos_type
|
off_type
|
Traits::off_type
|
[edit] Public member functions
constructs the object (public member function) | |
[virtual] |
destructs the object (virtual public member function) |
operator= |
the copy assignment operator is deleted (public member function) |
State functions | |
checks if no error has occurred i.e. I/O operations are available (public member function) | |
checks if end-of-file has been reached (public member function) | |
checks if an error has occurred (public member function) | |
checks if a non-recoverable error has occurred (public member function) | |
checks if an error has occurred (synonym of fail()) (public member function) | |
checks if no error has occurred (synonym of ! fail()) (public member function) | |
returns state flags (public member function) | |
sets state flags (public member function) | |
modifies state flags (public member function) | |
Formatting | |
copies formatting information (public member function) | |
manages the fill character (public member function) | |
Miscellaneous | |
manages exception mask (public member function) | |
sets the locale (public member function) | |
manages associated stream buffer (public member function) | |
manages tied stream (public member function) | |
narrows characters (public member function) | |
widens characters (public member function) |
[edit] Protected member functions
initializes a default-constructed std::basic_ios (protected member function) | |
(C++11) |
moves from another std::basic_ios except for rdbuf (protected member function) |
(C++11) |
swaps with another std::basic_ios except for rdbuf (protected member function) |
replaces the rdbuf without clearing its error state (protected member function) |
Inherited from std::ios_base
Member functions
Formatting | |
manages format flags (public member function of std::ios_base )
| |
sets specific format flag (public member function of std::ios_base )
| |
clears specific format flag (public member function of std::ios_base )
| |
manages decimal precision of floating point operations (public member function of std::ios_base )
| |
manages field width (public member function of std::ios_base )
| |
Locales | |
sets locale (public member function of std::ios_base )
| |
returns current locale (public member function of std::ios_base )
| |
Internal extensible array | |
[static] |
returns a program-wide unique integer that is safe to use as index to pword() and iword() (public static member function of std::ios_base )
|
resizes the private storage if necessary and access to the long element at the given index (public member function of std::ios_base )
| |
resizes the private storage if necessary and access to the void* element at the given index (public member function of std::ios_base )
| |
Miscellaneous | |
registers event callback function (public member function of std::ios_base )
| |
[static] |
sets whether C++ and C I/O libraries are interoperable (public static member function of std::ios_base )
|
Member classes | |
stream exception (public member class of std::ios_base )
| |
initializes standard stream objects (public member class of std::ios_base )
|
Member types and constants | |||||||||||||||||||||||||||||||||||||||
Type | Explanation | ||||||||||||||||||||||||||||||||||||||
stream open mode type
The following constants are also defined:
(typedef) | |||||||||||||||||||||||||||||||||||||||
formatting flags type
The following constants are also defined:
(typedef) | |||||||||||||||||||||||||||||||||||||||
state of the stream type
The following constants are also defined:
(typedef) | |||||||||||||||||||||||||||||||||||||||
seeking direction type
The following constants are also defined:
(typedef) | |||||||||||||||||||||||||||||||||||||||
specifies event type (enum) | |||||||||||||||||||||||||||||||||||||||
callback function type (typedef) |
[edit] Notes
Straightforward implementation of std::basic_ios
stores only the following members (which all depend on the template parameters and thus cannot be part of std::ios_base):
- the fill character (see
fill()
) - the tied stream pointer (see
tie()
) - the associated stream buffer pointer (see
rdbuf()
).
Actual implementations vary:
Microsoft Visual Studio stores just those three members.
LLVM libc++ stores 1 less member: it maintains the rdbuf
pointer as a void* member of ios_base
.
GNU libstdc++ stores 4 additional members: three cached facets and a flag to indicate that fill was initialized.