right after the merge of the 5.0 release branch
+ manual fix of the files (indentation was changed in the meantime):
* Spatial_sorting/include/CGAL/Multiscale_sort.h
* Spatial_sorting/test/Spatial_sorting/test_multiscale.cpp
right after the merge of 4.14 release branch
+ manual fix on one line in:
* Arrangement_on_surface_2/include/CGAL/IO/Arr_text_formatter.h
* .travis/generate_travis.sh
GetInitialized... should be used instead.
Complete removal instead of simply doing:
struct GetVertexIndexMap
: public GetInitializedVertexIndexMap
{ }
because there will anyway be a need to update code on the right side of
GetVertexIndexMap fim = ...
and it's more obvious if it breaks on the type directly.
Note the following:
'lvalue_pmap_tag' is annoying, because the property map is allowed to be non-mutable,
but boost::lvalue_property_map_tag is !always! defined as:
struct lvalue_property_map_tag : public read_write_property_map_tag
so we can't just check that 'writable_property_map_tag' is a base of the the pmap's category.
Instead, this struct checks if the reference is non-const, which is not completely correct:
map[key] returning a non-const reference doesn't mean that 'put(map, key, val)' exists,
which is what a writable property map must define.
The previous (and only) overload of choose_parameter required two parameters,
with the default parameter often being a default constructed object
of type the type of the object being passed in named parameter.
For example:
typedef typename CGAL::GetPointMap<PointRange, NamedParameters>::type Point_map;
Point_map pm = choose_parameter(get_parameter(np, internal_np::point_map),
Point_map());
However, this can be unpleasant, for example when passing functors that have
an underlying lambda such (function_property_map, ...) because lambdas
cannot be default constructed.
With the new API:
typedef typename CGAL::GetPointMap<PointRange, NamedParameters>::type Point_map;
Point_map pm = choose_parameter<Point_map>(get_parameter(np, internal_np::point_map));
all is well.