std::basic_ifstream<CharT,Traits>::basic_ifstream

Constructs new file stream.

# Declarations

basic_ifstream();
explicit basic_ifstream( const char* filename,
std::ios_base::openmode mode
= std::ios_base::in );
explicit basic_ifstream( const std::filesystem::path::value_type* filename,
std::ios_base::openmode mode
= std::ios_base::in );

(since C++17)

explicit basic_ifstream( const std::string& filename,
std::ios_base::openmode mode
= std::ios_base::in );

(since C++11)

template< class FsPath >
explicit basic_ifstream( const FsPath& filename,
std::ios_base::openmode mode
= std::ios_base::in );

(since C++17)

basic_ifstream( basic_ifstream&& other );

(since C++11)

basic_ifstream( const basic_ifstream& rhs ) = delete;

(since C++11)

# Parameters

# Example

#include <fstream>
#include <string>
#include <utility>
 
int main()
{
    std::ifstream f0;
    std::ifstream f1("test.bin", std::ios::binary);
    std::string name = "example.txt";
    std::ifstream f2(name);
    std::ifstream f3(std::move(f1));
}

# Defect reports

DRApplied toBehavior as publishedCorrect behavior
LWG 3430C++17std::filesystem::path overload led to unwanted conversionsavoided by making it a template

# See also