ReactOS  0.4.13-dev-551-gf37fb1f
basic_istream< _CharT, _Traits > Class Template Reference

#include <_iosfwd.h>

Inheritance diagram for basic_istream< _CharT, _Traits >:
Collaboration diagram for basic_istream< _CharT, _Traits >:

Classes

class  sentry
 

Public Types

typedef _CharT char_type
 
typedef _Traits::int_type int_type
 
typedef _Traits::pos_type pos_type
 
typedef _Traits::off_type off_type
 
typedef _Traits traits_type
 
typedef basic_ios< _CharT, _Traits > _Basic_ios
 
typedef basic_ios< _CharT, _Traits > &(_STLP_CALL__ios_fn) (basic_ios< _CharT, _Traits > &)
 
typedef ios_base &(_STLP_CALL__ios_base_fn) (ios_base &)
 
typedef _Self &(_STLP_CALL__istream_fn) (_Self &)
 
- Public Types inherited from basic_ios< _CharT, _Traits >
typedef _CharT char_type
 
typedef _Traits::int_type int_type
 
typedef _Traits::pos_type pos_type
 
typedef _Traits::off_type off_type
 
typedef _Traits traits_type
 
- Public Types inherited from ios_base
enum  event { erase_event, imbue_event, copyfmt_event }
 
typedef int fmtflags
 
typedef int iostate
 
typedef int openmode
 
typedef int seekdir
 
typedef fmtflags fmt_flags
 
typedef void(* event_callback) (event, ios_base &, int __index)
 
typedef iostate io_state
 
typedef openmode open_mode
 
typedef seekdir seek_dir
 
typedef _STLP_STD::streamoff streamoff
 
typedef _STLP_STD::streampos streampos
 

Public Member Functions

 basic_istream (basic_streambuf< _CharT, _Traits > *__buf)
 
 ~basic_istream ()
 
_Selfoperator>> (__istream_fn __f)
 
_Selfoperator>> (__ios_fn __f)
 
_Selfoperator>> (__ios_base_fn __f)
 
_Selfoperator>> (short &__val)
 
_Selfoperator>> (int &__val)
 
_Selfoperator>> (unsigned short &__val)
 
_Selfoperator>> (unsigned int &__val)
 
_Selfoperator>> (long &__val)
 
_Selfoperator>> (unsigned long &__val)
 
_Selfoperator>> (float &__val)
 
_Selfoperator>> (double &__val)
 
_Selfoperator>> (long double &__val)
 
_Selfoperator>> (bool &__val)
 
_Selfoperator>> (void *&__val)
 
_Selfoperator>> (basic_streambuf< _CharT, _Traits > *)
 
streamsize gcount () const
 
int_type peek ()
 
int_type get ()
 
_Selfget (char_type &__c)
 
_Selfget (char_type *__s, streamsize __n, char_type __delim)
 
_Selfget (char_type *__s, streamsize __n)
 
_Selfget (basic_streambuf< _CharT, _Traits > &__buf, char_type __delim)
 
_Selfget (basic_streambuf< _CharT, _Traits > &__buf)
 
_Selfgetline (char_type *__s, streamsize __n, char_type delim)
 
_Selfgetline (char_type *__s, streamsize __n)
 
_Selfignore ()
 
_Selfignore (streamsize __n)
 
_Selfignore (streamsize __n, int_type __delim)
 
_Selfread (char_type *__s, streamsize __n)
 
streamsize readsome (char_type *__s, streamsize __n)
 
_Selfputback (char_type __c)
 
_Selfunget ()
 
int sync ()
 
pos_type tellg ()
 
_Selfseekg (pos_type __pos)
 
_Selfseekg (off_type, ios_base::seekdir)
 
void _M_formatted_get (_CharT &__c)
 
void _M_formatted_get (_CharT *__s)
 
void _M_skip_whitespace (bool __set_failbit)
 
- Public Member Functions inherited from basic_ios< _CharT, _Traits >
 basic_ios (basic_streambuf< _CharT, _Traits > *__streambuf)
 
virtual ~basic_ios ()
 
basic_ostream< _CharT, _Traits > * tie () const
 
basic_ostream< _CharT, _Traits > * tie (basic_ostream< char_type, traits_type > *__new_tied_ostream)
 
basic_streambuf< _CharT, _Traits > * rdbuf () const
 
basic_streambuf< _CharT, _Traits > * rdbuf (basic_streambuf< char_type, traits_type > *)
 
basic_ios< _CharT, _Traits > & copyfmt (const basic_ios< _CharT, _Traits > &__x)
 
char_type fill () const
 
char_type fill (char_type __fill)
 
void clear (iostate __state=goodbit)
 
void setstate (iostate __state)
 
iostate exceptions () const
 
void exceptions (iostate __mask)
 
locale imbue (const locale &)
 
char narrow (_CharT, char) const
 
_CharT widen (char) const
 
const ctype< char_type > * _M_ctype_facet () const
 
void _M_handle_exception (ios_base::iostate __flag)
 
- Public Member Functions inherited from ios_base
 _STLP_STATIC_CONSTANT (int, left=0x0001)
 
 _STLP_STATIC_CONSTANT (int, right=0x0002)
 
 _STLP_STATIC_CONSTANT (int, internal=0x0004)
 
 _STLP_STATIC_CONSTANT (int, dec=0x0008)
 
 _STLP_STATIC_CONSTANT (int, hex=0x0010)
 
 _STLP_STATIC_CONSTANT (int, oct=0x0020)
 
 _STLP_STATIC_CONSTANT (int, fixed=0x0040)
 
 _STLP_STATIC_CONSTANT (int, scientific=0x0080)
 
 _STLP_STATIC_CONSTANT (int, boolalpha=0x0100)
 
 _STLP_STATIC_CONSTANT (int, showbase=0x0200)
 
 _STLP_STATIC_CONSTANT (int, showpoint=0x0400)
 
 _STLP_STATIC_CONSTANT (int, showpos=0x0800)
 
 _STLP_STATIC_CONSTANT (int, skipws=0x1000)
 
 _STLP_STATIC_CONSTANT (int, unitbuf=0x2000)
 
 _STLP_STATIC_CONSTANT (int, uppercase=0x4000)
 
 _STLP_STATIC_CONSTANT (int, adjustfield=left|right|internal)
 
 _STLP_STATIC_CONSTANT (int, basefield=dec|hex|oct)
 
 _STLP_STATIC_CONSTANT (int, floatfield=scientific|fixed)
 
 _STLP_STATIC_CONSTANT (int, goodbit=0x00)
 
 _STLP_STATIC_CONSTANT (int, badbit=0x01)
 
 _STLP_STATIC_CONSTANT (int, eofbit=0x02)
 
 _STLP_STATIC_CONSTANT (int, failbit=0x04)
 
 _STLP_STATIC_CONSTANT (int, __default_mode=0x0)
 
 _STLP_STATIC_CONSTANT (int, app=0x01)
 
 _STLP_STATIC_CONSTANT (int, ate=0x02)
 
 _STLP_STATIC_CONSTANT (int, binary=0x04)
 
 _STLP_STATIC_CONSTANT (int, in=0x08)
 
 _STLP_STATIC_CONSTANT (int, out=0x10)
 
 _STLP_STATIC_CONSTANT (int, trunc=0x20)
 
 _STLP_STATIC_CONSTANT (int, beg=0x01)
 
 _STLP_STATIC_CONSTANT (int, cur=0x02)
 
 _STLP_STATIC_CONSTANT (int, end=0x04)
 
