30 Input/output library [input.output]

30.7 Formatting and manipulators [iostream.format]

30.7.5 Output streams [output.streams]

30.7.5.2 Formatted output functions [ostream.formatted]

30.7.5.2.4 Character inserter function templates [ostream.inserters.character]

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

Returns: out.

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

Requires: 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).

Returns: out.