Пространства имён
Варианты
Действия

std::experimental::ostream_joiner

Материал из cppreference.com
 
 
Технические спецификации
Библиотека файловой системы (ТС файловой системы)
Основы библиотеки (ТС основ библиотеки)
Основы библиотеки 2 (ТС основ библиотеки v2)
Основы библиотеки 3 (ТС основы библиотеки v3)
Расширения для параллелизма (ТС параллелизма)
Расширения для параллелизма 2 (ТС параллелизма v2)
Расширения для конкуренции 2 (ТС конкуренции v2)
Концепты (ТС концепций)
Диапазоны (ТС диапазонов)
Рефлексия (ТС рефлексии)
Специальные математические функции (ТО специальные функции)
 
 
std::experimental::ostream_joiner
 
Определено в заголовочном файле <experimental/iterator>
template<

    class DelimT,
    class CharT = char,
    class Traits = std::char_traits<CharT>
>

class ostream_joiner;
(ТС основ библиотеки v2)

std::experimental::ostream_joiner однопроходный LegacyOutputIterator, который последовательно записывает объекты в объект std::basic_ostream, для которого он был создан, с использованием operator<<, разделяя их разделителем. Разделитель записывается в выходной поток между каждыми двумя записанными объектами. Операция записи выполняется, когда итератор (разыменованный или нет) присваивается. Инкремент ostream_joiner ничего не делает.

В типичной реализации единственными элементами данных ostream_joiner являются указатель на связанный std::basic_ostream, разделитель и элемент bool, указывающий, что следующая запись для первого элемента в последовательности.

По сравнению с std::ostream_iterator, ostream_joiner выводит последовательность разделителей на один меньше и не соответствует типу выводимого объекта.

Содержание

[править] Типы-элементы

Тип-элемент Определение
char_type CharT
traits_type Traits
ostream_type std::basic_ostream<CharT, Traits>
value_type void
difference_type void
pointer void
reference void
iterator_category std::output_iterator_tag

[править] Функции-элементы

создаёт новый ostream_joiner
(public функция-элемент) [править]
(деструктор)
(объявлено неявно)
уничтожает ostream_joiner
(public функция-элемент) [править]
записывает объект в ассоциированную выходную последовательность
(public функция-элемент) [править]
ничего не делает
(public функция-элемент) [править]
ничего не делает
(public функция-элемент) [править]

[править] Функции, не являющиеся элементами

создаёт объект ostream_joiner, выводя типы аргументов шаблона из аргументов функции
(шаблон функции) [править]

[править] Пример

#include <algorithm>
#include <experimental/iterator>
#include <iostream>
#include <iterator>
 
int main()
{
    int i[] = {1, 2, 3, 4, 5};
    std::copy(std::begin(i),
              std::end(i),
              std::experimental::make_ostream_joiner(std::cout, ", "));
}

Вывод:

1, 2, 3, 4, 5

[править] Смотрите также

итератор вывода, записывающий в std::basic_streambuf
(шаблон класса) [править]
итератор вывода, записывающий в std::basic_ostream
(шаблон класса) [править]
итератор ввода, читающий из std::basic_istream
(шаблон класса) [править]