Skip to content

Various improvement of Functor framework implementation

Gerhard Raven requested to merge tweak-functors-4 into master
  • drop backwards compatible code which allowed compilation with C++17; now require at least C++20
  • constrain template arguments with concepts
  • replace enable_if SFINAE tricks with requires
  • drop the internal (and expensive to compile!) prepared wrapper which adds some overloads to the call operator, and instead use a lambda which forwards to a dedicated, overloaded invoke function which does the wrapping
  • generalize Flatten to work with any range-of-ranges (not just vector-of-vector)
  • streamline Filter functor implementation
  • improve Tuplet implementation
  • streamline FunctorArg parsing
  • improve ParticlePropertyUser functor -- no longer needs to be template, instead use a variant to represent the two allowed representations of its state
  • drop some redundant deref_if_ptr hacks
  • prefer COUNT_IF(predicate) over SIZE_OF @ FILTER(predicate)

goes together with DaVinci!1190 (merged)

Edited by Gerhard Raven

Merge request reports

Loading