This is a debugging tool which is useful when dealing with number types.
NT1 must be a model of some algebraic structure concept. NT2 must be a model of the same algebraic structure concept. NT1 and NT2 must be FromDoubleConstructible. Comparator has to be a model of a binary predicate taking NT1 as first argument, and NT2 as second. The Comparator parameter has a default value which is a functor calling operator== between the two arguments.
#include <CGAL/Number_type_checker.h>
Number_type_checker<NT1,NT2,Comparator> c; | |
introduces an uninitialized variable c.
| |
Number_type_checker<NT1,NT2,Comparator> c ( int i); | |
introduces the integral value i.
| |
Number_type_checker<NT1,NT2,Comparator> c ( double d); | |
introduces the floating point value d.
| |
Number_type_checker<NT1,NT2,Comparator> c ( NT1 n1, NT2 n2); | |
introduces a variable storing the pair n1, n2.
|
Some operations have a particular behavior documented here.
NT1 | c.n1 () const | returns a const reference to the object of type NT1. |
NT2 | c.n2 () const | returns a const reference to the object of type NT2. |
NT1 & | c.n1 () | returns a reference to the object of type NT1. |
NT2 & | c.n2 () | returns a reference to the object of type NT2. |
bool | c.is_valid () const | calls the Comparator binary predicate on the two stored objects and returns its result. |
std::ostream& | std::ostream& out << Number_type_checker c | |
writes c.n1() to the ostream out. | ||
std::istream& | std::istream& in >> Number_type_checker& c | |
reads an NT1 from in, then converts it to an NT2, so a conversion from NT1 to NT2 is required here. |