Skip to content

v1.3.0

Compare
Choose a tag to compare
@tzaeschke tzaeschke released this 28 Aug 12:18

This release contains a few bug fixes and numerous improvements mostly related to performance. Notably:

  • New relocate() and relocate_if() functions for faster "moving" of entries from one coordinate to another
  • New try_emplace() functions analogous to try_emplace() in std::map etc.
  • Proper support for cmake with Visual Studio 2019 (except benchmarks).

See CHANGELOG

What's Changed

Added

  • Added flag to relocate() allow short cutting in case of identical keys. #68
  • Added tested support for move-only and copy-only value objects. #56
  • Added custom bucket implementation (similar to std::unordered_set). This improves update performance by 5%-20%. #44
  • Added PhTree.relocate(old_key, new_key) and PhTree.relocate_if(old_key, new_key, predicate). This is a lot faster than using other methods. #43
  • Added try_emplace(key, value) and try_emplace(iter_hint, key, value) #40
  • Added FilterBoxAABB and FilterSphereAABB as examples for filtering a PH-Tree with box keys #33

Changed

  • Moved tests and benchmarks into separate folders. #67
  • Cleaned up unit tests. #54
  • Simplified internals of erase(). #47
  • Removed internal use of std::optional() to slightly reduce memory overhead #38
  • Removed restrictions on bazel version #35
  • API BREAKING CHANGE: API of filters have been changed to be more correct, explicit and flexible. #21
    • Correctness: Converters and distance functions are not copied unnecessarily anymore.
    • Explicit: Filters must have a mandatory parameter for a converter reference. This ensures that the correct converter is used, probably tree.converter().
    • Flexible: Distance functions can be provided through a universal reference (forwarding reference). Also, filters are now movable and copyable.
  • API BREAKING CHANGE: Allow filtering on buckets in multimaps. Multimap filters have different functions
    and function signatures than normal PhTree filters. #26

Fixed

  • Fixed compiler warnings when compiling with Visual Studio 2019. #74
  • Fixed cmake to work with Visual Studio 2019. Added tests and benchmarks to cmake. (benchmarks still do not work with VS at the moment). #62
  • Fixed compilation problems and a memory leak when compiling with Visual Studio 2019. (also added msan support). #64

Full Changelog: v1.2.0...v1.3.0