cgal/Point_set_processing_3
Mael Rouxel-Labbé 590ddf8015 Various fixes for pmaps:
- Use `value_type` when the returned type is not a reference
- Enforce `reference = value_type` if the returned type is not
  a reference (to avoid `typename PM::reference r = get(m, k)`,
  which will take a ref to a temporary if the `reference`
  typedef is an actualy reference)
- Do not use `put_get_helper` if the property map is not a `lvalue`
  **mutable** property map: the `put()` is `map[k] = v`, which
  is broken if `operator[]` does not return a reference
- The concept `boost::lvalue_property_map_tag` requires `operator[](key)`,
  not a reference in `get(map, key)`. You can have a readable property map
  returning a reference through its `get(map, key)`, but if there is
  no `operator[]`, it's just a `boost::readable_property_map_tag`
- Some const correctness to avoid copying maps with state
  or heavy keys in `get(map, key)` / `put(map, key, value)`
- Base the category of a wrapping pmap on what it offers instead
  of just forwarding the base property map's category
- Tried to do something like mutable lvalue pmap:
  * `value_type& operator[](key&)`
  * `ref get(map, const key&)`
  * `put(map, const key&, const value_type&)`
  and non-mutable lvalue pmap:
  * `const value_type& operator[](const key&)`
  * `ref get(map, const key&)`
  but not everything fits properly...
2021-10-08 15:38:47 +02:00
..
doc/Point_set_processing_3 User manual 2020-10-07 12:03:32 +02:00
examples/Point_set_processing_3 Merge remote-tracking branch 'cgal/5.1.x-branch' into HEAD 2021-04-17 11:11:28 +02:00
include/CGAL Various fixes for pmaps: 2021-10-08 15:38:47 +02:00
package_info/Point_set_processing_3 Fix dependencies 2018-03-30 11:33:34 +02:00
test/Point_set_processing_3 Merge branch 'CGAL-Eigen3_support-5.1' 2021-01-15 10:54:02 +01:00