33 #ifndef _GLIBCXX_ISTREAM
34 #define _GLIBCXX_ISTREAM 1
36 #pragma GCC system_header
41 namespace std _GLIBCXX_VISIBILITY(default)
43 _GLIBCXX_BEGIN_NAMESPACE_VERSION
57 template<
typename _CharT,
typename _Traits>
58 class basic_istream :
virtual public basic_ios<_CharT, _Traits>
62 typedef _CharT char_type;
63 typedef typename _Traits::int_type int_type;
64 typedef typename _Traits::pos_type pos_type;
65 typedef typename _Traits::off_type off_type;
66 typedef _Traits traits_type;
69 typedef basic_streambuf<_CharT, _Traits> __streambuf_type;
70 typedef basic_ios<_CharT, _Traits> __ios_type;
71 typedef basic_istream<_CharT, _Traits> __istream_type;
72 typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> >
74 typedef ctype<_CharT> __ctype_type;
121 {
return __pf(*
this); }
169 {
return _M_extract(__n); }
176 {
return _M_extract(__n); }
183 {
return _M_extract(__n); }
187 {
return _M_extract(__n); }
191 {
return _M_extract(__n); }
193 #ifdef _GLIBCXX_USE_LONG_LONG
196 {
return _M_extract(__n); }
200 {
return _M_extract(__n); }
215 {
return _M_extract(__f); }
219 {
return _M_extract(__f); }
223 {
return _M_extract(__f); }
236 {
return _M_extract(__p); }
343 get(char_type* __s,
streamsize __n, char_type __delim);
355 {
return this->
get(__s, __n, this->
widen(
'\n')); }
377 get(__streambuf_type& __sb, char_type __delim);
388 {
return this->
get(__sb, this->
widen(
'\n')); }
602 seekg(off_type, ios_base::seekdir);
610 template<
typename _ValueT>
612 _M_extract(_ValueT& __v);
631 #ifdef _GLIBCXX_USE_WCHAR_T
633 basic_istream<wchar_t>&
638 basic_istream<wchar_t>&
643 basic_istream<wchar_t>&
656 template<
typename _CharT,
typename _Traits>
668 typedef typename _Traits::int_type __int_type;
702 #if __cplusplus >= 201103L
705 operator bool()
const
721 template<
typename _CharT,
typename _Traits>
725 template<
class _Traits>
728 {
return (__in >> reinterpret_cast<char&>(__c)); }
730 template<
class _Traits>
731 inline basic_istream<char, _Traits>&
733 {
return (__in >> reinterpret_cast<char&>(__c)); }
763 template<
typename _CharT,
typename _Traits>
764 basic_istream<_CharT, _Traits>&
765 operator>>(basic_istream<_CharT, _Traits>& __in, _CharT* __s);
770 operator>>(basic_istream<char>& __in,
char* __s);
772 template<
class _Traits>
773 inline basic_istream<char, _Traits>&
775 {
return (__in >> reinterpret_cast<char*>(__s)); }
777 template<
class _Traits>
778 inline basic_istream<char, _Traits>&
780 {
return (__in >> reinterpret_cast<char*>(__s)); }
794 template<
typename _CharT,
typename _Traits>
796 :
public basic_istream<_CharT, _Traits>,
797 public basic_ostream<_CharT, _Traits>
803 typedef _CharT char_type;
804 typedef typename _Traits::int_type int_type;
805 typedef typename _Traits::pos_type pos_type;
806 typedef typename _Traits::off_type off_type;
807 typedef _Traits traits_type;
810 typedef basic_istream<_CharT, _Traits> __istream_type;
811 typedef basic_ostream<_CharT, _Traits> __ostream_type;
831 : __istream_type(), __ostream_type() { }
854 template<
typename _CharT,
typename _Traits>
855 basic_istream<_CharT, _Traits>&
856 ws(basic_istream<_CharT, _Traits>& __is);
858 #if __cplusplus >= 201103L
870 template<
typename _CharT,
typename _Traits,
typename _Tp>
871 inline basic_istream<_CharT, _Traits>&
873 {
return (__is >> __x); }
876 _GLIBCXX_END_NAMESPACE_VERSION
__istream_type & unget()
Unextracting the previous character.
basic_istream(__streambuf_type *__sb)
Base constructor.
__istream_type & operator>>(__ios_type &(*__pf)(__ios_type &))
Interface for manipulators.
_Traits traits_type
Easy access to dependent types.
Primary class template ctype facet.This template class defines classification and conversion function...
Performs setup work for input streams.
streamsize gcount() const
Character counting.
The base of the I/O class hierarchy.This class defines everything that can be defined about I/O that ...
__istream_type & operator>>(unsigned long long &__n)
Integer arithmetic extractors.
basic_istream< _CharT, _Traits > & ws(basic_istream< _CharT, _Traits > &__is)
Quick and easy way to eat whitespace.
__istream_type & seekg(pos_type)
Changing the current read position.
__istream_type & operator>>(float &__f)
Floating point arithmetic extractors.
__istream_type & operator>>(bool &__n)
Integer arithmetic extractors.
__istream_type & operator>>(unsigned long &__n)
Integer arithmetic extractors.
__istream_type & getline(char_type *__s, streamsize __n)
String extraction.
__istream_type & operator>>(ios_base &(*__pf)(ios_base &))
Interface for manipulators.
__istream_type & operator>>(long &__n)
Integer arithmetic extractors.
void init(basic_streambuf< _CharT, _Traits > *__sb)
All setup is performed here.
__istream_type & operator>>(long double &__f)
Floating point arithmetic extractors.
virtual ~basic_iostream()
Destructor does nothing.
__istream_type & getline(char_type *__s, streamsize __n, char_type __delim)
String extraction.
__istream_type & read(char_type *__s, streamsize __n)
Extraction without delimiters.
pos_type tellg()
Getting the current read position.
__istream_type & ignore()
Simple extraction.
Template class basic_iostream.
virtual ~basic_istream()
Base destructor.
__istream_type & operator>>(long long &__n)
Integer arithmetic extractors.
char_type widen(char __c) const
Widens characters.
__istream_type & putback(char_type __c)
Unextracting a single character.
int_type peek()
Looking ahead in the stream.
bitset< _Nb > operator>>(size_t __position) const noexcept
Self-explanatory.
__istream_type & operator>>(void *&__p)
Basic arithmetic extractors.
__istream_type & operator>>(__istream_type &(*__pf)(__istream_type &))
Interface for manipulators.
basic_iostream(basic_streambuf< _CharT, _Traits > *__sb)
Constructor does nothing.
__istream_type & operator>>(unsigned int &__n)
Integer arithmetic extractors.
ptrdiff_t streamsize
Integral type for I/O operation counts and buffer sizes.
__istream_type & operator>>(double &__f)
Floating point arithmetic extractors.
int sync()
Synchronizing the stream buffer.
__istream_type & operator>>(unsigned short &__n)
Integer arithmetic extractors.
streamsize readsome(char_type *__s, streamsize __n)
Extraction until the buffer is exhausted, but no more.