Synopsis

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);
    }