* CGAL_error to CGAL_error_msg
* introduced a macro CGAL_error()
* added some words about CGAL_error to the developers manual
* renamed most of assert(x) into CGAL_assertion(x)
* renamed exit(x) with x != 0 , CGAL_assertion(false) and assert(false) into CGAL_error
* CORE left untouched, OpenNL changed
(+ a few fixes encountered while doing the corrections)
* Another change is realted to the functors XCtriticalPoints_2 and
YCtriticalPoints_2. The best solution in my opinion is to let these
two functors be optional: any model of the AlgebraicKernel_d_2 concept
must define a tag named Has_critial_points.
o I think that saying that, for example, Solve_1 is an "AdaptableFunction
that computes the real roots of a univariate polynomial" is too long.
Just say that it "Computes the real roots of a univariate polynomial",
and under a "Refines" subsection states that it is a refinement of
AdaptableFunction (this is already done for some functor concepts).
o It is fine to be meticulous and state what are the "result_type",
"argument_type" etc. for the various functors. However, I think that
stating (for Compare_1 in this case):
result_type fo (first_argument_type x, second_argument_type y)
is a bit confusing (the reader has to look back and forth to see what
these types are). I?d prefer a more direct definition:
Comparison_result fo (Algebraic_real_1 x, Algebraic_real_1 y)
o I do not like to have a functors that accept two output iterators.
I think a better implementation is an output iterator whole value type
is std::pair<A,B>. (See below)