fmtflags flags () const
 
fmtflags flags (fmtflags __flags)
 
fmtflags setf (fmtflags __flag)
 
fmtflags setf (fmtflags __flag, fmtflags __mask)
 
void unsetf (fmtflags __mask)
 
streamsize precision () const
 
streamsize precision (streamsize __newprecision)
 
streamsize width () const
 
streamsize width (streamsize __newwidth)
 
locale imbue (const locale &)
 
locale getloc () const
 
longiword (int __index)
 
void *& pword (int __index)
 
virtual ~ios_base ()
 
void register_callback (event_callback __fn, int __index)
 
 operator void * () const
 
bool operator! () const
 
iostate rdstate () const
 
bool good () const
 
bool eof () const
 
bool fail () const
 
bool bad () const
 

Private Types

typedef basic_istream< _CharT, _Traits > _Self
 

Private Attributes

streamsize _M_gcount
 

Additional Inherited Members

- Static Public Member Functions inherited from basic_ios< _CharT, _Traits >
static bool _STLP_CALL _S_eof (int_type __c)
 
- Static Public Member Functions inherited from ios_base
static int _STLP_CALL xalloc ()
 
static bool _STLP_CALL sync_with_stdio (bool __sync=true)
 
- Protected Member Functions inherited from basic_ios< _CharT, _Traits >
 basic_ios ()
 
void init (basic_streambuf< _CharT, _Traits > *__streambuf)
 
- Protected Member Functions inherited from ios_base
void _M_copy_state (const ios_base &__x)
 
void _M_setstate_nothrow (iostate __state)
 
void _M_clear_nothrow (iostate __state)
 
iostate _M_get_exception_mask () const
 
void _M_set_exception_mask (iostate __mask)
 
void _M_check_exception_mask ()
 
void _M_invoke_callbacks (event)
 
void _STLP_FUNCTION_THROWS _M_throw_failure ()
 
 ios_base ()
 
- Static Protected Member Functions inherited from ios_base
static void _STLP_CALL _S_initialize ()
 
static void _STLP_CALL _S_uninitialize ()
 
- Protected Attributes inherited from basic_ios< _CharT, _Traits >
const ctype< char_type > * _M_cached_ctype
 
- Static Protected Attributes inherited from ios_base
static bool _S_is_synced = true
 

Detailed Description

template<class _CharT, class _Traits>
class basic_istream< _CharT, _Traits >

Definition at line 36 of file _iosfwd.h.

Member Typedef Documentation

◆ __ios_base_fn

template<class _CharT, class _Traits>
typedef ios_base&(_STLP_CALL * basic_istream< _CharT, _Traits >::__ios_base_fn) (ios_base &)

Definition at line 82 of file _istream.h.

◆ __ios_fn

template<class _CharT, class _Traits>
typedef basic_ios<_CharT, _Traits>&(_STLP_CALL * basic_istream< _CharT, _Traits >::__ios_fn) (basic_ios< _CharT, _Traits > &)

Definition at line 81 of file _istream.h.

◆ __istream_fn

template<class _CharT, class _Traits>
typedef _Self&(_STLP_CALL * basic_istream< _CharT, _Traits >::__istream_fn) (_Self &)

Definition at line 83 of file _istream.h.

◆ _Basic_ios

template<class _CharT, class _Traits>
typedef basic_ios<_CharT, _Traits> basic_istream< _CharT, _Traits >::_Basic_ios

Definition at line 79 of file _istream.h.

◆ _Self

template<class _CharT, class _Traits>
typedef basic_istream<_CharT, _Traits> basic_istream< _CharT, _Traits >::_Self
private

Definition at line 64 of file _istream.h.

◆ char_type

template<class _CharT, class _Traits>
typedef _CharT basic_istream< _CharT, _Traits >::char_type

Definition at line 74 of file _istream.h.

◆ int_type

template<class _CharT, class _Traits>
typedef _Traits::int_type basic_istream< _CharT, _Traits >::int_type

Definition at line 75 of file _istream.h.

◆ off_type

template<class _CharT, class _Traits>
typedef _Traits::off_type basic_istream< _CharT, _Traits >::off_type

Definition at line 77 of file _istream.h.

◆ pos_type

template<class _CharT, class _Traits>
typedef _Traits::pos_type basic_istream< _CharT, _Traits >::pos_type

Definition at line 76 of file _istream.h.

◆ traits_type

template<class _CharT, class _Traits>
typedef _Traits basic_istream< _CharT, _Traits >::traits_type

Definition at line 78 of file _istream.h.

Constructor & Destructor Documentation

◆ basic_istream()

template<class _CharT, class _Traits>
basic_istream< _CharT, _Traits >::basic_istream ( basic_streambuf< _CharT, _Traits > *  __buf)
inlineexplicit

Definition at line 86 of file _istream.h.

86  :
88  this->init(__buf);
89  }
Definition: _ios.h:48
void init(basic_streambuf< _CharT, _Traits > *__streambuf)
Definition: _ios.c:97
streamsize _M_gcount
Definition: _istream.h:173

◆ ~basic_istream()

template<class _CharT, class _Traits>
basic_istream< _CharT, _Traits >::~basic_istream ( )
inline

Definition at line 90 of file _istream.h.

90 {};

Member Function Documentation

