- C++0x's std:array from <array>
- TR1's std::tr1::array from <tr1/array>
- boost::array from <boost/array.hpp>
Motivation : GCC's std::array is faster than boost::array.
Move CGALi:make_array to namespace CGAL.
Document CGAL::array.
- Use K::Bool_type, K::Orientation... instead of bool, CGAL::Orientation...
- More functions around Uncertain<> : make_certain(), extract_singleton(),
possible conversions tightenning.
Many conversions still remain, e.g. for switch and if statements, &&, ||...
Things like "CGAL_assertion(denominator != 0)" produced assertion failures for no gain.
So now, the assertion is triggered only if the condition is certain, using CGAL::certainly().
That is, change the following in all assertion files :
((EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
to :
(CGAL::certainly(EX)?(static_cast<void>(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__))
There is now Ambiant_dimension and Feature_dimension.
The handling of the dynamic dimension case is now done by having
the di,ension tag as the first thing provided, with the integral
constant value available only when it makes sense (INT_MAX no longer needed).
<CGAL/Kernel/Cartesian_coordinate_iterator_2.h>
<CGAL/Kernel/Cartesian_coordinate_iterator_3.h>
To:
<CGAL/Filtered_kernel/Cartesian_coordinate_iterator_2.h>
<CGAL/Filtered_kernel/Cartesian_coordinate_iterator_3.h>
det2x2_by_formula
det3x3_by_formula
det4x4_by_formula
det5x5_by_formula
det6x6_by_formula
to:
determinant
How cute... a name independent of the dimension, and even readable !
sign_of_determinant2x2
sign_of_determinant3x3
sign_of_determinant4x4
sign_of_determinant5x5
sign_of_determinant6x6
to:
sign_of_determinant
So that we have less dimension-dependent namings, at least internally...
as the default is now the empty string "".
It should fix the problem that we have lost the assertion messages
(seeing "what(): basic_string::_S_construct NULL not valid" instead),
for packages that use package-specific assertion macros.
* 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