\( \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_or_drop_output_iterator< V, O > Class Template Reference
Iterators and Iterator/Circulator Adaptors

`#include <CGAL/iterator.h>`

## Inherits from

O.

## Definition

The class `Dispatch_or_drop_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.

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...` must be a subset of the parameters of `V`. Should the `boost::optional` be empty, it will be discarded.

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`

cgalExample{STL_Extension/Dispatch_output_iterator.cpp}

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

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

## Types
typedef V | Value_type_tuple
typedef O | Iterator_tuple

## Creation
| Dispatch_or_drop_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_or_drop_output_iterator< tuple< V...>, tuple< O...> > dispatch_or_drop_output | ( | O... | o) |  |
| related

Returns
  a `Dispatch_or_drop_output_iterator` constructed from the arguments.