namespace std {
// DECLARATIONS
template<class E, class T = char_traits<E> >
class basic_istream;
typedef basic_istream<char, char_traits<char> > istream;
typedef basic_istream<wchar_t, char_traits<wchar_t> > wistream;
template<class E, class T = char_traits<E> >
class basic_iostream;
typedef basic_iostream<char, char_traits<char> > iostream;
typedef basic_iostream<wchar_t, char_traits<wchar_t> > wiostream;
// EXTRACTORS
template<class E, class T>
basic_istream<E, T>& operator>>(basic_istream<E, T> is, E *s);
template<class E, class T>
basic_istream<E, T>& operator>>(basic_istream<E, T> is, E& c);
template<class T>
basic_istream<char, T>& operator>>(basic_istream<char, T> is, signed char *s);
template<class T>
basic_istream<char, T>& operator>>(basic_istream<char, T> is, signed char& c);
template<class T>
basic_istream<char, T>& operator>>(basic_istream<char, T> is, unsigned char *s);
template<class T>
basic_istream<char, T>& operator>>(basic_istream<char, T> is, unsigned char& c);
// MANIPULATOR
template class<E, T>
basic_istream<E, T>& ws(basic_istream<E, T> is);
};
Include the iostreams standard header <istream>
to define template class basic_istream
, which mediates
extractions for the iostreams, and the template class basic_iostream
, which mediates both insertions and
extractions. The header also defines a related manipulator. (This header is typically included for you by another of the
iostreams headers. You seldom have occasion to include it directly.)