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.

#include <CGAL/IO/Verbose_ostream.h>


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


template < class T >
Verbose_ostream& verr << T t


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;
        // ...