...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Strategy for distance point to segment.
Calculates distance using projectedpoint method, and (optionally) Pythagoras
template<typename Point, typename PointOfSegment, typename CalculationType, typename Strategy> class strategy::distance::projected_point { // ... };
Parameter 
Default 
Description 

typename Point 
Any type fulfilling a Point Concept 

typename PointOfSegment 
Point 
segment point type 
typename CalculationType 
void 
numeric type for calculation (e.g. high precision); if void then it is extracted automatically from the coordinate type and (if necessary) promoted to floating point 
typename Strategy 
pythagoras<Point, PointOfSegment, CalculationType> 
underlying pointpoint distance strategy 
Function 
Description 
Parameters 
Returns 

calculation_type apply(Point const & p, PointOfSegment const & p1, PointOfSegment const & p2)

Point const &: p: PointOfSegment const &: p1: PointOfSegment const &: p2: 
#include <boost/geometry/strategies/cartesian/distance_projected_point.hpp>