Constructs new file stream.
std::basic_filebuf
and constructs the base with the pointer to this default-constructed std::basic_filebuf
member.rdbuf()->open(filename, mode | std::ios_base::in)
(see std::basic_filebuf::open
for the details on the effects of that call). If the open()
call returns a null pointer, sets setstate(failbit)
. Overload (3) is only provided if std::filesystem::path::value_type
is not char
. (since C++17)
basic_ifstream(filename.c_str(), mode)
. (5) participates in overload resolution only if FsPath
is std::filesystem::path
. (since C++17) other
(which does not affect the rdbuf()
pointer), then move-constructs the std::basic_filebuf
member, then calls this->set_rdbuf()
to install the new basic_filebuf
as the rdbuf()
pointer in the base class.filename | - | the name of the file to be opened | ||||||||||||||||
mode | - | specifies stream open mode. Following constants and bit-wise OR between them may be used:
|
||||||||||||||||
other | - | another file stream to use as source |
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 3430 | C++17 | std::filesystem::path overload led to unwanted conversions | avoided by making it a template |
opens a file and associates it with the stream (public member function) |
|
opens a file and configures it as the associated character sequence (public member function of std::basic_filebuf<CharT,Traits> ) |
|
replaces the rdbuf without clearing its error state (protected member function) |
|
constructs the object (public member function of std::basic_istream<CharT,Traits> ) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_ifstream/basic_ifstream