namespace std {
template<class E, class T = char_traits<E> >
class basic_ostream;
typedef basic_ostream<char, char_traits<char> >
ostream;
typedef basic_ostream<wchar_t, char_traits<wchar_t> >
wostream;
// INSERTERS
template<class E, class T>
basic_ostream<E, T>&
operator<<(basic_ostream<E, T>& os,
const E *s);
template<class E, class T>
basic_ostream<E, T>&
operator<<(basic_ostream<E, T>& os,
E c);
template<class E, class T>
basic_ostream<E, T>&
operator<<(basic_ostream<E, T>& os,
const char *s);
template<class E, class T>
basic_ostream<E, T>&
operator<<(basic_ostream<E, T>& os,
char c);
template<class T>
basic_ostream<char, T>&
operator<<(basic_ostream<char, T>& os,
const char *s);
template<class T>
basic_ostream<char, T>&
operator<<(basic_ostream<char, T>& os,
char c);
template<class T>
basic_ostream<char, T>&
operator<<(basic_ostream<char, T>& os,
const signed char *s);
template<class T>
basic_ostream<char, T>&
operator<<(basic_ostream<char, T>& os,
signed char c);
template<class T>
basic_ostream<char, T>&
operator<<(basic_ostream<char, T>& os,
const unsigned char *s);
template<class T>
basic_ostream<char, T>&
operator<<(basic_ostream<char, T>& os,
unsigned char c);
// MANIPULATORS
template class<E, T>
basic_ostream<E, T>&
endl(basic_ostream<E, T>& os);
template class<E, T>
basic_ostream<E, T>&
ends(basic_ostream<E, T>& os);
template class<E, T>
basic_ostream<E, T>&
flush(basic_ostream<E, T>& os);
}