## Summary of Changes
Fix issue #9058.
In `CGAL::Delaunay_triangulation_2`, replace thread_local vectors by
`std::array` on the stack.
## Release Management
* Affected package(s): Triangulation_2
* Issue(s) solved (if any): fix#9058
* License and copyright ownership: no change, maintenance by
GeometryFactory
The comparison functor passed to the constraints hierarchy has a
pointer to the `Constrained_triangulation_plus_2` that contains it.
That means the defaulted move constructor and move assignment operator of `Polyline_constraint_hierarchy_2` cannot be used to
implement the move constructor and move assignment operator of
`Constrained_triangulation_plus_2`.
Add a special constructor for `Polyline_constraint_hierarchy_2`, that is
usee to move the hierarchy and reassign the comparison operator.
It is invalid to try to detect if an iterator is singular or value-initialized.
The only operations allowed with value-initialized iterators are:
- copy the iterator, or
- destroy or assign the iterator.
Comparisons like `vertex_it == Vertex_it{}` are not allowed.
VC++ 19.16 thought there was an ambiguous call to `operator==`
between `skip_iterator` and `skip_iterator` in the internals of `boost::iterator_adaptor` (yet another matching bug) of VC++ 19.16).
I solved it by using the more modern `boost::stl_interfaces::iterator_interface` from Boost.STLintface (Boost>=1.74).
- encapsulate the creation/erasure of constraints in the hierarchy class
- add encapsulation in the hierarchy class, to detect direct uses of members
- add a test of `CDt_plus_2::insert_vertex_in_constraint`, and fix it
- rename `concatenate` and `concatenate2` to
- `concatenate`
- `prepend`
and force a rvalue reference on the argument corresponding to the constraint
that will be swallowed
- rename `split` to `split_tail` and `split2` to `split_head`
- rename `fix_contexts` to give it a longer self-explaning name
Instead of storing the hierarchy as a data member, store it
as a hidden (protected) base class. That allows to forward
member functions easily with using-declarations. That also avoids
mismatches between the names in the triangulation and the hierarchy.
- refactor the member function `enclosing_constraint`
- refactor things around `sc_to_sc_map`, using new member functions
to encapsulate the logic
- remove unused/undocuments functions