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.