◆ _M_formatted_get() [1/2]

template<class _CharT, class _Traits >
void basic_istream< _CharT, _Traits >::_M_formatted_get ( _CharT &  __c)

Definition at line 530 of file _istream.c.

530  {
531 // typename _Traits::int_type __tmp = _Traits::eof();
532 
533  sentry __sentry(*this); // Skip whitespace.
534 
535  if (__sentry) {
536  typename _Traits::int_type __tmp;// = _Traits::eof();
537 
538  _STLP_TRY {
539  __tmp = this->rdbuf()->sbumpc();
540  }
542  this->_M_handle_exception(ios_base::badbit);
543  return;
544  }
545 
546  if (!this->_S_eof(__tmp))
547  __c = _Traits::to_char_type(__tmp);
548  else
549  this->setstate(ios_base::eofbit | ios_base::failbit);
550  }
551 }
static bool _STLP_CALL _S_eof(int_type __c)
Definition: _ios.h:110
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void _M_handle_exception(ios_base::iostate __flag)
Definition: _ios.c:114
#define __c
Definition: schilyio.h:209
#define _STLP_CATCH_ALL
Definition: features.h:818
void setstate(iostate __state)
Definition: _ios.h:95
#define _STLP_TRY
Definition: features.h:817

Referenced by operator>>().

◆ _M_formatted_get() [2/2]

template<class _CharT, class _Traits >
void basic_istream< _CharT, _Traits >::_M_formatted_get ( _CharT *  __s)

Definition at line 858 of file _istream.c.

858  {
859  sentry __sentry(*this); // Skip whitespace.
860 
861  if (__sentry) {
862  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
863  streamsize __nmax = this->width() > 0
864  ? this->width() - 1
865  : ((numeric_limits<streamsize>::max)() / sizeof(_CharT)) - 1;
866 
867  streamsize __n = __buf->gptr() != __buf->egptr()
868  ? _STLP_PRIV __read_buffered(this, __buf, __nmax, __s,
871  false, true, false)
872  : _STLP_PRIV __read_unbuffered(this, __buf, __nmax, __s,
873  _STLP_PRIV _Is_wspace_null<_Traits>(this->_M_ctype_facet()),
874  false, true, false);
875  if (__n == 0)
876  this->setstate(ios_base::failbit);
877  }
878  this->width(0);
879 }
return __n
Definition: _algo.h:75
char_type * egptr() const
Definition: _streambuf.h:89
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
_STLP_MOVE_TO_PRIV_NAMESPACE streamsize _STLP_CALL __read_unbuffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, streamsize _Num, _CharT *__s, _Is_Delim __is_delim, bool __extract_delim, bool __append_null, bool __is_getline)
Definition: _istream.c:579
#define false
Definition: stdbool.h:38
#define _STLP_PRIV
Definition: _dm.h:70
char_type * gptr() const
Definition: _streambuf.h:88
void setstate(iostate __state)
Definition: _ios.h:95
streamsize width() const
Definition: _ios_base.h:134
const ctype< char_type > * _M_ctype_facet() const
Definition: _ios.h:121
ptrdiff_t streamsize
Definition: char_traits.h:81
#define true
Definition: stdbool.h:37
streamsize _STLP_CALL __read_buffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, streamsize _Num, _CharT *__s, _Is_Delim __is_delim, _Scan_Delim __scan_delim, bool __extract_delim, bool __append_null, bool __is_getline)
Definition: _istream.c:635

◆ _M_skip_whitespace()

template<class _CharT , class _Traits >
void basic_istream< _CharT, _Traits >::_M_skip_whitespace ( bool  __set_failbit)

Definition at line 1186 of file _istream.c.

1186  {
1187  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
1188  if (!__buf)
1189  this->setstate(ios_base::badbit);
1190  else if (__buf->gptr() != __buf->egptr())
1191  _M_ignore_buffered(this, __buf,
1194  false, __set_failbit);
1195  else
1196  _M_ignore_unbuffered(this, __buf,
1198  false, __set_failbit);
1199 }
char_type * egptr() const
Definition: _streambuf.h:89
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void _STLP_CALL _M_ignore_buffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, _Is_Delim __is_delim, _Scan_Delim __scan_delim, bool __extract_delim, bool __set_failbit)
Definition: _istream.c:928
void _STLP_CALL _M_ignore_unbuffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, _Is_Delim __is_delim, bool __extract_delim, bool __set_failbit)
Definition: _istream.c:888
#define _STLP_PRIV
Definition: _dm.h:70
char_type * gptr() const
Definition: _streambuf.h:88
void setstate(iostate __state)
Definition: _ios.h:95
const ctype< char_type > * _M_ctype_facet() const
Definition: _ios.h:121

Referenced by _M_init_skip(), and ws().

◆ gcount()

template<class _CharT, class _Traits>
streamsize basic_istream< _CharT, _Traits >::gcount ( ) const
inline

Definition at line 125 of file _istream.h.

125 { return _M_gcount; }
streamsize _M_gcount
Definition: _istream.h:173

Referenced by utf_converter::getBOM(), and utf_converter::getByte().

◆ get() [1/6]

template<class _CharT , class _Traits >
__BIS_int_type__ basic_istream< _CharT, _Traits >::get ( )

Definition at line 339 of file _istream.c.

339  {
340  typename _Traits::int_type __tmp = _Traits::eof();
341  sentry __sentry(*this, _No_Skip_WS());
342  this->_M_gcount = 0;
343 
344  if (__sentry) {
345  _STLP_TRY {
346  __tmp = this->rdbuf()->sbumpc();
347  }
349  this->_M_handle_exception(ios_base::badbit);
350  }
351 
352  if (!this->_S_eof(__tmp))
353  this->_M_gcount = 1;
354  }
355 
356  if (_M_gcount == 0)
357  this->setstate(ios_base::eofbit | ios_base::failbit);
358 
359  return __tmp;
360 }
static bool _STLP_CALL _S_eof(int_type __c)
Definition: _ios.h:110
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void _M_handle_exception(ios_base::iostate __flag)
Definition: _ios.c:114
#define _STLP_CATCH_ALL
Definition: features.h:818
void setstate(iostate __state)
Definition: _ios.h:95
_Check_return_ _CRTIMP int __cdecl __cdecl eof(_In_ int _FileHandle)
streamsize _M_gcount
Definition: _istream.h:173
#define _STLP_TRY
Definition: features.h:817

