\( \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 - IO Streams

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Verbose_ostream Class Reference
IO Streams Reference

`#include <CGAL/IO/Verbose_ostream.h>`

## Definition

The class `Verbose_ostream` can be used as an output stream.

The stream output operator `<<` is defined for any type. The class `Verbose_ostream` stores in an internal state a stream and whether the output is active or not. If the state is active, the stream output operator `<<` uses the internal stream to output its argument. If the state is inactive, nothing happens.

Example

The class `Verbose_ostream` can be conveniently used to implement for example the `is_valid()` member function for triangulations or other complex data structures.

bool is_valid( bool verbose = false, int level = 0) {
Verbose_ostream verr( verbose);
verr << "Triangulation::is_valid( level = " << level << ')' << endl;
verr << " Number of vertices = " << size_of_vertices() << endl;
// ...
}

## Creation
| Verbose_ostream (bool active=false, std::ostream &out=std::cerr)
| creates an output stream with state set to `active` that writes to the stream `out`.

## Operations
template<class T >
Verbose_ostream & | operator<< (const T &t)