Various improvement of Functor framework implementation
- drop backwards compatible code which allowed compilation with C++17; now require at least C++20
- constrain template arguments with concepts
- replace
enable_ifSFINAE tricks withrequires - drop the internal (and expensive to compile!)
preparedwrapper which adds some overloads to the call operator, and instead use a lambda which forwards to a dedicated, overloadedinvokefunction which does the wrapping - generalize
Flattento work with any range-of-ranges (not just vector-of-vector) - streamline
Filterfunctor implementation - improve
Tupletimplementation - streamline
FunctorArgparsing - improve
ParticlePropertyUserfunctor -- no longer needs to be template, instead use avariantto represent the two allowed representations of its state - drop some redundant
deref_if_ptrhacks - prefer
COUNT_IF(predicate)overSIZE_OF @ FILTER(predicate)
goes together with DaVinci!1190 (merged)
Edited by Gerhard Raven