Referenced by basic_istream< char, char_traits< char > >::get(), getline_no_comments(), and CodecvtTest::imbue_while_reading().

◆ get() [2/6]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::get ( char_type __c)

Definition at line 364 of file _istream.c.

364  {
365  sentry __sentry(*this, _No_Skip_WS());
366  this->_M_gcount = 0;
367 
368  if (__sentry) {
369  typename _Traits::int_type __tmp = _Traits::eof();
370  _STLP_TRY {
371  __tmp = this->rdbuf()->sbumpc();
372  }
374  this->_M_handle_exception(ios_base::badbit);
375  }
376 
377  if (!this->_S_eof(__tmp)) {
378  this->_M_gcount = 1;
379  __c = _Traits::to_char_type(__tmp);
380  }
381  }
382 
383  if (this->_M_gcount == 0)
384  this->setstate(ios_base::eofbit | ios_base::failbit);
385 
386  return *this;
387 }
static bool _STLP_CALL _S_eof(int_type __c)
Definition: _ios.h:110
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void _M_handle_exception(ios_base::iostate __flag)
Definition: _ios.c:114
#define __c
Definition: schilyio.h:209
#define _STLP_CATCH_ALL
Definition: features.h:818
void setstate(iostate __state)
Definition: _ios.h:95
_Check_return_ _CRTIMP int __cdecl __cdecl eof(_In_ int _FileHandle)
streamsize _M_gcount
Definition: _istream.h:173
#define _STLP_TRY
Definition: features.h:817

◆ get() [3/6]

template<class _CharT , class _Traits >
_STLP_MOVE_TO_STD_NAMESPACE basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::get ( char_type __s,
streamsize  __n,
char_type  __delim 
)

Definition at line 721 of file _istream.c.

722  {
723  sentry __sentry(*this, _No_Skip_WS());
724  this->_M_gcount = 0;
725 
726  if (__sentry) {
727  if (__n > 0) {
728  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
729 
730  if (__buf->egptr() != __buf->gptr())
731  this->_M_gcount =
732  _STLP_PRIV __read_buffered(this, __buf, __n - 1, __s,
735  false, true, false);
736  else
737  this->_M_gcount =
738  _STLP_PRIV __read_unbuffered(this, __buf, __n - 1, __s,
740  false, true, false);
741  }
742  }
743 
744  if (this->_M_gcount == 0)
745  this->setstate(ios_base::failbit);
746 
747  return *this;
748 }
return __n
Definition: _algo.h:75
char_type * egptr() const
Definition: _streambuf.h:89
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
_STLP_MOVE_TO_PRIV_NAMESPACE streamsize _STLP_CALL __read_unbuffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, streamsize _Num, _CharT *__s, _Is_Delim __is_delim, bool __extract_delim, bool __append_null, bool __is_getline)
Definition: _istream.c:579
#define _STLP_PRIV
Definition: _dm.h:70
char_type * gptr() const
Definition: _streambuf.h:88
void setstate(iostate __state)
Definition: _ios.h:95
streamsize _M_gcount
Definition: _istream.h:173
streamsize _STLP_CALL __read_buffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, streamsize _Num, _CharT *__s, _Is_Delim __is_delim, _Scan_Delim __scan_delim, bool __extract_delim, bool __append_null, bool __is_getline)
Definition: _istream.c:635

◆ get() [4/6]

template<class _CharT, class _Traits>
_Self& basic_istream< _CharT, _Traits >::get ( char_type __s,
streamsize  __n 
)
inline

Definition at line 134 of file _istream.h.

135  { return get(__s, __n, this->widen('\n')); }
return __n
Definition: _algo.h:75
int_type get()
Definition: _istream.c:339
_CharT widen(char) const
Definition: _ios.h:150

◆ get() [5/6]

template<class _CharT, class _Traits>
_STLP_MOVE_TO_STD_NAMESPACE basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::get ( basic_streambuf< _CharT, _Traits > &  __buf,
char_type  __delim 
)

Definition at line 1351 of file _istream.c.

1351  {
1352  sentry __sentry(*this, _No_Skip_WS());
1353  this->_M_gcount = 0;
1354 
1355  if (__sentry) {
1356  basic_streambuf<_CharT, _Traits>* __src = this->rdbuf();
1357 
1358  if (__src)
1359  this->_M_gcount = __src->egptr() != __src->gptr()
1360  ? _STLP_PRIV __copy_buffered(this, __src, &__dest,
1363  false, false)
1364  : _STLP_PRIV __copy_unbuffered(this, __src, &__dest,
1365  _STLP_PRIV _Eq_char_bound<_Traits>(__delim),
1366  false, false);
1367  }
1368 
1369  if (this->_M_gcount == 0)
1370  this->setstate(ios_base::failbit);
1371 
1372  return *this;
1373 }
char_type * egptr() const
Definition: _streambuf.h:89
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
streamsize _STLP_CALL __copy_buffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__src, basic_streambuf< _CharT, _Traits > *__dest, _Scan_Delim __scan_delim, _Is_Delim __is_delim, bool __extract_delim, bool __rethrow)
Definition: _istream.c:1282
#define false
Definition: stdbool.h:38
#define _STLP_PRIV
Definition: _dm.h:70
char_type * gptr() const
Definition: _streambuf.h:88
void setstate(iostate __state)
Definition: _ios.h:95
_STLP_MOVE_TO_PRIV_NAMESPACE streamsize _STLP_CALL __copy_unbuffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__src, basic_streambuf< _CharT, _Traits > *__dest, _Is_Delim __is_delim, bool __extract_delim, bool __rethrow)
Definition: _istream.c:1213
streamsize _M_gcount
Definition: _istream.h:173

◆ get() [6/6]

template<class _CharT, class _Traits>
_Self& basic_istream< _CharT, _Traits >::get ( basic_streambuf< _CharT, _Traits > &  __buf)
inline

Definition at line 140 of file _istream.h.

141  { return get(__buf, this->widen('\n')); }
int_type get()
Definition: _istream.c:339
_CharT widen(char) const
Definition: _ios.h:150

◆ getline() [1/2]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::getline ( char_type __s,
streamsize  __n,
char_type  delim 
)

Definition at line 754 of file _istream.c.

