PPL: Parma_Polyhedra_Library::IO_Operators Namespace Reference

Main Page | Modules | Namespace List | Class Hierarchy | Class List | Namespace Members | Class Members | Related Pages

# Parma_Polyhedra_Library::IO_Operators Namespace Reference

All input/output operators are confined to this namespace. More...

## Detailed Description

All input/output operators are confined to this namespace.

This is done so that the library's input/output operators do not interfere with those the user might want to define. In fact, it is highly unlikely that any pre-defined I/O operator will suit the needs of a client application. On the other hand, those applications for which the PPL I/O operator are enough can easily obtain access to them. For example, a directive like

        using namespace Parma_Polyhedra_Library::IO_Operators;

would suffice for most uses. In more complex situations, such as

        const ConSys& cs = ...;
        copy(cs.begin(), cs.end(),
             ostream_iterator<Constraint>(cout, "\n"));

the Parma_Polyhedra_Library namespace must be suitably extended. This can be done as follows:

        namespace Parma_Polyhedra_Library {
          // Import all the output operators into the main PPL namespace.
          using IO_Operators::operator<<;
        }