[responding directly here as I can't see your comment on the github UI]

> I do not particularly like the idea of having two static apply methods in
> the same class here.
> I would expect to see here to see the distance struct templated by
> Geometry1, Geometry2, Strategy and then specialized for default_strategy.
>
Samuel follows what I've done in all other algorithms, and I prefer to
stick to that for consistency. That's crucial to later refactor the whole
thing.

Also, experience in BG has proven that template parameters are always
better at method level than class level - whenever you have the choice, you
should always choose the former. In this particular case I really don't see
the problem of having 2 or more apply methods, and I certainly don't want
to move anything at class level if it's not needed.

Regards
Bruno