31
Input/output library
[input.output]
31.10
File-based streams
[file.streams]
31.10.4
Class template
basic_
ifstream
[ifstream]
31.10.4.1
General
[ifstream.general]
🔗
namespace
std
{
template
<
class
charT,
class
traits
=
char_traits
<
charT
>
>
class
basic_ifstream
:
public
basic_istream
<
charT, traits
>
{
public
:
using
char_type
=
charT;
using
int_type
=
typename
traits
::
int_type;
using
pos_type
=
typename
traits
::
pos_type;
using
off_type
=
typename
traits
::
off_type;
using
traits_type
=
traits;
using
native_handle_type
=
typename
basic_filebuf
<
charT, traits
>
::
native_handle_type;
//
[ifstream.
cons]
, constructors
basic_ifstream
(
)
;
explicit
basic_ifstream
(
const
char
*
s, ios_base
::
openmode mode
=
ios_base
::
in
)
;
explicit
basic_ifstream
(
const
filesystem
::
path
::
value_type
*
s, ios_base
::
openmode mode
=
ios_base
::
in
)
;
// wide systems only; see
[fstream.
syn]
explicit
basic_ifstream
(
const
string
&
s, ios_base
::
openmode mode
=
ios_base
::
in
)
;
template
<
class
T
>
explicit
basic_ifstream
(
const
T
&
s, ios_base
::
openmode mode
=
ios_base
::
in
)
; basic_ifstream
(
const
basic_ifstream
&
)
=
delete
; basic_ifstream
(
basic_ifstream
&
&
rhs
)
; basic_ifstream
&
operator
=
(
const
basic_ifstream
&
)
=
delete
; basic_ifstream
&
operator
=
(
basic_ifstream
&
&
rhs
)
;
//
[ifstream.
swap]
, swap
void
swap
(
basic_ifstream
&
rhs
)
;
//
[ifstream.
members]
, members
basic_filebuf
<
charT, traits
>
*
rdbuf
(
)
const
; native_handle_type native_handle
(
)
const
noexcept
;
bool
is_open
(
)
const
;
void
open
(
const
char
*
s, ios_base
::
openmode mode
=
ios_base
::
in
)
;
void
open
(
const
filesystem
::
path
::
value_type
*
s, ios_base
::
openmode mode
=
ios_base
::
in
)
;
// wide systems only; see
[fstream.
syn]
void
open
(
const
string
&
s, ios_base
::
openmode mode
=
ios_base
::
in
)
;
void
open
(
const
filesystem
::
path
&
s, ios_base
::
openmode mode
=
ios_base
::
in
)
;
void
close
(
)
;
private
:
basic_filebuf
<
charT, traits
>
sb
;
//
exposition only
}
;
}
1
#
The class
basic_
ifstream
<
charT, traits
>
supports reading from named files
.
It uses a
basic_
filebuf
<
charT, traits
>
object to control the associated sequence
.
For the sake of exposition, the maintained data is presented here as:
(1.1)
sb
, the
filebuf
object
.