diff --git a/Convex_hull_2/doc/Convex_hull_2/PackageDescription.txt b/Convex_hull_2/doc/Convex_hull_2/PackageDescription.txt index fd1c27ca210..7fa7625b04f 100644 --- a/Convex_hull_2/doc/Convex_hull_2/PackageDescription.txt +++ b/Convex_hull_2/doc/Convex_hull_2/PackageDescription.txt @@ -53,13 +53,11 @@ upper hull of a set of points. \cgalCRPSection{Assertions} -The assertion flags for the convex hull and extreme point algorithms -use `CH` in their names (e.g., `CGAL_CH_NO_POSTCONDITIONS`). For the convex hull algorithms, the postcondition check tests only convexity (if not disabled), but not containment of the input points in the polygon or polyhedron defined by the output points. The latter is considered an expensive checking and can be enabled by -defining `CGAL_CH_CHECK_EXPENSIVE`. +defining `CGAL_CHECK_EXPENSIVE`. \cgalCRPSection{Concepts} @@ -105,4 +103,3 @@ defining `CGAL_CH_CHECK_EXPENSIVE`. */ - diff --git a/Convex_hull_3/doc/Convex_hull_3/PackageDescription.txt b/Convex_hull_3/doc/Convex_hull_3/PackageDescription.txt index cfe86e65064..acadb02ed7e 100644 --- a/Convex_hull_3/doc/Convex_hull_3/PackageDescription.txt +++ b/Convex_hull_3/doc/Convex_hull_3/PackageDescription.txt @@ -52,13 +52,11 @@ points in is strongly convex or not. This chapter describes the functions available for three dimensions. \cgalCRPSection{Assertions} -The assertion flags for the convex hull and extreme point algorithms -use `CH` in their names (e.g., `CGAL_CH_NO_POSTCONDITIONS`). For the convex hull algorithms, the postcondition check tests only convexity (if not disabled), but not containment of the input points in the polygon or polyhedron defined by the output points. The latter is considered an expensive checking and can be enabled by -defining `CGAL_CH_CHECK_EXPENSIVE`. +defining `CGAL_CHECK_EXPENSIVE`. \cgalClassifedRefPages diff --git a/Inscribed_areas/doc/Inscribed_areas/PackageDescription.txt b/Inscribed_areas/doc/Inscribed_areas/PackageDescription.txt index 869cc842f1e..a15bb4b041c 100644 --- a/Inscribed_areas/doc/Inscribed_areas/PackageDescription.txt +++ b/Inscribed_areas/doc/Inscribed_areas/PackageDescription.txt @@ -22,18 +22,11 @@ \cgalPkgDescriptionEnd -\cgalCRPSection{Assertions} - -The optimization code uses infix `OPTIMISATION` in the assertions, -e.g. defining the compiler flag -`CGAL_OPTIMISATION_NO_PRECONDITIONS` switches precondition -checking off, cf. Section \ref secchecks. - \cgalClassifedRefPages -- `CGAL::maximum_area_inscribed_k_gon_2` -- `CGAL::maximum_perimeter_inscribed_k_gon_2` -- `CGAL::extremal_polygon_2` +- `CGAL::maximum_area_inscribed_k_gon_2()` +- `CGAL::maximum_perimeter_inscribed_k_gon_2()` +- `CGAL::extremal_polygon_2()` - `CGAL::Largest_empty_iso_rectangle_2` - `CGAL::Extremal_polygon_area_traits_2` - `CGAL::Extremal_polygon_perimeter_traits_2` @@ -41,4 +34,3 @@ checking off, cf. Section \ref secchecks. - `LargestEmptyIsoRectangleTraits_2` */ - diff --git a/Installation/CHANGES.md b/Installation/CHANGES.md index be5a7d1fc93..dc135619340 100644 --- a/Installation/CHANGES.md +++ b/Installation/CHANGES.md @@ -6,6 +6,10 @@ Release History Release date: December 2022 +### General Changes + +- The per package assertions, pre- and postconditions are no longer supported. + ### [Combinatorial Maps](https://doc.cgal.org/5.6/Manual/packages.html#PkgCombinatorialMaps) [Generalized Maps](https://doc.cgal.org/5.6/Manual/packages.html#PkgGeneralizedMaps) [Linear Cell Complex](https://doc.cgal.org/5.6/Manual/packages.html#PkgLinearCellComplex) - Added a version that uses indices instead of handles as dart and attribute descriptors. As the indices are integers convertible from and to `std::size_t`, they can be used as index into vectors which store properties. To use the index version, `Use_index` must be defined and be equal to `CGAL::Tag_true` in the item class. @@ -39,7 +43,7 @@ CGAL tetrahedral Delaunay refinement algorithm. ### [2D Conforming Triangulations and Meshes](https://doc.cgal.org/5.6/Manual/packages.html#PkgMesh2) - Deprecated two overloads of Function `refine_Delaunay_mesh()` and replaced them with versions using function named parameters. -- Add overloads of function `write_VTU()` with property maps for specifying the domain. +- Add overloads of function `write_VTU()` with property maps for specifying the domain. [Release 5.5](https://github.com/CGAL/cgal/releases/tag/v5.5) ----------- diff --git a/Matrix_search/doc/Matrix_search/PackageDescription.txt b/Matrix_search/doc/Matrix_search/PackageDescription.txt index 8ec5cfdffcb..202989f2da3 100644 --- a/Matrix_search/doc/Matrix_search/PackageDescription.txt +++ b/Matrix_search/doc/Matrix_search/PackageDescription.txt @@ -23,24 +23,17 @@ This chapter describes concepts, classes, and functions for monotone and sorted matrix search. -\cgalCRPSection{Assertions} - -The optimization code uses infix `OPTIMISATION` in the assertions, -e.g. defining the compiler flag -`CGAL_OPTIMISATION_NO_PRECONDITIONS` switches precondition -checking off, cf. Section \ref secchecks "Checks" in the chapter on STL extensions. \cgalClassifedRefPages -- `CGAL::monotone_matrix_search` +- `CGAL::monotone_matrix_search()` - `CGAL::Dynamic_matrix` - `MonotoneMatrixSearchTraits` - `BasicMatrix` -- `CGAL::sorted_matrix_search` +- `CGAL::sorted_matrix_search()` - `CGAL::Sorted_matrix_search_traits_adaptor` - `SortedMatrixSearchTraits` */ - diff --git a/Partition_2/doc/Partition_2/PackageDescription.txt b/Partition_2/doc/Partition_2/PackageDescription.txt index ee33bf48c0a..4d5b6ba9c91 100644 --- a/Partition_2/doc/Partition_2/PackageDescription.txt +++ b/Partition_2/doc/Partition_2/PackageDescription.txt @@ -53,8 +53,6 @@ primitive types and predicates used by the algorithms. \cgalCRPSection{Assertions} -The assertion flags for this package use `PARTITION` in their names -(e.g., `CGAL_PARTITION_NO_POSTCONDITIONS`). The precondition checks for the planar polygon partitioning functions are: counterclockwise ordering of the input vertices and simplicity of the polygon these vertices represent. @@ -99,4 +97,3 @@ original polygon). - `CGAL::y_monotone_partition_is_valid_2()` */ - diff --git a/Polygon/doc/Polygon/PackageDescription.txt b/Polygon/doc/Polygon/PackageDescription.txt index e5c9d156714..1d48e74493c 100644 --- a/Polygon/doc/Polygon/PackageDescription.txt +++ b/Polygon/doc/Polygon/PackageDescription.txt @@ -40,10 +40,6 @@ \cgalPkgShortInfoEnd \cgalPkgDescriptionEnd -\cgalCRPSection{Assertions} - -The assertion flags for the polygons and polygon operations use -`POLYGON` in their names (e.g., `CGAL_POLYGON_NO_ASSERTIONS`). \cgalClassifedRefPages diff --git a/Polytope_distance_d/doc/Polytope_distance_d/PackageDescription.txt b/Polytope_distance_d/doc/Polytope_distance_d/PackageDescription.txt index 0b4088ce277..aaecb2b37da 100644 --- a/Polytope_distance_d/doc/Polytope_distance_d/PackageDescription.txt +++ b/Polytope_distance_d/doc/Polytope_distance_d/PackageDescription.txt @@ -19,17 +19,12 @@ \cgalPkgShortInfoEnd \cgalPkgDescriptionEnd -\cgalCRPSection{Assertions} -The optimization code uses infix `OPTIMISATION` in the assertions, -e.g. defining the compiler flag -`CGAL_OPTIMISATION_NO_PRECONDITIONS` switches precondition -checking off, cf. Section \ref secchecks. \cgalClassifedRefPages \cgalCRPSection{All Furthest Neighbors} -- `CGAL::all_furthest_neighbors_2` +- `CGAL::all_furthest_neighbors_2()` - `AllFurthestNeighborsTraits_2` \cgalCRPSection{Width} @@ -48,4 +43,3 @@ checking off, cf. Section \ref secchecks. */ - diff --git a/STL_Extension/doc/STL_Extension/CGAL/Multiset.h b/STL_Extension/doc/STL_Extension/CGAL/Multiset.h index a892f2f7702..a81cabb29ea 100644 --- a/STL_Extension/doc/STL_Extension/CGAL/Multiset.h +++ b/STL_Extension/doc/STL_Extension/CGAL/Multiset.h @@ -69,12 +69,6 @@ less-than operator (`operator<`). \tparam Allocator the allocator type. `CGAL_ALLOCATOR` is used by default. -\cgalHeading{Assertions} - -The assertion and precondition flags for the `Multiset` class -use `MULTISET` in their names (i.e., `CGAL_MULTISET_NO_ASSERTIONS` and -`CGAL_MULTISET_NO_PRECONDITIONS`). - \cgalHeading{Implementation} `Multiset` uses a proprietary implementation of a red-black tree diff --git a/STL_Extension/include/CGAL/Multiset.h b/STL_Extension/include/CGAL/Multiset.h index 96b6bcc612b..9382923dbc6 100644 --- a/STL_Extension/include/CGAL/Multiset.h +++ b/STL_Extension/include/CGAL/Multiset.h @@ -14,7 +14,6 @@ #include #include -#include #include #include #include @@ -168,7 +167,7 @@ protected: Node* predecessor () const { // The DUMMY_BEGIN node has no predecessor. - CGAL_multiset_assertion (color != DUMMY_BEGIN); + CGAL_assertion (color != DUMMY_BEGIN); Node *predP; @@ -203,7 +202,7 @@ protected: Node* successor () const { // The DUMMY_END node has no successor. - CGAL_multiset_assertion (color != DUMMY_END); + CGAL_assertion (color != DUMMY_END); Node *succP; @@ -346,7 +345,7 @@ public: /*! Increment operator (prefix notation). */ iterator& operator++ () { - CGAL_multiset_precondition (nodeP != nullptr); + CGAL_precondition (nodeP != nullptr); nodeP = nodeP->successor(); return (*this); @@ -355,7 +354,7 @@ public: /*! Increment operator (postfix notation). */ iterator operator++ (int ) { - CGAL_multiset_precondition (nodeP != nullptr); + CGAL_precondition (nodeP != nullptr); iterator temp = *this; @@ -366,7 +365,7 @@ public: /*! Decrement operator (prefix notation). */ iterator& operator-- () { - CGAL_multiset_precondition (nodeP != nullptr); + CGAL_precondition (nodeP != nullptr); nodeP = nodeP->predecessor(); return (*this); @@ -375,7 +374,7 @@ public: /*! Decrement operator (postfix notation). */ iterator operator-- (int ) { - CGAL_multiset_precondition (nodeP != nullptr); + CGAL_precondition (nodeP != nullptr); iterator temp = *this; @@ -388,7 +387,7 @@ public: */ reference operator* () const { - CGAL_multiset_precondition (nodeP != nullptr && nodeP->is_valid()); + CGAL_precondition (nodeP != nullptr && nodeP->is_valid()); return (nodeP->object); } @@ -398,7 +397,7 @@ public: */ pointer operator-> () const { - CGAL_multiset_precondition (nodeP != nullptr && nodeP->is_valid()); + CGAL_precondition (nodeP != nullptr && nodeP->is_valid()); return (&(nodeP->object)); } @@ -461,7 +460,7 @@ public: /*! Increment operator (prefix notation). */ const_iterator& operator++ () { - CGAL_multiset_precondition (nodeP != nullptr); + CGAL_precondition (nodeP != nullptr); nodeP = nodeP->successor(); return (*this); @@ -470,7 +469,7 @@ public: /*! Increment operator (postfix notation). */ const_iterator operator++ (int ) { - CGAL_multiset_precondition (nodeP != nullptr); + CGAL_precondition (nodeP != nullptr); const_iterator temp = *this; @@ -481,7 +480,7 @@ public: /*! Decrement operator (prefix notation). */ const_iterator& operator-- () { - CGAL_multiset_precondition (nodeP != nullptr); + CGAL_precondition (nodeP != nullptr); nodeP = nodeP->predecessor(); return (*this); @@ -490,7 +489,7 @@ public: /*! Decrement operator (postfix notation). */ const_iterator operator-- (int ) { - CGAL_multiset_precondition (nodeP != nullptr); + CGAL_precondition (nodeP != nullptr); const_iterator temp = *this; @@ -503,7 +502,7 @@ public: */ reference operator* () const { - CGAL_multiset_precondition (nodeP != nullptr && nodeP->is_valid()); + CGAL_precondition (nodeP != nullptr && nodeP->is_valid()); return (nodeP->object); } @@ -513,7 +512,7 @@ public: */ pointer operator-> () const { - CGAL_multiset_precondition (nodeP != nullptr && nodeP->is_valid()); + CGAL_precondition (nodeP != nullptr && nodeP->is_valid()); return (&(nodeP->object)); } @@ -1956,7 +1955,7 @@ Multiset::insert (iterator positi { Node *nodeP = position.nodeP; - CGAL_multiset_precondition (_is_valid (nodeP)); + CGAL_precondition (_is_valid (nodeP)); // Compare the object to the one stored at the given node in order to decide // in which direction to proceed. @@ -2033,7 +2032,7 @@ Multiset::insert_after (iterator Node *nodeP = position.nodeP; // In case we are given a nullptr node, object should be the tree minimum. - CGAL_multiset_assertion (nodeP != &endNode); + CGAL_assertion (nodeP != &endNode); if (nodeP == &beginNode) nodeP = nullptr; @@ -2042,7 +2041,7 @@ Multiset::insert_after (iterator { // In case the tree is empty, make sure that we did not receive a valid // iterator. - CGAL_multiset_precondition (nodeP == nullptr); + CGAL_precondition (nodeP == nullptr); // Assign a new root node. Notice that the root is always black. rootP = _allocate_node (object, Node::BLACK); @@ -2070,7 +2069,7 @@ Multiset::insert_after (iterator // child of the current minimal leaf. parentP = beginNode.parentP; - CGAL_multiset_precondition (comp_f(object, parentP->object) != LARGER); + CGAL_precondition (comp_f(object, parentP->object) != LARGER); parentP->leftP = newNodeP; @@ -2081,9 +2080,9 @@ Multiset::insert_after (iterator else { // Make sure the insertion does not violate the tree order. - CGAL_multiset_precondition_code (Node *_succP = nodeP->successor()); - CGAL_multiset_precondition (comp_f(object, nodeP->object) != SMALLER); - CGAL_multiset_precondition (! _succP->is_valid() || + CGAL_precondition_code (Node *_succP = nodeP->successor()); + CGAL_precondition (comp_f(object, nodeP->object) != SMALLER); + CGAL_precondition (! _succP->is_valid() || comp_f(object, _succP->object) != LARGER); // In case given node has no right child, place the new node as its @@ -2131,7 +2130,7 @@ Multiset::insert_before (iterator Node *nodeP = position.nodeP; // In case we are given a nullptr node, object should be the tree maximum. - CGAL_multiset_assertion (nodeP != &beginNode); + CGAL_assertion (nodeP != &beginNode); if (nodeP == &endNode) nodeP = nullptr; @@ -2140,7 +2139,7 @@ Multiset::insert_before (iterator { // In case the tree is empty, make sure that we did not receive a valid // iterator. - CGAL_multiset_precondition (nodeP == nullptr); + CGAL_precondition (nodeP == nullptr); // Assign a new root node. Notice that the root is always black. rootP = _allocate_node(object, Node::BLACK); @@ -2168,7 +2167,7 @@ Multiset::insert_before (iterator // child of the current maximal leaf. parentP = endNode.parentP; - CGAL_multiset_precondition (comp_f(object, parentP->object) != SMALLER); + CGAL_precondition (comp_f(object, parentP->object) != SMALLER); parentP->rightP = newNodeP; @@ -2179,9 +2178,9 @@ Multiset::insert_before (iterator else { // Make sure the insertion does not violate the tree order. - CGAL_multiset_precondition_code (Node *_predP = nodeP->predecessor()); - CGAL_multiset_precondition (comp_f(object, nodeP->object) != LARGER); - CGAL_multiset_precondition (! _predP->is_valid() || + CGAL_precondition_code (Node *_predP = nodeP->predecessor()); + CGAL_precondition (comp_f(object, nodeP->object) != LARGER); + CGAL_precondition (! _predP->is_valid() || comp_f(object, _predP->object) != SMALLER); // In case given node has no left child, place the new node as its @@ -2258,7 +2257,7 @@ void Multiset::erase (iterator po { Node *nodeP = position.nodeP; - CGAL_multiset_precondition (_is_valid (nodeP)); + CGAL_precondition (_is_valid (nodeP)); _remove_at (nodeP); return; @@ -2294,16 +2293,16 @@ void Multiset::replace (iterator { Node *nodeP = position.nodeP; - CGAL_multiset_precondition (_is_valid (nodeP)); + CGAL_precondition (_is_valid (nodeP)); // Make sure the replacement does not violate the tree order. - CGAL_multiset_precondition_code (Node *_succP = nodeP->successor()); - CGAL_multiset_precondition (_succP == nullptr || + CGAL_precondition_code (Node *_succP = nodeP->successor()); + CGAL_precondition (_succP == nullptr || _succP->color == Node::DUMMY_END || comp_f(object, _succP->object) != LARGER); - CGAL_multiset_precondition_code (Node *_predP = nodeP->predecessor()); - CGAL_multiset_precondition (_predP == nullptr || + CGAL_precondition_code (Node *_predP = nodeP->predecessor()); + CGAL_precondition (_predP == nullptr || _predP->color == Node::DUMMY_BEGIN || comp_f(object, _predP->object) != SMALLER); @@ -2323,30 +2322,30 @@ void Multiset::swap (iterator pos Node *node1_P = pos1.nodeP; Node *node2_P = pos2.nodeP; - CGAL_multiset_precondition (_is_valid (node1_P)); - CGAL_multiset_precondition (_is_valid (node2_P)); + CGAL_precondition (_is_valid (node1_P)); + CGAL_precondition (_is_valid (node2_P)); if (node1_P == node2_P) return; // Make sure the swap does not violate the tree order. - CGAL_multiset_precondition_code (Node *_succ1_P = node1_P->successor()); - CGAL_multiset_precondition (! _is_valid (_succ1_P) || + CGAL_precondition_code (Node *_succ1_P = node1_P->successor()); + CGAL_precondition (! _is_valid (_succ1_P) || comp_f (node2_P->object, _succ1_P->object) != LARGER); - CGAL_multiset_precondition_code (Node *_pred1_P = node1_P->predecessor()); - CGAL_multiset_precondition (! _is_valid (_pred1_P) || + CGAL_precondition_code (Node *_pred1_P = node1_P->predecessor()); + CGAL_precondition (! _is_valid (_pred1_P) || comp_f (node2_P->object, _pred1_P->object) != SMALLER); - CGAL_multiset_precondition_code (Node *_succ2_P = node2_P->successor()); - CGAL_multiset_precondition (! _is_valid (_succ2_P) || + CGAL_precondition_code (Node *_succ2_P = node2_P->successor()); + CGAL_precondition (! _is_valid (_succ2_P) || comp_f (node1_P->object, _succ2_P->object) != LARGER); - CGAL_multiset_precondition_code (Node *_pred2_P = node2_P->predecessor()); - CGAL_multiset_precondition (! _is_valid (_pred2_P) || + CGAL_precondition_code (Node *_pred2_P = node2_P->predecessor()); + CGAL_precondition (! _is_valid (_pred2_P) || comp_f (node1_P->object, _pred2_P->object) != SMALLER); @@ -2438,13 +2437,13 @@ void Multiset::catenate (Self& tr if (min2_P == nullptr) { // The other tree is empty - nothing to do. - CGAL_multiset_assertion (tree.rootP == nullptr); + CGAL_assertion (tree.rootP == nullptr); return; } else if (max1_P == nullptr) { // Our tree is empty: Copy all other tree properties to our tree. - CGAL_multiset_assertion (rootP == nullptr); + CGAL_assertion (rootP == nullptr); _shallow_assign (tree); return; @@ -2452,12 +2451,12 @@ void Multiset::catenate (Self& tr // Make sure that the minimal object in the other tree is not less than the // maximal object in our tree. - CGAL_multiset_precondition (comp_f (max1_P->object, + CGAL_precondition (comp_f (max1_P->object, min2_P->object) != LARGER); // Make sure both tree roots black. - CGAL_multiset_assertion (_is_black (rootP)); - CGAL_multiset_assertion (_is_black (tree.rootP)); + CGAL_assertion (_is_black (rootP)); + CGAL_assertion (_is_black (tree.rootP)); // Splice max1_P (or min2_P) from its tree, but without deleting it. Node* auxP = nullptr; @@ -2561,7 +2560,7 @@ void Multiset::catenate (Self& tr if (_is_red (node2_P)) node2_P = node2_P->leftP; - CGAL_multiset_assertion (_is_valid (node2_P)); + CGAL_assertion (_is_valid (node2_P)); } else { @@ -2578,7 +2577,7 @@ void Multiset::catenate (Self& tr if (_is_red (node1_P)) node1_P = node1_P->rightP; - CGAL_multiset_assertion (_is_valid (node2_P)); + CGAL_assertion (_is_valid (node2_P)); } // Check which one of the tree roots have we reached. @@ -2615,7 +2614,7 @@ void Multiset::catenate (Self& tr // moving auxP to be their parent. parentP = node1_P->parentP; - CGAL_multiset_assertion (parentP != nullptr); + CGAL_assertion (parentP != nullptr); // The catenated tree will be rooted at the current root of our tree. newRootP = rootP; @@ -2670,7 +2669,7 @@ template ::split (iterator position, Self& tree) { - CGAL_multiset_precondition (tree.empty()); + CGAL_precondition (tree.empty()); // Check the extremal cases. if (position == begin()) @@ -2691,7 +2690,7 @@ void Multiset::split (iterator po // is at most twice the black-height of the tree. Node *nodeP = position.nodeP; - CGAL_multiset_precondition (_is_valid (nodeP)); + CGAL_precondition (_is_valid (nodeP)); Node *currP = nodeP; Comparison_result *path = new Comparison_result [2 * iBlackHeight]; @@ -2708,7 +2707,7 @@ void Multiset::split (iterator po currP = currP->parentP; } - CGAL_multiset_assertion (currP == rootP); + CGAL_assertion (currP == rootP); // Now go down the path and split the tree accordingly. We also keep // track of the black-height of the current node. @@ -2726,7 +2725,7 @@ void Multiset::split (iterator po while (depth >= 0) { - CGAL_multiset_assertion (_is_valid (currP)); + CGAL_assertion (_is_valid (currP)); // If we encounter a black node, the black-height of both its left and // right subtrees is decremented. @@ -2770,8 +2769,8 @@ void Multiset::split (iterator po else if (_is_valid (childP)) { // Catenate T_r with the current rightTree. - CGAL_multiset_assertion (_is_valid (spineRightP) && - _is_valid(auxRightP)); + CGAL_assertion (_is_valid (spineRightP) && + _is_valid(auxRightP)); // Make sure the root of T_r is black. size_t iCurrRightBHeight = iCurrBHeight; @@ -2784,7 +2783,7 @@ void Multiset::split (iterator po // Go down the leftmost path of rightTree until locating a black // node whose black height is exactly iCurrRightBHeight. - CGAL_multiset_assertion (iRightBHeight >= iCurrRightBHeight); + CGAL_assertion (iRightBHeight >= iCurrRightBHeight); while (iRightBHeight > iCurrRightBHeight) { @@ -2795,7 +2794,7 @@ void Multiset::split (iterator po if (_is_red (spineRightP)) spineRightP = spineRightP->leftP; - CGAL_multiset_assertion (_is_valid (spineRightP)); + CGAL_assertion (_is_valid (spineRightP)); // Use the auxiliary node and make it the parent of T_r (which // becomes its left sub-tree) and spineRightP (which becomes its @@ -2905,8 +2904,8 @@ void Multiset::split (iterator po else if (_is_valid (childP)) { // Catenate T_l with the current leftTree. - CGAL_multiset_assertion (_is_valid (spineLeftP) && - _is_valid(auxLeftP)); + CGAL_assertion (_is_valid (spineLeftP) && + _is_valid(auxLeftP)); // Make sure the root of T_l is black. size_t iCurrLeftBHeight = iCurrBHeight; @@ -2919,7 +2918,7 @@ void Multiset::split (iterator po // Go down the rightmost path of leftTree until locating a black // node whose black height is exactly iCurrLeftBHeight. - CGAL_multiset_assertion (iLeftBHeight >= iCurrLeftBHeight); + CGAL_assertion (iLeftBHeight >= iCurrLeftBHeight); while (iLeftBHeight > iCurrLeftBHeight) { @@ -2930,7 +2929,7 @@ void Multiset::split (iterator po if (_is_red (spineLeftP)) spineLeftP = spineLeftP->rightP; - CGAL_multiset_assertion (_is_valid (spineLeftP)); + CGAL_assertion (_is_valid (spineLeftP)); // Use the auxiliary node and make it the parent of T_l (which // becomes its right sub-tree) and spineLeftP (which becomes its @@ -3012,7 +3011,7 @@ void Multiset::split (iterator po // It is now possible to free the path. delete[] path; - CGAL_multiset_assertion (auxLeftP == nullptr && auxRightP == nodeP); + CGAL_assertion (auxLeftP == nullptr && auxRightP == nodeP); // Fix the properties of the left tree: We know its minimal node is the // same as the current minimum. @@ -3020,7 +3019,7 @@ void Multiset::split (iterator po leftTree.beginNode.parentP->leftP = &(leftTree.beginNode); // Traverse the rightmost path of the left tree to find the its maximum. - CGAL_multiset_assertion (_is_valid (spineLeftP)); + CGAL_assertion (_is_valid (spineLeftP)); while (_is_valid (spineLeftP->rightP)) spineLeftP = spineLeftP->rightP; @@ -3130,7 +3129,7 @@ void Multiset::_shallow_clear () template void Multiset::_remove_at (Node* nodeP) { - CGAL_multiset_precondition (_is_valid (nodeP)); + CGAL_precondition (_is_valid (nodeP)); if (nodeP == rootP && ! _is_valid (rootP->leftP) && ! _is_valid (rootP->rightP)) @@ -3155,7 +3154,7 @@ void Multiset::_remove_at (Node* // which is the leftmost child in its right sub-tree and has at most // one child (it may have a right child). Node *succP = _sub_minimum (nodeP->rightP); - CGAL_multiset_assertion (_is_valid (succP)); + CGAL_assertion (_is_valid (succP)); // Now physically swap nodeP and its successor. Notice this may temporarily // violate the tree properties, but we are going to remove nodeP anyway. @@ -3169,7 +3168,7 @@ void Multiset::_remove_at (Node* if (_is_valid (nodeP->leftP)) { - CGAL_multiset_assertion (! _is_valid (nodeP->rightP)); + CGAL_assertion (! _is_valid (nodeP->rightP)); childP = nodeP->leftP; } else @@ -3247,8 +3246,8 @@ template ::_swap (Node* node1_P, Node* node2_P) { - CGAL_multiset_assertion (_is_valid (node1_P)); - CGAL_multiset_assertion (_is_valid (node2_P)); + CGAL_assertion (_is_valid (node1_P)); + CGAL_assertion (_is_valid (node2_P)); // Store the properties of the first node. typename Node::Node_color color1 = node1_P->color; @@ -3388,8 +3387,8 @@ template ::_swap_siblings (Node* node1_P, Node* node2_P) { - CGAL_multiset_assertion (_is_valid (node1_P)); - CGAL_multiset_assertion (_is_valid (node2_P)); + CGAL_assertion (_is_valid (node1_P)); + CGAL_assertion (_is_valid (node2_P)); // Store the properties of the first node. typename Node::Node_color color1 = node1_P->color; @@ -3422,7 +3421,7 @@ void Multiset::_swap_siblings (No Node *parent_P = node1_P->parentP; Node *temp; - CGAL_multiset_assertion (parent_P == node2_P->parentP); + CGAL_assertion (parent_P == node2_P->parentP); temp = parent_P->leftP; parent_P->leftP = parent_P->rightP; @@ -3464,7 +3463,7 @@ template ::_sub_height (const Node* nodeP) const { - CGAL_multiset_assertion (_is_valid (nodeP)); + CGAL_assertion (_is_valid (nodeP)); // Recursively calculate the heights of the left and right sub-trees. size_t iRightHeight = 0; @@ -3552,7 +3551,7 @@ template ::Node* Multiset::_sub_minimum (Node* nodeP) const { - CGAL_multiset_assertion (_is_valid (nodeP)); + CGAL_assertion (_is_valid (nodeP)); Node *minP = nodeP; @@ -3568,7 +3567,7 @@ template ::Node* Multiset::_sub_maximum (Node* nodeP) const { - CGAL_multiset_assertion (_is_valid (nodeP)); + CGAL_assertion (_is_valid (nodeP)); Node *maxP = nodeP; @@ -3593,7 +3592,7 @@ void Multiset::_rotate_left (Node // Get the right child of the node. Node *yNodeP = xNodeP->rightP; - CGAL_multiset_assertion (_is_valid (yNodeP)); + CGAL_assertion (_is_valid (yNodeP)); // Change its left subtree (T2) to x's right subtree. xNodeP->rightP = yNodeP->leftP; @@ -3639,7 +3638,7 @@ void Multiset::_rotate_right (Nod // Get the left child of the node. Node *xNodeP = yNodeP->leftP; - CGAL_multiset_assertion (_is_valid (xNodeP)); + CGAL_assertion (_is_valid (xNodeP)); // Change its right subtree (T2) to y's left subtree. yNodeP->leftP = xNodeP->rightP; @@ -3683,7 +3682,7 @@ template ::Node* Multiset::_duplicate (const Node* nodeP) { - CGAL_multiset_assertion (_is_valid (nodeP)); + CGAL_assertion (_is_valid (nodeP)); // Create a node of the same color, containing the same object. Node *dupNodeP = _allocate_node(nodeP->object, nodeP->color); @@ -3711,7 +3710,7 @@ Multiset::_duplicate (const Node* template void Multiset::_destroy (Node* nodeP) { - CGAL_multiset_assertion (_is_valid (nodeP)); + CGAL_assertion (_is_valid (nodeP)); // Destroy the children recursively. if (_is_valid (nodeP->rightP)) @@ -3734,7 +3733,7 @@ void Multiset::_destroy (Node* no template void Multiset::_insert_fixup (Node* nodeP) { - CGAL_multiset_precondition (_is_red (nodeP)); + CGAL_precondition (_is_red (nodeP)); // Fix the red-black propreties: we may have inserted a red leaf as the // child of a red parent - so we have to fix the coloring of the parent @@ -3748,7 +3747,7 @@ void Multiset::_insert_fixup (Nod // Get a pointer to the current node's grandparent (notice the root is // always black, so the red parent must have a parent). grandparentP = currP->parentP->parentP; - CGAL_multiset_precondition (grandparentP != nullptr); + CGAL_precondition (grandparentP != nullptr); if (currP->parentP == grandparentP->leftP) { @@ -3781,7 +3780,7 @@ void Multiset::_insert_fixup (Nod // Color the parent black and the grandparent red. currP->parentP->color = Node::BLACK; - CGAL_multiset_assertion (grandparentP == currP->parentP->parentP); + CGAL_assertion (grandparentP == currP->parentP->parentP); grandparentP->color = Node::RED; // Right-rotate the grandparent's sub-tree @@ -3819,7 +3818,7 @@ void Multiset::_insert_fixup (Nod // Color the parent black and the grandparent red. currP->parentP->color = Node::BLACK; - CGAL_multiset_assertion(grandparentP == currP->parentP->parentP); + CGAL_assertion(grandparentP == currP->parentP->parentP); grandparentP->color = Node::RED; // Left-rotate the grandparent's sub-tree @@ -3873,7 +3872,7 @@ void Multiset::_remove_fixup (Nod siblingP = currParentP->rightP; } - CGAL_multiset_assertion (_is_valid (siblingP)); + CGAL_assertion (_is_valid (siblingP)); if (_is_black (siblingP->leftP) && _is_black (siblingP->rightP)) { @@ -3889,7 +3888,7 @@ void Multiset::_remove_fixup (Nod // the black height of the entire tree. if (currP == rootP) { - CGAL_multiset_assertion (currParentP == nullptr); + CGAL_assertion (currParentP == nullptr); iBlackHeight--; } } @@ -3938,7 +3937,7 @@ void Multiset::_remove_fixup (Nod siblingP = currParentP->leftP; } - CGAL_multiset_assertion (_is_valid (siblingP)); + CGAL_assertion (_is_valid (siblingP)); if (_is_black (siblingP->leftP) && _is_black (siblingP->rightP)) { @@ -3954,7 +3953,7 @@ void Multiset::_remove_fixup (Nod // the black height of the entire tree. if (currP == rootP) { - CGAL_multiset_assertion (currParentP == nullptr); + CGAL_assertion (currParentP == nullptr); iBlackHeight--; } } @@ -4011,8 +4010,8 @@ Multiset::_allocate_node (const Type& object, typename Node::Node_color color) { - CGAL_multiset_assertion (color != Node::DUMMY_BEGIN && - color != Node::DUMMY_END); + CGAL_assertion (color != Node::DUMMY_BEGIN && + color != Node::DUMMY_END); Node* new_node = node_alloc.allocate(beginNode); new_node->init(object, color); diff --git a/STL_Extension/include/CGAL/multiset_assertions.h b/STL_Extension/include/CGAL/multiset_assertions.h deleted file mode 100644 index 89a7d6157ba..00000000000 --- a/STL_Extension/include/CGAL/multiset_assertions.h +++ /dev/null @@ -1,290 +0,0 @@ -// Copyright (c) 2005 Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Geert-Jan Giezeman, Sven Schoenherr -// -// Generated from script create_assertions.sh - - -#ifndef CGAL_MULTISET_ASSERTIONS_H -#define CGAL_MULTISET_ASSERTIONS_H - -#include - -// macro definitions -// ================= -// assertions -// ---------- - - -#if defined(CGAL_MULTISET_NO_ASSERTIONS) || defined(CGAL_NO_ASSERTIONS) -# define CGAL_multiset_assertion(EX) (static_cast(0)) -# define CGAL_multiset_assertion_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_assertion_code(CODE) -#else -# define CGAL_multiset_assertion(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_assertion_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_assertion_code(CODE) CODE -# define CGAL_multiset_assertions 1 -#endif // CGAL_MULTISET_NO_ASSERTIONS - - - -#if defined(CGAL_MULTISET_NO_ASSERTIONS) || defined(CGAL_NO_ASSERTIONS) \ - || (!defined(CGAL_MULTISET_CHECK_EXACTNESS) && !defined(CGAL_CHECK_EXACTNESS)) -# define CGAL_multiset_exactness_assertion(EX) (static_cast(0)) -# define CGAL_multiset_exactness_assertion_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_exactness_assertion_code(CODE) -#else -# define CGAL_multiset_exactness_assertion(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_exactness_assertion_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_exactness_assertion_code(CODE) CODE -# define CGAL_multiset_exactness_assertions 1 -#endif // CGAL_MULTISET_NO_ASSERTIONS - - - -#if defined(CGAL_MULTISET_NO_ASSERTIONS) \ - || defined(CGAL_NO_ASSERTIONS) \ - || (!defined(CGAL_MULTISET_CHECK_EXPENSIVE) && !defined(CGAL_CHECK_EXPENSIVE)) -# define CGAL_multiset_expensive_assertion(EX) (static_cast(0)) -# define CGAL_multiset_expensive_assertion_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_expensive_assertion_code(CODE) -#else -# define CGAL_multiset_expensive_assertion(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_expensive_assertion_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_expensive_assertion_code(CODE) CODE -# define CGAL_multiset_expensive_assertions 1 -#endif // CGAL_MULTISET_NO_ASSERTIONS - - - -#if defined(CGAL_MULTISET_NO_ASSERTIONS) || defined(CGAL_NO_ASSERTIONS) \ - || (!defined(CGAL_MULTISET_CHECK_EXACTNESS) && !defined(CGAL_CHECK_EXACTNESS))\ - || (!defined(CGAL_MULTISET_CHECK_EXPENSIVE) && !defined(CGAL_CHECK_EXPENSIVE)) -# define CGAL_multiset_expensive_exactness_assertion(EX) (static_cast(0)) -# define CGAL_multiset_expensive_exactness_assertion_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_expensive_exactness_assertion_code(CODE) -#else -# define CGAL_multiset_expensive_exactness_assertion(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_expensive_exactness_assertion_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::assertion_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_expensive_exactness_assertion_code(CODE) CODE -# define CGAL_multiset_expensive_exactness_assertions 1 -#endif // CGAL_MULTISET_NO_ASSERTIONS - - -// preconditions -// ------------- - - -#if defined(CGAL_MULTISET_NO_PRECONDITIONS) || defined(CGAL_NO_PRECONDITIONS) -# define CGAL_multiset_precondition(EX) (static_cast(0)) -# define CGAL_multiset_precondition_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_precondition_code(CODE) -#else -# define CGAL_multiset_precondition(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_precondition_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_precondition_code(CODE) CODE -# define CGAL_multiset_preconditions 1 -#endif // CGAL_MULTISET_NO_PRECONDITIONS - - - -#if defined(CGAL_MULTISET_NO_PRECONDITIONS) || defined(CGAL_NO_PRECONDITIONS) \ - || (!defined(CGAL_MULTISET_CHECK_EXACTNESS) && !defined(CGAL_CHECK_EXACTNESS)) -# define CGAL_multiset_exactness_precondition(EX) (static_cast(0)) -# define CGAL_multiset_exactness_precondition_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_exactness_precondition_code(CODE) -#else -# define CGAL_multiset_exactness_precondition(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_exactness_precondition_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_exactness_precondition_code(CODE) CODE -# define CGAL_multiset_exactness_preconditions 1 -#endif // CGAL_MULTISET_NO_PRECONDITIONS - - - -#if defined(CGAL_MULTISET_NO_PRECONDITIONS) || defined(CGAL_NO_PRECONDITIONS) \ - || (!defined(CGAL_MULTISET_CHECK_EXPENSIVE) && !defined(CGAL_CHECK_EXPENSIVE)) -# define CGAL_multiset_expensive_precondition(EX) (static_cast(0)) -# define CGAL_multiset_expensive_precondition_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_expensive_precondition_code(CODE) -#else -# define CGAL_multiset_expensive_precondition(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_expensive_precondition_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_expensive_precondition_code(CODE) CODE -# define CGAL_multiset_expensive_preconditions 1 -#endif // CGAL_MULTISET_NO_PRECONDITIONS - - - -#if defined(CGAL_MULTISET_NO_PRECONDITIONS) || defined(CGAL_NO_PRECONDITIONS) \ - || (!defined(CGAL_MULTISET_CHECK_EXACTNESS) && !defined(CGAL_CHECK_EXACTNESS))\ - || (!defined(CGAL_MULTISET_CHECK_EXPENSIVE) && !defined(CGAL_CHECK_EXPENSIVE)) -# define CGAL_multiset_expensive_exactness_precondition(EX) (static_cast(0)) -# define CGAL_multiset_expensive_exactness_precondition_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_expensive_exactness_precondition_code(CODE) -#else -# define CGAL_multiset_expensive_exactness_precondition(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_expensive_exactness_precondition_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::precondition_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_expensive_exactness_precondition_code(CODE) CODE -# define CGAL_multiset_expensive_exactness_preconditions 1 -#endif // CGAL_MULTISET_NO_PRECONDITIONS - - -// postconditions -// -------------- - - -#if defined(CGAL_MULTISET_NO_POSTCONDITIONS) || defined(CGAL_NO_POSTCONDITIONS) -# define CGAL_multiset_postcondition(EX) (static_cast(0)) -# define CGAL_multiset_postcondition_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_postcondition_code(CODE) -#else -# define CGAL_multiset_postcondition(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_postcondition_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_postcondition_code(CODE) CODE -# define CGAL_multiset_postconditions 1 -#endif // CGAL_MULTISET_NO_POSTCONDITIONS - - - -#if defined(CGAL_MULTISET_NO_POSTCONDITIONS) || defined(CGAL_NO_POSTCONDITIONS) \ - || (!defined(CGAL_MULTISET_CHECK_EXACTNESS) && !defined(CGAL_CHECK_EXACTNESS)) -# define CGAL_multiset_exactness_postcondition(EX) (static_cast(0)) -# define CGAL_multiset_exactness_postcondition_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_exactness_postcondition_code(CODE) -#else -# define CGAL_multiset_exactness_postcondition(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_exactness_postcondition_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_exactness_postcondition_code(CODE) CODE -# define CGAL_multiset_exactness_postconditions 1 -#endif // CGAL_MULTISET_NO_POSTCONDITIONS - - - -#if defined(CGAL_MULTISET_NO_POSTCONDITIONS) || defined(CGAL_NO_POSTCONDITIONS) \ - || (!defined(CGAL_MULTISET_CHECK_EXPENSIVE) && !defined(CGAL_CHECK_EXPENSIVE)) -# define CGAL_multiset_expensive_postcondition(EX) (static_cast(0)) -# define CGAL_multiset_expensive_postcondition_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_expensive_postcondition_code(CODE) -#else -# define CGAL_multiset_expensive_postcondition(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_expensive_postcondition_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_expensive_postcondition_code(CODE) CODE -# define CGAL_multiset_expensive_postconditions 1 -#endif // CGAL_MULTISET_NO_POSTCONDITIONS - - - -#if defined(CGAL_MULTISET_NO_POSTCONDITIONS) || defined(CGAL_NO_POSTCONDITIONS) \ - || (!defined(CGAL_MULTISET_CHECK_EXACTNESS) && !defined(CGAL_CHECK_EXACTNESS))\ - || (!defined(CGAL_MULTISET_CHECK_EXPENSIVE) && !defined(CGAL_CHECK_EXPENSIVE)) -# define CGAL_multiset_expensive_exactness_postcondition(EX) (static_cast(0)) -# define CGAL_multiset_expensive_exactness_postcondition_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_expensive_exactness_postcondition_code(CODE) -#else -# define CGAL_multiset_expensive_exactness_postcondition(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_expensive_exactness_postcondition_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::postcondition_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_expensive_exactness_postcondition_code(CODE) CODE -# define CGAL_multiset_expensive_exactness_postconditions 1 -#endif // CGAL_MULTISET_NO_POSTCONDITIONS - - -// warnings -// -------- - - -#if defined(CGAL_MULTISET_NO_WARNINGS) || defined(CGAL_NO_WARNINGS) -# define CGAL_multiset_warning(EX) (static_cast(0)) -# define CGAL_multiset_warning_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_warning_code(CODE) -#else -# define CGAL_multiset_warning(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_warning_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_warning_code(CODE) CODE -# define CGAL_multiset_warnings 1 -#endif // CGAL_MULTISET_NO_WARNINGS - - - -#if defined(CGAL_MULTISET_NO_WARNINGS) || defined(CGAL_NO_WARNINGS) \ - || (!defined(CGAL_MULTISET_CHECK_EXACTNESS) && !defined(CGAL_CHECK_EXACTNESS)) -# define CGAL_multiset_exactness_warning(EX) (static_cast(0)) -# define CGAL_multiset_exactness_warning_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_exactness_warning_code(CODE) -#else -# define CGAL_multiset_exactness_warning(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_exactness_warning_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_exactness_warning_code(CODE) CODE -# define CGAL_multiset_exactness_warnings 1 -#endif // CGAL_MULTISET_NO_WARNINGS - - - -#if defined(CGAL_MULTISET_NO_WARNINGS) || defined(CGAL_NO_WARNINGS) \ - || (!defined(CGAL_MULTISET_CHECK_EXPENSIVE) && !defined(CGAL_CHECK_EXPENSIVE)) -# define CGAL_multiset_expensive_warning(EX) (static_cast(0)) -# define CGAL_multiset_expensive_warning_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_expensive_warning_code(CODE) -#else -# define CGAL_multiset_expensive_warning(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_expensive_warning_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_expensive_warning_code(CODE) CODE -# define CGAL_multiset_expensive_warnings 1 -#endif // CGAL_MULTISET_NO_WARNINGS - - - -#if defined(CGAL_MULTISET_NO_WARNINGS) || defined(CGAL_NO_WARNINGS) \ - || (!defined(CGAL_MULTISET_CHECK_EXACTNESS) && !defined(CGAL_CHECK_EXACTNESS))\ - || (!defined(CGAL_MULTISET_CHECK_EXPENSIVE) && !defined(CGAL_CHECK_EXPENSIVE)) -# define CGAL_multiset_expensive_exactness_warning(EX) (static_cast(0)) -# define CGAL_multiset_expensive_exactness_warning_msg(EX,MSG) (static_cast(0)) -# define CGAL_multiset_expensive_exactness_warning_code(CODE) -#else -# define CGAL_multiset_expensive_exactness_warning(EX) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__)) -# define CGAL_multiset_expensive_exactness_warning_msg(EX,MSG) \ - (CGAL::possibly(EX)?(static_cast(0)): ::CGAL::warning_fail( # EX , __FILE__, __LINE__, MSG)) -# define CGAL_multiset_expensive_exactness_warning_code(CODE) CODE -# define CGAL_multiset_expensive_exactness_warnings 1 -#endif // CGAL_MULTISET_NO_WARNINGS - -#endif // CGAL_MULTISET_ASSERTIONS