755  {
756  sentry __sentry(*this, _No_Skip_WS());
757  this->_M_gcount = 0;
758 
759  if (__sentry) {
760  if (__n > 0) {
761  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
762  this->_M_gcount = __buf->egptr() != __buf->gptr()
763  ? _STLP_PRIV __read_buffered(this, __buf, __n - 1, __s,
766  true, true, true)
767  : _STLP_PRIV __read_unbuffered(this, __buf, __n - 1, __s,
768  _STLP_PRIV _Eq_char_bound<_Traits>(__delim),
769  true, true, true);
770  }
771  }
772 
773  if (this->_M_gcount == 0)
774  this->setstate(ios_base::failbit);
775 
776  return *this;
777 }
return __n
Definition: _algo.h:75
char_type * egptr() const
Definition: _streambuf.h:89
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
_STLP_MOVE_TO_PRIV_NAMESPACE streamsize _STLP_CALL __read_unbuffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, streamsize _Num, _CharT *__s, _Is_Delim __is_delim, bool __extract_delim, bool __append_null, bool __is_getline)
Definition: _istream.c:579
#define _STLP_PRIV
Definition: _dm.h:70
char_type * gptr() const
Definition: _streambuf.h:88
void setstate(iostate __state)
Definition: _ios.h:95
streamsize _M_gcount
Definition: _istream.h:173
#define true
Definition: stdbool.h:37
streamsize _STLP_CALL __read_buffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, streamsize _Num, _CharT *__s, _Is_Delim __is_delim, _Scan_Delim __scan_delim, bool __extract_delim, bool __append_null, bool __is_getline)
Definition: _istream.c:635

Referenced by basic_istream< char, char_traits< char > >::getline().

◆ getline() [2/2]

template<class _CharT, class _Traits>
_Self& basic_istream< _CharT, _Traits >::getline ( char_type __s,
streamsize  __n 
)
inline

Definition at line 145 of file _istream.h.

146  { return getline(__s, __n, this->widen('\n')); }
return __n
Definition: _algo.h:75
_CharT widen(char) const
Definition: _ios.h:150
_Self & getline(char_type *__s, streamsize __n, char_type delim)
Definition: _istream.c:754

◆ ignore() [1/3]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::ignore ( )

Definition at line 395 of file _istream.c.

395  {
396  sentry __sentry(*this, _No_Skip_WS());
397  this->_M_gcount = 0;
398 
399  if (__sentry) {
400  int_type __c;
401  _STLP_TRY {
402  __c = this->rdbuf()->sbumpc();
403  }
405  this->_M_handle_exception(ios_base::badbit);
406  return *this;
407  }
408 
409  if (!this->_S_eof(__c))
410  this->_M_gcount = 1;
411  else
412  this->setstate(ios_base::eofbit);
413  }
414 
415  return *this;
416 }
static bool _STLP_CALL _S_eof(int_type __c)
Definition: _ios.h:110
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void _M_handle_exception(ios_base::iostate __flag)
Definition: _ios.c:114
#define __c
Definition: schilyio.h:209
#define _STLP_CATCH_ALL
Definition: features.h:818
void setstate(iostate __state)
Definition: _ios.h:95
streamsize _M_gcount
Definition: _istream.h:173
#define _STLP_TRY
Definition: features.h:817
_Traits::int_type int_type
Definition: _istream.h:75

Referenced by CodecvtTest::imbue_while_reading().

◆ ignore() [2/3]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::ignore ( streamsize  __n)

Definition at line 1102 of file _istream.c.

1102  {
1103  sentry __sentry(*this, _No_Skip_WS());
1104  this->_M_gcount = 0;
1105 
1106  if (__sentry) {
1107  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
1108  typedef _STLP_PRIV _Constant_unary_fun<bool, int_type> _Const_bool;
1110  const streamsize __maxss = (numeric_limits<streamsize>::max)();
1111 
1112  if (__n == (numeric_limits<int>::max)()) {
1113  if (__buf->gptr() != __buf->egptr())
1114  _M_gcount = _M_ignore_buffered(this, __buf,
1115  __maxss, _Const_streamsize(__maxss),
1116  _Const_bool(false),
1118  false, false);
1119  else
1120  _M_gcount = _M_ignore_unbuffered(this, __buf,
1121  __maxss, _Const_streamsize(__maxss),
1122  _Const_bool(false), false, false);
1123  }
1124  else {
1125  if (__buf->gptr() != __buf->egptr())
1126  _M_gcount = _M_ignore_buffered(this, __buf,
1128  _Const_bool(false),
1130  false, false);
1131  else
1133  _Const_bool(false), false, false);
1134  }
1135  }
1136 
1137  return *this;
1138 }
return __n
Definition: _algo.h:75
char_type * egptr() const
Definition: _streambuf.h:89
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void _STLP_CALL _M_ignore_buffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, _Is_Delim __is_delim, _Scan_Delim __scan_delim, bool __extract_delim, bool __set_failbit)
Definition: _istream.c:928
void _STLP_CALL _M_ignore_unbuffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, _Is_Delim __is_delim, bool __extract_delim, bool __set_failbit)
Definition: _istream.c:888
#define _STLP_PRIV
Definition: _dm.h:70
char_type * gptr() const
Definition: _streambuf.h:88
streamsize _M_gcount
Definition: _istream.h:173
ptrdiff_t streamsize
Definition: char_traits.h:81

◆ ignore() [3/3]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::ignore ( streamsize  __n,
int_type  __delim 
)

Definition at line 1142 of file _istream.c.

1142  {
1143  sentry __sentry(*this, _No_Skip_WS());
1144  this->_M_gcount = 0;
1145 
1146  if (__sentry) {
1147  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
1148  typedef _STLP_PRIV _Constant_unary_fun<bool, int_type> _Const_bool;
1150  _Const_streamsize;
1151  const streamsize __maxss = (numeric_limits<streamsize>::max)();
1152 
1153  if (__n == (numeric_limits<int>::max)()) {
1154  if (__buf->gptr() != __buf->egptr())
1155  _M_gcount = _M_ignore_buffered(this, __buf,
1156  __maxss, _Const_streamsize(__maxss),
1159  true, false);
1160  else
1161  _M_gcount = _M_ignore_unbuffered(this, __buf,
1162  __maxss, _Const_streamsize(__maxss),
1164  true, false);
1165  }
1166  else {
1167  if (__buf->gptr() != __buf->egptr())
1168  _M_gcount = _M_ignore_buffered(this, __buf,
1172  true, false);
1173  else
1176  true, false);
1177  }
1178  }
1179 
1180  return *this;
1181 }
return __n
Definition: _algo.h:75
char_type * egptr() const
Definition: _streambuf.h:89
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void _STLP_CALL _M_ignore_buffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, _Is_Delim __is_delim, _Scan_Delim __scan_delim, bool __extract_delim, bool __set_failbit)
Definition: _istream.c:928
void _STLP_CALL _M_ignore_unbuffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, _Is_Delim __is_delim, bool __extract_delim, bool __set_failbit)
Definition: _istream.c:888
#define _STLP_PRIV
Definition: _dm.h:70
char_type * gptr() const
Definition: _streambuf.h:88
streamsize _M_gcount
Definition: _istream.h:173
ptrdiff_t streamsize
Definition: char_traits.h:81

