Hi Samuel,
Before I go further into this, there are 2 things I'd like
you to consider:
- Could you please use the transform_variant and
compress_variant helper functions I've put in place instead
of the heavy MPL manipulations you're doing? I think that's
exactly what you were trying to do (and I agree it's the
right thing to do). You have an example in the perimeter
algorithm.
- Could you detach the handling of default strategies into an
actual resolve_strategy step? You can take examples from
various algos, it basically uses an instance of
default_strategy class in the no-strategy free function, which
is then passed along to resolve_strategy since it can only be
resolved when variants are resolved.