\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - STL Extensions for CGAL

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members | Related Functions
CGAL::Dispatch_output_iterator< V, O > Class Template Reference
Iterators and Iterator/Circulator Adaptors

`#include <CGAL/iterator.h>`

## Inherits from

O.

## Definition

The class `Dispatch_output_iterator` defines an `OutputIterator` that contains a tuple of output iterators, and dispatches among those based on the type of the value type which is put in it.

Other types are also accepted, and the object is discarded in this case. Besides defining assignment for all parameters of `V` and for a tuple of type `V`, it is also defined for the types `boost::variant<T...>` and `boost::optional<boost::variant<T...> >`, where `T...` can be a list of arbitrary types.

It also inherits from `O`, which makes it easy to treat like a tuple.

Parameters

Template Parameters

  V | must be a `CGAL::cpp11::tuple<...>` of the types of values to be accepted and dispatched.
  O | must be a `CGAL::cpp11::tuple<...>` of the types of corresponding output iterators.

Is Model Of:
  `OutputIterator`

See Also
  `CGAL::Dispatch_or_drop_output_iterator<V,O>`

## Related Functions
(Note that these are not member functions.)
template<typename... V, typename... O>
Dispatch_output_iterator < tuple< V...>, tuple< O...> > | dispatch_output (O...o)

## Types
typedef V | Value_type_tuple
typedef O | Iterator_tuple

## Creation
| Dispatch_output_iterator (I...o)
| Constructor taking all the output iterators.
const Iterator_tuple & | get_iterator_tuple () const
| returns a reference to the tuple of output iterators.

## Friends And Related Function Documentation

template<typename... V, typename... O>

Dispatch_output_iterator< tuple< V...>, tuple< O...> > dispatch_output | ( | O... | o) |  |
| related

Returns
  a `Dispatch_output_iterator` constructed from the arguments.