◆ operator>>() [1/15]

template<class _CharT, class _Traits>
_Self& basic_istream< _CharT, _Traits >::operator>> ( __istream_fn  __f)
inline

Definition at line 96 of file _istream.h.

96 { return __f(*this); }

◆ operator>>() [2/15]

template<class _CharT, class _Traits>
_Self& basic_istream< _CharT, _Traits >::operator>> ( __ios_fn  __f)
inline

Definition at line 97 of file _istream.h.

97 { __f(*this); return *this; }

◆ operator>>() [3/15]

template<class _CharT, class _Traits>
_Self& basic_istream< _CharT, _Traits >::operator>> ( __ios_base_fn  __f)
inline

Definition at line 98 of file _istream.h.

98 { __f(*this); return *this; }

◆ operator>>() [4/15]

template<class _CharT , class _Traits >
_STLP_MOVE_TO_STD_NAMESPACE basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( short __val)

Definition at line 209 of file _istream.c.

209  {
210  long __lval;
211  _STLP_PRIV __get_num(*this, __lval);
212  if ( this->fail() ) {
213  return *this;
214  }
215  short __tmp = __STATIC_CAST(short, __lval);
216  unsigned short __uval = __STATIC_CAST(unsigned short, __lval);
217  // check if we lose digits
218  // if ((__val != __lval) && ((unsigned short)__val != __lval))
219  if ((__tmp != __lval) && ((long)__uval != __lval))
220  this->setstate(ios_base::failbit);
221  else
222  __val = __tmp;
223  return *this;
224 }
#define __STATIC_CAST(__x, __y)
Definition: features.h:585
bool fail() const
Definition: _ios_base.h:174
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70
void setstate(iostate __state)
Definition: _ios.h:95

◆ operator>>() [5/15]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( int __val)

Definition at line 227 of file _istream.c.

227  {
228  long __lval;
229  _STLP_PRIV __get_num(*this, __lval);
230  if ( this->fail() ) {
231  return *this;
232  }
233  int __tmp = __lval;
234  unsigned int __uval = __lval;
235  // check if we lose digits
236  // if ((__val != __lval) && ((unsigned int)__val != __lval))
237  if ((__tmp != __lval) && ((long)__uval != __lval))
238  this->setstate(ios_base::failbit);
239  else
240  __val = __tmp;
241  return *this;
242 }
bool fail() const
Definition: _ios_base.h:174
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70
void setstate(iostate __state)
Definition: _ios.h:95

◆ operator>>() [6/15]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( unsigned short __val)

Definition at line 245 of file _istream.c.

245  {
246  _STLP_PRIV __get_num(*this, __val);
247  return *this;
248 }
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70

◆ operator>>() [7/15]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( unsigned int __val)

Definition at line 251 of file _istream.c.

251  {
252  _STLP_PRIV __get_num(*this, __val);
253  return *this;
254 }
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70

◆ operator>>() [8/15]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( long __val)

Definition at line 257 of file _istream.c.

257  {
258  _STLP_PRIV __get_num(*this, __val);
259  return *this;
260 }
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70

◆ operator>>() [9/15]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( unsigned long __val)

Definition at line 263 of file _istream.c.

263  {
264  _STLP_PRIV __get_num(*this, __val);
265  return *this;
266 }
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70

◆ operator>>() [10/15]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( float &  __val)

Definition at line 282 of file _istream.c.

282  {
283  _STLP_PRIV __get_num(*this, __val);
284  return *this;
285 }
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70

◆ operator>>() [11/15]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( double __val)

Definition at line 287 of file _istream.c.

287  {
288  _STLP_PRIV __get_num(*this, __val);
289  return *this;
290 }
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70

◆ operator>>() [12/15]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( long double __val)

Definition at line 293 of file _istream.c.

293  {
294  _STLP_PRIV __get_num(*this, __val);
295  return *this;
296 }
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70

◆ operator>>() [13/15]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( bool __val)

Definition at line 300 of file _istream.c.

300  {
301  _STLP_PRIV __get_num(*this, __val);
302  return *this;
303 }
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70

◆ operator>>() [14/15]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( void *&  __val)

Definition at line 307 of file _istream.c.

307  {
308  _STLP_PRIV __get_num(*this, __val);
309  return *this;
310 }
ios_base::iostate _STLP_CALL __get_num(basic_istream< _CharT, _Traits > &__that, _Number &__val)
Definition: _istream.c:186
_STLP_INLINE_LOOP _InputIter const _Tp & __val
Definition: _algobase.h:656
#define _STLP_PRIV
Definition: _dm.h:70

◆ operator>>() [15/15]

template<class _CharT, class _Traits>
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::operator>> ( basic_streambuf< _CharT, _Traits > *  __dest)

Definition at line 1379 of file _istream.c.

