/usr/include/boost/geometry/util
Edit: /usr/include/boost/geometry/util/select_sequence_element.hpp (2052B)
// Boost.Geometry
// Copyright (c) 2017 Adam Wulkiewicz, Lodz, Poland.
// Use, modification and distribution is subject to the Boost Software License,
// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#ifndef BOOST_GEOMETRY_UTIL_SELECT_SEQUENCE_ELEMENT
#define BOOST_GEOMETRY_UTIL_SELECT_SEQUENCE_ELEMENT
#include
#include
#include
#include
#include
#include
#include
namespace boost { namespace geometry
{
namespace util
{
template
struct pred_more_precise_coordinate_type
{
typedef typename geometry::coordinate_type::type curr_coord_t;
typedef typename geometry::coordinate_type::type next_coord_t;
typedef typename boost::mpl::if_c
<
boost::is_same
<
curr_coord_t,
typename select_most_precise
<
curr_coord_t,
next_coord_t
>::type
>::value,
Curr,
Next
>::type type;
};
template
<
typename Seq,
template class Pred = pred_more_precise_coordinate_type,
int I = 0,
int N = boost::mpl::size::value
>
struct select_sequence_element
{
typedef typename boost::mpl::at >::type curr_t;
typedef typename select_sequence_element::type next_t;
typedef typename Pred::type type;
};
template class Pred, int N>
struct select_sequence_element
{
typedef typename boost::mpl::at >::type type;
};
} // namespace util
}} // namespace boost::geometry
#endif // BOOST_GEOMETRY_UTIL_SELECT_SEQUENCE_ELEMENT