Skip to content

functor improvements

Olli Lupton requested to merge olupton_functor_improvements into master

This fixes some minor functor-related bugs, mostly found by @cprouve (thanks!).

  • Merge Predicate.h into Function.h -- this removes the trap that while Function.h was enough to define a simple functor like ETA, Predicate.h was needed to form expressions such as ETA > 3. This was usually hidden by Predicate.h being included indirectly.
  • Patch various functor-using algorithms that used Functors::AcceptAll{} as a default cut to have a compatible default list of headers.
  • Change the functor cache generation to, hopefully, help catch bugs along these lines earlier next time. Now each functor is guaranteed to be built in a source file that contains exactly the headers that were requested.

This needs some trivial downstream changes in Moore!241 (merged) and Brunel!890 (merged) to increase the number of available functor cache source files.

(setting the number of available source files too low results in an error at stack/cache compilation time)

Edited by Marco Cattaneo

Merge request reports