CGAL 4.12  Number Types

#include <CGAL/Number_type_checker.h>
Number_type_checker
is a number type whose instances store two numbers of types NT1
and NT2
.
It forwards all arithmetic operations to them, and calls the binary predicate Comparator
to check the equality of the instances after each modification, as well as for each comparison.
This is a debugging tool which is useful when dealing with number types.
NT1,NT2  must be a model of the same algebraic structure concept and they must be FromDoubleConstructible . 
Comparator  must 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. 
IntegralDomainWithoutDivision
(same as NT1
)
Operations
Some operations have a particular behavior documented here.
Related Functions  
(Note that these are not member functions.)  
std::ostream &  operator<< (std::ostream &out, const Number_type_checker &c) 
writes c.n1() to the ostream out .  
std::istream &  operator>> (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.  
Creation  
Number_type_checker ()  
introduces an uninitialized variable c .  
Number_type_checker (int i)  
introduces the integral value i.  
Number_type_checker (double d)  
introduces the floating point value d.  
Number_type_checker (const NT1 &n1, const NT2 &n2)  
introduces a variable storing the pair n1, n2 .  
Operations  
const NT1 &  n1 () const 
returns a const reference to the object of type NT1 .  
const NT2 &  n2 () const 
returns a const reference to the object of type NT2 .  
NT1 &  n1 () 
returns a reference to the object of type NT1 .  
NT2 &  n2 () 
returns a reference to the object of type NT2 .  
bool  is_valid () const 
calls the Comparator binary predicate on the two stored objects and returns its result.  