Navigation:
Up,
Table of Contents,
Bibliography,
Index,
Title Page
Definition
CGAL_Modifier_base<R> is an abstract
base class providing the interface for any modifier. A modifier is a
function object derived from CGAL_Modifier_base<R> that
implements the pure virtual member function operator(), which
accepts a single reference parameter R& on which the
modifier is allowed to work. R is the type of the internal
representation that is to be modified.
#include <CGAL/Modifier_base.h>
Types
typedef R
|
Representation;
|
the internal representation type.
|
Operations
virtual void
|
modifier.operator() ( R& rep)
|
| |
Postcondition: rep is a valid
representation.
|
Example
The following fragment defines a class A with
an internal representation i of type int. It provides
a member function delegate(), which gives a modifier access to
the internal variable and checks validity thereafter. The example
modifier sets the internal variable to 42. The example function applies
the modifier to an instance of class A.
class A {
int i; // protected internal representation
public:
void delegate( CGAL_Modifier_base<int>& modifier) {
modifier(i);
CGAL_postcondition( i > 0); // check validity
}
};
struct Modifier : public CGAL_Modifier_base<int> {
void operator()( int& rep) { rep = 42;}
};
void use_it() {
A a;
Modifier m;
a.delegate(m); // a.i == 42 and A has checked that A::i > 0.
}
Navigation:
Up,
Table of Contents,
Bibliography,
Index,
Title Page
The CGAL Project. 22 January 1999.