1379  {
1380  streamsize __n = 0;
1381  typedef typename basic_istream<_CharT, _Traits>::sentry _Sentry;
1382  _Sentry __sentry(*this);
1383  if (__sentry) {
1384  basic_streambuf<_CharT, _Traits>* __src = this->rdbuf();
1385  if (__src && __dest)
1386  __n = __src->egptr() != __src->gptr()
1387  ? _STLP_PRIV __copy_buffered(this, __src, __dest,
1390  false, true)
1391  : _STLP_PRIV __copy_unbuffered(this, __src, __dest,
1393  false, true);
1394  }
1395 
1396  if (__n == 0)
1397  this->setstate(ios_base::failbit);
1398 
1399  return *this;
1400 }
return __n
Definition: _algo.h:75
char_type * egptr() const
Definition: _streambuf.h:89
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
streamsize _STLP_CALL __copy_buffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__src, basic_streambuf< _CharT, _Traits > *__dest, _Scan_Delim __scan_delim, _Is_Delim __is_delim, bool __extract_delim, bool __rethrow)
Definition: _istream.c:1282
typedef bool(CARDLIBPROC *pCanDragProc)(CardRegion &stackobj
#define false
Definition: stdbool.h:38
#define _STLP_PRIV
Definition: _dm.h:70
char_type * gptr() const
Definition: _streambuf.h:88
void setstate(iostate __state)
Definition: _ios.h:95
_STLP_MOVE_TO_PRIV_NAMESPACE streamsize _STLP_CALL __copy_unbuffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__src, basic_streambuf< _CharT, _Traits > *__dest, _Is_Delim __is_delim, bool __extract_delim, bool __rethrow)
Definition: _istream.c:1213
ptrdiff_t streamsize
Definition: char_traits.h:81
#define true
Definition: stdbool.h:37
_Traits::int_type int_type
Definition: _istream.h:75

◆ peek()

template<class _CharT , class _Traits >
__BIS_int_type__ basic_istream< _CharT, _Traits >::peek ( )

Definition at line 316 of file _istream.c.

316  {
317  typename _Traits::int_type __tmp = _Traits::eof();
318 
319  this->_M_gcount = 0;
320  sentry __sentry(*this, _No_Skip_WS());
321 
322  if (__sentry) {
323  _STLP_TRY {
324  __tmp = this->rdbuf()->sgetc();
325  }
327  this->_M_handle_exception(ios_base::badbit);
328  }
329  if (this->_S_eof(__tmp))
330  this->setstate(ios_base::eofbit);
331  }
332 
333  return __tmp;
334 }
static bool _STLP_CALL _S_eof(int_type __c)
Definition: _ios.h:110
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void _M_handle_exception(ios_base::iostate __flag)
Definition: _ios.c:114
#define _STLP_CATCH_ALL
Definition: features.h:818
void setstate(iostate __state)
Definition: _ios.h:95
_Check_return_ _CRTIMP int __cdecl __cdecl eof(_In_ int _FileHandle)
streamsize _M_gcount
Definition: _istream.h:173
#define _STLP_TRY
Definition: features.h:817

◆ putback()

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::putback ( char_type  __c)

Definition at line 422 of file _istream.c.

422  {
423  this->_M_gcount = 0;
424  sentry __sentry(*this, _No_Skip_WS());
425 
426  if (__sentry) {
427  typename _Traits::int_type __tmp = _Traits::eof();
428  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
429 // if (!__buf || this->_S_eof(__buf->sputbackc(__c)))
430  if (__buf) {
431  _STLP_TRY {
432  __tmp = __buf->sputbackc(__c);
433  }
435  this->_M_handle_exception(ios_base::badbit);
436  }
437  }
438  if (this->_S_eof(__tmp))
439  this->setstate(ios_base::badbit);
440  }
441  else
442  this->setstate(ios_base::failbit);
443 
444  return *this;
445 }
static bool _STLP_CALL _S_eof(int_type __c)
Definition: _ios.h:110
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void _M_handle_exception(ios_base::iostate __flag)
Definition: _ios.c:114
#define __c
Definition: schilyio.h:209
#define _STLP_CATCH_ALL
Definition: features.h:818
void setstate(iostate __state)
Definition: _ios.h:95
_Check_return_ _CRTIMP int __cdecl __cdecl eof(_In_ int _FileHandle)
streamsize _M_gcount
Definition: _istream.h:173
#define _STLP_TRY
Definition: features.h:817
int_type sputbackc(char_type __c)
Definition: _streambuf.h:241

Referenced by operator>>().

◆ read()

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::read ( char_type __s,
streamsize  __n 
)

Definition at line 783 of file _istream.c.

783  {
784  sentry __sentry(*this, _No_Skip_WS());
785  this->_M_gcount = 0;
786 
787  if (__sentry && !this->eof()) {
788  basic_streambuf<_CharT, _Traits>*__buf = this->rdbuf();
789  if (__buf->gptr() != __buf->egptr())
790  _M_gcount
791  = _STLP_PRIV __read_buffered(this, __buf, __n, __s,
794  false, false, false);
795  else
796  _M_gcount
797  = _STLP_PRIV __read_unbuffered(this, __buf, __n, __s,
799  false, false, false);
800  }
801  else
802  this->setstate(ios_base::failbit);
803 
804  if (this->eof())
805  this->setstate(ios_base::eofbit | ios_base::failbit);
806 
807  return *this;
808 }
return __n
Definition: _algo.h:75
char_type * egptr() const
Definition: _streambuf.h:89
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
_STLP_MOVE_TO_PRIV_NAMESPACE streamsize _STLP_CALL __read_unbuffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, streamsize _Num, _CharT *__s, _Is_Delim __is_delim, bool __extract_delim, bool __append_null, bool __is_getline)
Definition: _istream.c:579
bool eof() const
Definition: _ios_base.h:173
#define _STLP_PRIV
Definition: _dm.h:70
char_type * gptr() const
Definition: _streambuf.h:88
void setstate(iostate __state)
Definition: _ios.h:95
streamsize _M_gcount
Definition: _istream.h:173
streamsize _STLP_CALL __read_buffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, streamsize _Num, _CharT *__s, _Is_Delim __is_delim, _Scan_Delim __scan_delim, bool __extract_delim, bool __append_null, bool __is_getline)
Definition: _istream.c:635

Referenced by utf_converter::getBOM(), and utf_converter::getByte().

◆ readsome()

template<class _CharT , class _Traits >
streamsize basic_istream< _CharT, _Traits >::readsome ( char_type __s,
streamsize  __n 
)

Definition at line 815 of file _istream.c.

