...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 CalculationType, typename Strategy> class strategy::distance::projected_point { // ... };
Parameter 
Default 
Description 

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<CalculationType> 
underlying pointpoint distance strategy 
Function 
Description 
Parameters 
Returns 

template<typename Point, typename PointOfSegment> calculation_type< Point, PointOfSegment >::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>