operator<<

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

The template function:

template<class E, class T>
    basic_ostream<E, T>& operator<<(basic_ostream<E, T> os, const E *s);

determines the length n = T::length(s) of the sequence beginning at s, and inserts the sequence. If n < os.width(), then the function also inserts a repetition of width() - n fill characters. The repetition precedes the sequence if (os.flags() & adjustfield != left. Otherwise, the repetition follows the sequence. The function returns os.

The template function:

template<class E, class T>
    basic_ostream<E, T>& operator<<(basic_ostream<E, T> os, E c);

is a formatted output function that inserts the element c. It returns os.

The template function:

template<class T>
    basic_ostream<char, T>& operator<<(basic_ostream<char, T> os, const signed char *s);

returns os << (const char *)s.

The template function:

template<class T>
    basic_ostream<char, T>& operator<<(basic_ostream<char, T> os, signed char c);

returns os << (char)c.

The template function:

template<class T>
    basic_ostream<char, T>& operator<<(basic_ostream<char, T> os, const unsigned char *s);

returns os << (const char *)s.

The template function:

template<class T>
    basic_ostream<char, T>& operator<<(basic_ostream<char, T> os, unsigned char c);

returns os << (char)c.