template<class charT, class traits>
basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& out, charT c);
template<class charT, class traits>
basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& out, char c);
// specialization
template<class traits>
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>& out, char c);
// signed and unsigned
template<class traits>
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>& out, signed char c);
template<class traits>
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>& out, unsigned char c);
Effects: Ведет себя как formatted output function оф out. Создает последовательность символов seq. Если c имеет тип, char а символьный тип потока - нет char, то seq состоит из out.widen(c); в противном случае seq состоит из c. Определяет заполнение, seq как описано в [ostream.formatted.reqmts]. Вставляет seq в out. Звонки os.width(0).
template<class charT, class traits>
basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& out, const charT* s);
template<class charT, class traits>
basic_ostream<charT, traits>& operator<<(basic_ostream<charT, traits>& out, const char* s);
template<class traits>
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>& out, const char* s);
template<class traits>
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>& out, const signed char* s);
template<class traits>
basic_ostream<char, traits>& operator<<(basic_ostream<char, traits>& out,
const unsigned char* s);
Effects: Работает как форматированный модуль вставки (как описано в разделе [ostream.formatted.reqmts]) из out. Создает последовательность символов seq из n символов , начиная с s, каждый расширена с помощью out.widen() ([basic.ios.members]), где n это число , которое будет вычислено как бы:
traits::length(s) для перегрузки, где первый аргумент имеет тип, basic_ostream<charT, traits>& а второй - типа const charT*, а также для перегрузки, где первый аргумент имеет тип, basic_ostream<char, traits>& а второй - тип const char*,
char_traits<char>::length(s) для перегрузки, где первый аргумент имеет тип, basic_ostream<charT, traits>& а второй - тип const char*,
traits::length(reinterpret_cast<const char*>(s)) для двух других перегрузок.
Определяет заполнение, seq как описано в [ostream.formatted.reqmts]. Вставляет seq в out. Звонки width(0).