// Boost.Geometry // Copyright (c) 2021, Oracle and/or its affiliates. // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle // Licensed under the Boost Software License version 1.0. // http://www.boost.org/users/license.html #ifndef BOOST_GEOMETRY_ALGORITHS_DETAIL_DISTANCE_STRATEGY_UTILS_HPP #define BOOST_GEOMETRY_ALGORITHS_DETAIL_DISTANCE_STRATEGY_UTILS_HPP #include #include #include namespace boost { namespace geometry { #ifndef DOXYGEN_NO_DETAIL namespace detail { namespace distance { template using strategy_t = decltype( std::declval().distance(std::declval(), std::declval())); template using return_t = typename strategy::distance::services::return_type < strategy_t, typename point_type::type, typename point_type::type >::type; template using cstrategy_t = typename strategy::distance::services::comparable_type < strategy_t >::type; template using creturn_t = typename strategy::distance::services::return_type < cstrategy_t, typename point_type::type, typename point_type::type >::type; }} // namespace detail::distance #endif // DOXYGEN_NO_DETAIL }} // namespace boost::geometry #endif // BOOST_GEOMETRY_ALGORITHS_DETAIL_DISTANCE_STRATEGY_UTILS_HPP