815  {
816  sentry __sentry(*this, _No_Skip_WS());
817  this->_M_gcount = 0;
818 
819  if (__sentry && !this->eof() && __nmax >= 0) {
820 
821  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
822  streamsize __avail = __buf->in_avail();
823 
824  // fbp : isn't full-blown setstate required here ?
825  if (__avail == -1)
826  this->_M_setstate_nothrow(ios_base::eofbit);
827 
828  else if (__avail != 0) {
829 
830  if (__buf->gptr() != __buf->egptr())
831  _M_gcount
832  = _STLP_PRIV __read_buffered(this, __buf, (min) (__avail, __nmax), __s,
835  false, false, false);
836  else
837  _M_gcount
838  = _STLP_PRIV __read_unbuffered(this, __buf, (min) (__avail, __nmax), __s,
840  false, false, false);
841  }
842  }
843  else {
844  // fbp : changed so that failbit is set only there, to pass Dietmar's test
845  if (this->eof())
846  this->setstate(ios_base::eofbit | ios_base::failbit);
847  else
848  this->setstate(ios_base::failbit);
849  }
850 
851  // if (this->eof())
852  // this->setstate(ios_base::eofbit | ios_base::failbit);
853 
854  return _M_gcount;
855 }
char_type * egptr() const
Definition: _streambuf.h:89
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
_STLP_MOVE_TO_PRIV_NAMESPACE streamsize _STLP_CALL __read_unbuffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, streamsize _Num, _CharT *__s, _Is_Delim __is_delim, bool __extract_delim, bool __append_null, bool __is_getline)
Definition: _istream.c:579
streamsize in_avail()
Definition: _streambuf.h:215
bool eof() const
Definition: _ios_base.h:173
#define _STLP_PRIV
Definition: _dm.h:70
char_type * gptr() const
Definition: _streambuf.h:88
void setstate(iostate __state)
Definition: _ios.h:95
streamsize _M_gcount
Definition: _istream.h:173
#define min(a, b)
Definition: monoChain.cc:55
ptrdiff_t streamsize
Definition: char_traits.h:81
void _M_setstate_nothrow(iostate __state)
Definition: _ios_base.h:185
streamsize _STLP_CALL __read_buffered(basic_istream< _CharT, _Traits > *__that, basic_streambuf< _CharT, _Traits > *__buf, streamsize _Num, _CharT *__s, _Is_Delim __is_delim, _Scan_Delim __scan_delim, bool __extract_delim, bool __append_null, bool __is_getline)
Definition: _istream.c:635

◆ seekg() [1/2]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::seekg ( pos_type  __pos)

Definition at line 504 of file _istream.c.

504  {
505  sentry __sentry(*this, _No_Skip_WS());
506 
507  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
508  if (!this->fail() && __buf) {
509  if (__buf->pubseekpos(__pos, ios_base::in) == pos_type(-1)) {
510  this->setstate(ios_base::failbit);
511  }
512  }
513  return *this;
514 }
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
bool fail() const
Definition: _ios_base.h:174
pos_type pubseekpos(pos_type __sp, ios_base::openmode __mod=ios_base::in|ios_base::out)
Definition: _streambuf.h:149
void setstate(iostate __state)
Definition: _ios.h:95
GLuint in
Definition: glext.h:9616
_Traits::pos_type pos_type
Definition: _istream.h:76

Referenced by CodecvtTest::imbue_while_reading().

◆ seekg() [2/2]

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::seekg ( off_type  __off,
ios_base::seekdir  __dir 
)

Definition at line 518 of file _istream.c.

518  {
519  sentry __sentry(*this, _No_Skip_WS());
520 
521  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
522  if (!this->fail() && __buf)
523  __buf->pubseekoff(__off, __dir, ios_base::in);
524  return *this;
525 }
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
bool fail() const
Definition: _ios_base.h:174
pos_type pubseekoff(off_type __offset, ios_base::seekdir __way, ios_base::openmode __mod=ios_base::in|ios_base::out)
Definition: _streambuf.h:145
GLuint in
Definition: glext.h:9616

◆ sync()

template<class _CharT , class _Traits >
int basic_istream< _CharT, _Traits >::sync ( )

Definition at line 476 of file _istream.c.

476  {
477  sentry __sentry(*this, _No_Skip_WS());
478 
479  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
480  if (__buf) {
481  if (__buf->pubsync() == -1) {
482  this->setstate(ios_base::badbit);
483  return -1;
484  }
485  else
486  return 0;
487  }
488  else
489  return -1;
490 }
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void setstate(iostate __state)
Definition: _ios.h:95

◆ tellg()

template<class _CharT , class _Traits >
__BIS_pos_type__ basic_istream< _CharT, _Traits >::tellg ( )

Definition at line 494 of file _istream.c.

494  {
495  sentry __sentry(*this, _No_Skip_WS());
496 
497  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
498  return (__buf && !this->fail()) ? __buf->pubseekoff(0, ios_base::cur, ios_base::in)
499  : pos_type(-1);
500 }
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
bool fail() const
Definition: _ios_base.h:174
pos_type pubseekoff(off_type __offset, ios_base::seekdir __way, ios_base::openmode __mod=ios_base::in|ios_base::out)
Definition: _streambuf.h:145
GLuint in
Definition: glext.h:9616
_Traits::pos_type pos_type
Definition: _istream.h:76

◆ unget()

template<class _CharT , class _Traits >
basic_istream< _CharT, _Traits > & basic_istream< _CharT, _Traits >::unget ( )

Definition at line 448 of file _istream.c.

448  {
449  this->_M_gcount = 0;
450 
451  sentry __sentry(*this, _No_Skip_WS());
452 
453  if (__sentry) {
454  basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf();
455  // if (!__buf || _Traits::eq_int_type(__buf->sungetc(), _Traits::eof()))
456  if (__buf) {
457  _STLP_TRY {
458  if (this->_S_eof(__buf->sungetc()))
459  this->setstate(ios_base::badbit);
460  }
462  this->_M_handle_exception(ios_base::badbit);
463  }
464  } else
465  this->setstate(ios_base::badbit);
466  }
467  else
468  this->setstate(ios_base::failbit);
469 
470  return *this;
471 }
static bool _STLP_CALL _S_eof(int_type __c)
Definition: _ios.h:110
basic_streambuf< _CharT, _Traits > * rdbuf() const
Definition: _ios.h:72
void _M_handle_exception(ios_base::iostate __flag)
Definition: _ios.c:114
#define _STLP_CATCH_ALL
Definition: features.h:818
int_type sungetc()
Definition: _streambuf.h:247
void setstate(iostate __state)
Definition: _ios.h:95
streamsize _M_gcount
Definition: _istream.h:173
#define _STLP_TRY
Definition: features.h:817

Member Data Documentation

◆ _M_gcount

template<class _CharT, class _Traits>
streamsize basic_istream< _CharT, _Traits >::_M_gcount
private

Definition at line 173 of file _istream.h.

Referenced by basic_istream< char, char_traits< char > >::gcount().


The documentation for this class was generated from the following files: