chore: replace typename tag / cs_tag with tag_t / cs_tag_t

This commit is contained in:
Barend Gehrels 2024-10-30 15:44:17 +01:00
parent 08a71cf124
commit 7d4c687fd8
250 changed files with 589 additions and 594 deletions

View File

@ -46,8 +46,8 @@ namespace dispatch
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename tag<Geometry1>::type,
typename Tag2 = typename tag<Geometry2>::type
typename Tag1 = tag_t<Geometry1>,
typename Tag2 = tag_t<Geometry2>
>
struct azimuth : not_implemented<Tag1, Tag2>
{};

View File

@ -48,8 +48,8 @@ template
<
typename Geometry1,
typename Geometry2,
typename Tag1 = typename tag<Geometry1>::type,
typename Tag2 = typename tag<Geometry2>::type
typename Tag1 = tag_t<Geometry1>,
typename Tag2 = tag_t<Geometry2>
>
struct crosses
: detail::relate::relate_impl
@ -215,8 +215,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct crosses
{

View File

@ -170,8 +170,8 @@ template
<
typename Geometry,
typename GeometryOut,
typename Tag1 = typename tag<Geometry>::type,
typename Tag2 = typename tag<GeometryOut>::type
typename Tag1 = tag_t<Geometry>,
typename Tag2 = tag_t<GeometryOut>
>
struct densify
: not_implemented<Tag1, Tag2>
@ -360,7 +360,7 @@ struct densify<default_strategy, false>
namespace resolve_dynamic {
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct densify
{
template <typename Distance, typename Strategy>

View File

@ -873,10 +873,7 @@ struct buffer_inserter<multi_tag, Multi, PolygonOutput>
PolygonOutput,
dispatch::buffer_inserter
<
typename single_tag_of
<
typename tag<Multi>::type
>::type,
typename single_tag_of<tag_t<Multi>>::type,
typename boost::range_value<Multi const>::type,
typename geometry::ring_type<PolygonOutput>::type
>

View File

@ -447,7 +447,7 @@ struct buffered_piece_collection
// Check if turns are inside pieces
turn_in_piece_visitor
<
typename geometry::cs_tag<point_type>::type,
geometry::cs_tag_t<point_type>,
turn_vector_type, piece_vector_type, DistanceStrategy, Strategy
> visitor(m_turns, m_pieces, m_distance_strategy, m_strategy);

View File

@ -108,7 +108,7 @@ namespace traits
template <typename Ring>
struct tag<geometry::detail::buffer::buffered_ring<Ring> >
{
typedef ring_tag type;
using type = ring_tag;
};
@ -177,7 +177,7 @@ struct point_order<detail::buffer::buffered_ring_collection_tag,
template <>
struct single_tag_of<detail::buffer::buffered_ring_collection_tag>
{
typedef ring_tag type;
using type = ring_tag;
};

View File

@ -38,8 +38,8 @@ template
<
typename Input,
typename Output,
typename TagIn = typename tag<Input>::type,
typename TagOut = typename tag<Output>::type
typename TagIn = tag_t<Input>,
typename TagOut = tag_t<Output>
>
struct buffer_dc : not_implemented<TagIn, TagOut>
{};
@ -48,8 +48,8 @@ template
<
typename Input,
typename Output,
typename TagIn = typename tag<Input>::type,
typename TagOut = typename tag<Output>::type
typename TagIn = tag_t<Input>,
typename TagOut = tag_t<Output>
>
struct buffer_all : not_implemented<TagIn, TagOut>
{};
@ -64,7 +64,7 @@ namespace resolve_dynamic
template
<
typename Input,
typename TagIn = typename geometry::tag<Input>::type
typename TagIn = geometry::tag_t<Input>
>
struct buffer_dc
{
@ -101,7 +101,7 @@ struct buffer_dc<Input, dynamic_geometry_tag>
template
<
typename Input,
typename TagIn = typename geometry::tag<Input>::type
typename TagIn = geometry::tag_t<Input>
>
struct buffer_all
{

View File

@ -345,10 +345,10 @@ inline geometry::order_selector calculate_point_order(Ring const& ring, Strategy
template <typename Ring>
inline geometry::order_selector calculate_point_order(Ring const& ring)
{
typedef typename strategy::point_order::services::default_strategy
using strategy_type = typename strategy::point_order::services::default_strategy
<
typename geometry::cs_tag<Ring>::type
>::type strategy_type;
geometry::cs_tag_t<Ring>
>::type;
concepts::check<Ring const>();

View File

@ -253,7 +253,7 @@ template
typename MultiGeometry,
bool CheckCoveredBy = std::is_same
<
typename tag<MultiGeometry>::type, multi_polygon_tag
tag_t<MultiGeometry>, multi_polygon_tag
>::value
>
class point_to_multigeometry
@ -429,7 +429,7 @@ struct closest_points
> : closest_points
<
Point, Linear,
point_tag, typename tag<Linear>::type, false
point_tag, tag_t<Linear>, false
>
{};
@ -441,7 +441,7 @@ struct closest_points
> : closest_points
<
Point, Areal,
point_tag, typename tag<Areal>::type, false
point_tag, tag_t<Areal>, false
>
{};

View File

@ -124,8 +124,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct comparable_distance
{

View File

@ -128,7 +128,7 @@ private:
// TODO: Or just implement point_type<> for GeometryCollection
// and enforce the same point_type used in the whole sequence in check().
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct default_strategy
{
using type = typename strategies::convex_hull::services::default_strategy
@ -201,7 +201,7 @@ namespace dispatch
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct convex_hull
{
@ -304,7 +304,7 @@ private:
};
template <typename OutputGeometry, typename Tag = typename tag<OutputGeometry>::type>
template <typename OutputGeometry, typename Tag = tag_t<OutputGeometry>>
struct convex_hull_out
{
BOOST_GEOMETRY_STATIC_ASSERT_FALSE("This OutputGeometry is not supported.", OutputGeometry, Tag);
@ -531,7 +531,7 @@ struct convex_hull<default_strategy>
namespace resolve_dynamic {
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct convex_hull
{
template <typename OutputGeometry, typename Strategy>

View File

@ -38,8 +38,8 @@ template
<
typename Geometry1,
typename Geometry2,
typename Tag1 = typename tag<Geometry1>::type,
typename Tag2 = typename tag<Geometry2>::type
typename Tag1 = tag_t<Geometry1>,
typename Tag2 = tag_t<Geometry2>
>
struct covered_by
: not_implemented<Tag1, Tag2>
@ -122,8 +122,8 @@ namespace resolve_dynamic {
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct covered_by
{

View File

@ -249,7 +249,7 @@ struct direction_code_impl<spherical_tag>
<
std::is_same
<
typename geometry::cs_tag<PointSegmentA>::type,
geometry::cs_tag_t<PointSegmentA>,
spherical_polar_tag
>::value,
spherical_polar_tag,

View File

@ -130,7 +130,7 @@ template
<
typename Segment,
typename Areal,
typename Tag = typename tag<Areal>::type
typename Tag = tag_t<Areal>
>
struct disjoint_segment_areal
: not_implemented<Segment, Areal>

View File

@ -111,8 +111,8 @@ struct disjoint_linear
disjoint_interrupt_policy interrupt_policy;
dispatch::get_turns
<
typename geometry::tag<Geometry1>::type,
typename geometry::tag<Geometry2>::type,
geometry::tag_t<Geometry1>,
geometry::tag_t<Geometry2>,
Geometry1,
Geometry2,
overlay::do_reverse<geometry::point_order<Geometry1>::value>::value, // should be false

View File

@ -45,7 +45,7 @@ namespace detail { namespace disjoint
template
<
typename SegmentOrBox,
typename Tag = typename tag<SegmentOrBox>::type
typename Tag = tag_t<SegmentOrBox>
>
struct disjoint_point_segment_or_box
: not_implemented<Tag>
@ -135,7 +135,7 @@ template
<
typename Linear,
typename SegmentOrBox,
typename Tag = typename tag<Linear>::type
typename Tag = tag_t<Linear>
>
struct disjoint_linear_segment_or_box
: not_implemented<Linear, SegmentOrBox>

View File

@ -461,7 +461,7 @@ public:
};
template <typename MultiPoint, typename Areal, typename Tag = typename tag<Areal>::type>
template <typename MultiPoint, typename Areal, typename Tag = tag_t<Areal>>
struct multipoint_areal
: multi_point_single_geometry<MultiPoint, Areal>
{};

View File

@ -51,7 +51,7 @@ namespace detail { namespace distance
template
<
typename SegmentOrBox,
typename Tag = typename tag<SegmentOrBox>::type
typename Tag = tag_t<SegmentOrBox>
>
struct segment_or_box_point_range_closure
: not_implemented<SegmentOrBox>
@ -76,7 +76,7 @@ template
typename Geometry,
typename SegmentOrBox,
typename Strategies,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
class geometry_to_segment_or_box
{
@ -97,7 +97,7 @@ private:
template
<
typename SegOrBox,
typename SegOrBoxTag = typename tag<SegOrBox>::type
typename SegOrBoxTag = tag_t<SegOrBox>
>
struct assign_new_min_iterator
: not_implemented<SegOrBox>
@ -128,7 +128,7 @@ private:
<
typename SegOrBox,
typename PointRange,
typename SegOrBoxTag = typename tag<SegOrBox>::type
typename SegOrBoxTag = tag_t<SegOrBox>
>
struct assign_segment_or_box_points
{};

View File

@ -187,8 +187,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct distance
{

View File

@ -27,7 +27,7 @@ namespace detail { namespace distance
// class to choose between point_iterator and segment_iterator
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct iterator_selector
{
typedef geometry::segment_iterator<Geometry> iterator_type;

View File

@ -315,10 +315,7 @@ template
typename Point,
typename MultiGeometry,
typename Strategies,
bool CheckCoveredBy = std::is_same
<
typename tag<MultiGeometry>::type, multi_polygon_tag
>::value
bool CheckCoveredBy = std::is_same<tag_t<MultiGeometry>, multi_polygon_tag>::value
>
class point_to_multigeometry
{
@ -509,7 +506,7 @@ struct distance
> : distance
<
Point, Linear, Strategy,
point_tag, typename tag<Linear>::type,
point_tag, tag_t<Linear>,
strategy_tag_distance_point_segment, false
>
{};
@ -523,7 +520,7 @@ struct distance
> : distance
<
Point, Areal, Strategy,
point_tag, typename tag<Areal>::type,
point_tag, tag_t<Areal>,
strategy_tag_distance_point_segment, false
>
{};

View File

@ -39,15 +39,15 @@ struct dummy_multi_polygon {};
namespace traits
{
template <> struct tag<geometry::detail::dummy_point> { typedef point_tag type; };
template <> struct tag<geometry::detail::dummy_segment> { typedef segment_tag type; };
template <> struct tag<geometry::detail::dummy_box> { typedef box_tag type; };
template <> struct tag<geometry::detail::dummy_linestring> { typedef linestring_tag type; };
template <> struct tag<geometry::detail::dummy_ring> { typedef ring_tag type; };
template <> struct tag<geometry::detail::dummy_polygon> { typedef polygon_tag type; };
template <> struct tag<geometry::detail::dummy_multi_point> { typedef multi_point_tag type; };
template <> struct tag<geometry::detail::dummy_multi_linestring> { typedef multi_linestring_tag type; };
template <> struct tag<geometry::detail::dummy_multi_polygon> { typedef multi_polygon_tag type; };
template <> struct tag<geometry::detail::dummy_point> { using type = point_tag; };
template <> struct tag<geometry::detail::dummy_segment> { using type = segment_tag; };
template <> struct tag<geometry::detail::dummy_box> { using type = box_tag; };
template <> struct tag<geometry::detail::dummy_linestring> { using type = linestring_tag; };
template <> struct tag<geometry::detail::dummy_ring> { using type = ring_tag; };
template <> struct tag<geometry::detail::dummy_polygon> { using type = polygon_tag; };
template <> struct tag<geometry::detail::dummy_multi_point> { using type = multi_point_tag; };
template <> struct tag<geometry::detail::dummy_multi_linestring> { using type = multi_linestring_tag; };
template <> struct tag<geometry::detail::dummy_multi_polygon> { using type = multi_polygon_tag; };
} // namespace traits

View File

@ -100,7 +100,7 @@ struct envelope<default_strategy, false>
namespace resolve_dynamic
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct envelope
{
template <typename Box, typename Strategy>

View File

@ -37,8 +37,8 @@ template
<
typename GeometryIn,
typename GeometryOut,
typename TagIn = typename tag<GeometryIn>::type,
typename TagOut = typename tag<GeometryOut>::type
typename TagIn = tag_t<GeometryIn>,
typename TagOut = tag_t<GeometryOut>
>
struct transform_units_impl
: not_implemented<TagIn, TagOut>

View File

@ -504,7 +504,7 @@ inline void collect_vectors(Collection& collection, Geometry const& geometry)
dispatch::collect_vectors
<
typename tag<Geometry>::type,
tag_t<Geometry>,
Collection,
Geometry
>::apply(collection, geometry);

View File

@ -159,8 +159,8 @@ namespace resolve_dynamic {
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct equals
{

View File

@ -101,7 +101,7 @@ struct expand<default_strategy, false>
namespace resolve_dynamic
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct expand
{
template <typename Box, typename Strategy>

View File

@ -393,7 +393,7 @@ template
<
typename Geometry,
std::size_t Dimension,
typename GeometryTag = typename tag<Geometry>::type
typename GeometryTag = tag_t<Geometry>
>
struct extreme_points
{};

View File

@ -133,7 +133,7 @@ namespace dispatch
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct for_each_range
{

View File

@ -44,8 +44,8 @@ struct gc_can_convert_element
template <typename G>
using has_same_tag_as_single = std::is_same
<
typename geometry::tag<G>::type,
typename geometry::tag<typename boost::range_value<Multi>::type>::type
geometry::tag_t<G>,
geometry::tag_t<typename boost::range_value<Multi>::type>
>;
using gc_types = typename traits::geometry_types<GC>::type;
using found_type = typename util::sequence_find_if<gc_types, has_same_tag_as_single>::type;

View File

@ -37,8 +37,8 @@ namespace dispatch
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type,
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>,
bool Reverse = reverse_dispatch<Geometry1, Geometry2>::type::value
>
struct intersection
@ -109,9 +109,9 @@ namespace resolve_collection
template
<
typename Geometry1, typename Geometry2, typename GeometryOut,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type,
typename TagOut = typename geometry::tag<GeometryOut>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>,
typename TagOut = geometry::tag_t<GeometryOut>
>
struct intersection
{
@ -216,8 +216,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct intersection
{

View File

@ -43,7 +43,7 @@ namespace detail { namespace is_simple
#ifdef BOOST_GEOMETRY_TEST_DEBUG
template <typename Linear, typename Tag = typename tag<Linear>::type>
template <typename Linear, typename Tag = tag_t<Linear>>
struct debug_boundary_points_printer
: not_implemented<Linear>
{};

View File

@ -80,7 +80,7 @@ template
<
typename Geometry,
typename Strategy,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
class is_acceptable_turn
: not_implemented<Geometry>

View File

@ -24,7 +24,7 @@ namespace boost { namespace geometry
namespace detail { namespace is_valid
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct debug_validity_phase
{
static inline void apply(int)

View File

@ -106,7 +106,7 @@ struct range_has_invalid_coordinate
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type,
typename Tag = tag_t<Geometry>,
bool HasFloatingPointCoordinates = std::is_floating_point
<
coordinate_type_t<Geometry>

View File

@ -92,7 +92,7 @@ struct is_valid<default_strategy, false>
namespace resolve_dynamic
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct is_valid
{
template <typename VisitPolicy, typename Strategy>

View File

@ -33,7 +33,7 @@ template
<
typename Geometry,
order_selector Order = geometry::point_order<Geometry>::value,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct acceptable_operation
{};
@ -69,7 +69,7 @@ struct acceptable_operation<MultiPolygon, clockwise, multi_polygon_tag>
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct is_acceptable_turn
{};

View File

@ -453,10 +453,10 @@ public:
else // else prevents unreachable code warning
{
// compute turns and check if all are acceptable
typedef debug_validity_phase<Polygon> debug_phase;
using debug_phase = debug_validity_phase<Polygon>;
debug_phase::apply(3);
typedef has_valid_self_turns<Polygon, typename Strategy::cs_tag> has_valid_turns;
using has_valid_turns = has_valid_self_turns<Polygon, typename Strategy::cs_tag>;
std::deque<typename has_valid_turns::turn_type> turns;
bool has_invalid_turns

View File

@ -46,8 +46,8 @@ template
<
typename Geometry1,
typename Geometry2,
typename Tag1 = typename tag<Geometry1>::type,
typename Tag2 = typename tag<Geometry2>::type
typename Tag1 = tag_t<Geometry1>,
typename Tag2 = tag_t<Geometry2>
>
struct overlaps
: detail::relate::relate_impl
@ -131,8 +131,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct overlaps
{

View File

@ -48,9 +48,9 @@ inline void convert_and_add(GeometryOut& result,
ring_identifier id,
bool reversed, bool append)
{
typedef typename geometry::tag<Geometry1>::type tag1;
typedef typename geometry::tag<Geometry2>::type tag2;
typedef typename geometry::tag<GeometryOut>::type tag_out;
using tag1 = geometry::tag_t<Geometry1>;
using tag2 = geometry::tag_t<Geometry2>;
using tag_out = geometry::tag_t<GeometryOut>;
if (id.source_index == 0)
{

View File

@ -57,8 +57,8 @@ static inline bool within_selected_input(Item const& item2,
RingCollection const& collection,
Strategy const& strategy)
{
typedef typename geometry::tag<Geometry1>::type tag1;
typedef typename geometry::tag<Geometry2>::type tag2;
using tag1 = geometry::tag_t<Geometry1>;
using tag2 = geometry::tag_t<Geometry2>;
// NOTE: range_in_geometry first checks the item2.point and then
// if this point is on boundary it checks points of inner_geometry
@ -92,8 +92,8 @@ static inline bool within_selected_input(Item const& item2,
RingCollection const& collection,
Strategy const& strategy)
{
typedef typename geometry::tag<Geometry1>::type tag1;
typedef typename geometry::tag<Geometry2>::type tag2;
using tag1 = geometry::tag_t<Geometry1>;
using tag2 = geometry::tag_t<Geometry2>;
switch (inner_id.source_index)
{
@ -254,16 +254,16 @@ inline void assign_parents(Geometry1 const& geometry1,
static bool const is_dissolve = OverlayType == overlay_dissolve;
static bool const check_for_orientation = is_buffer || is_dissolve;
typedef typename geometry::tag<Geometry1>::type tag1;
typedef typename geometry::tag<Geometry2>::type tag2;
using tag1 = geometry::tag_t<Geometry1>;
using tag2 = geometry::tag_t<Geometry2>;
typedef typename RingMap::mapped_type ring_info_type;
typedef typename ring_info_type::point_type point_type;
typedef model::box<point_type> box_type;
typedef typename geometry::area_result
using ring_info_type = typename RingMap::mapped_type;
using point_type = typename ring_info_type::point_type;
using box_type = model::box<point_type>;
using area_result_type = typename geometry::area_result
<
point_type, Strategy // TODO: point_type is technically incorrect
>::type area_result_type;
>::type;
{
std::size_t count_total = ring_map.size();

View File

@ -26,7 +26,7 @@ template
<
typename Point,
typename CoordinateType = geometry::coordinate_type_t<Point>,
typename CsTag = typename geometry::cs_tag<Point>::type,
typename CsTag = geometry::cs_tag_t<Point>,
bool IsIntegral = std::is_integral<CoordinateType>::value
>
struct cluster_colocator

View File

@ -288,7 +288,7 @@ inline bool copy_segment_point(Geometry const& geometry,
return dispatch::copy_segment_point
<
typename tag<Geometry>::type,
tag_t<Geometry>,
Geometry,
Reverse,
SegmentIdentifier,
@ -322,7 +322,7 @@ inline bool copy_segment_point(Geometry1 const& geometry1, Geometry2 const& geom
{
return dispatch::copy_segment_point
<
typename tag<Geometry1>::type,
tag_t<Geometry1>,
Geometry1,
Reverse1,
SegmentIdentifier,
@ -333,7 +333,7 @@ inline bool copy_segment_point(Geometry1 const& geometry1, Geometry2 const& geom
{
return dispatch::copy_segment_point
<
typename tag<Geometry2>::type,
tag_t<Geometry2>,
Geometry2,
Reverse2,
SegmentIdentifier,

View File

@ -349,7 +349,7 @@ inline void copy_segments(Geometry const& geometry,
dispatch::copy_segments
<
typename tag<Geometry>::type,
tag_t<Geometry>,
Reverse
>::apply(geometry, seg_id, to_index, strategy, range_out);
}

View File

@ -164,7 +164,7 @@ inline bool is_touching(Turn const& turn, Operation const& op,
template
<
typename GeometryOut,
typename Tag = typename geometry::tag<GeometryOut>::type
typename Tag = geometry::tag_t<GeometryOut>
>
struct add_isolated_point
{};

View File

@ -499,7 +499,7 @@ template
overlay_type OverlayType,
bool FollowIsolatedPoints,
bool FollowContinueTurns,
typename TagIn1 = typename tag<Geometry1>::type
typename TagIn1 = tag_t<Geometry1>
>
struct follow
: not_implemented<Geometry1>

View File

@ -110,16 +110,16 @@ inline void get_intersection_points(Geometry1 const& geometry1,
reverse_dispatch<Geometry1, Geometry2>::type::value,
dispatch::get_turns_reversed
<
typename tag<Geometry1>::type,
typename tag<Geometry2>::type,
tag_t<Geometry1>,
tag_t<Geometry2>,
Geometry1, Geometry2,
false, false,
TurnPolicy
>,
dispatch::get_turns
<
typename tag<Geometry1>::type,
typename tag<Geometry2>::type,
tag_t<Geometry1>,
tag_t<Geometry2>,
Geometry1, Geometry2,
false, false,
TurnPolicy

View File

@ -122,7 +122,7 @@ template <typename Geometry>
inline signed_size_type segment_count_on_ring(Geometry const& geometry,
ring_identifier const& ring_id)
{
using tag = typename geometry::tag<Geometry>::type;
using tag = geometry::tag_t<Geometry>;
// A closed polygon, a triangle of 4 points, including starting point,
// contains 3 segments. So handle as if it is closed, and subtract one.

View File

@ -167,18 +167,18 @@ class intersection_info
: public intersection_info_base<UniqueSubRange1, UniqueSubRange2,
TurnPoint, UmbrellaStrategy>
{
typedef intersection_info_base<UniqueSubRange1, UniqueSubRange2,
TurnPoint, UmbrellaStrategy> base;
using base = intersection_info_base<UniqueSubRange1, UniqueSubRange2,
TurnPoint, UmbrellaStrategy>;
public:
typedef typename UmbrellaStrategy::cs_tag cs_tag;
using cs_tag = typename UmbrellaStrategy::cs_tag;
typedef typename base::side_calculator_type side_calculator_type;
typedef typename base::result_type result_type;
using side_calculator_type = typename base::side_calculator_type;
using result_type = typename base::result_type;
typedef typename result_type::intersection_points_type i_info_type;
typedef typename result_type::direction_type d_info_type;
using i_info_type = typename result_type::intersection_points_type;
using d_info_type = typename result_type::direction_type;
intersection_info(UniqueSubRange1 const& range_p,
UniqueSubRange2 const& range_q,

View File

@ -815,9 +815,15 @@ struct topological_tag_base
using type = tag_cast_t<tag_t<Geometry>, pointlike_tag, linear_tag, areal_tag>;
};
template <typename Geometry1, typename Geometry2, typename AssignPolicy,
typename Tag1 = typename tag<Geometry1>::type, typename Tag2 = typename tag<Geometry2>::type,
typename TagBase1 = typename topological_tag_base<Geometry1>::type, typename TagBase2 = typename topological_tag_base<Geometry2>::type>
template
<
typename Geometry1, typename Geometry2,
typename AssignPolicy,
typename Tag1 = tag_t<Geometry1>,
typename Tag2 = tag_t<Geometry2>,
typename TagBase1 = typename topological_tag_base<Geometry1>::type,
typename TagBase2 = typename topological_tag_base<Geometry2>::type
>
struct get_turn_info_type
: overlay::get_turn_info<AssignPolicy>
{};
@ -833,8 +839,9 @@ struct get_turn_info_type<Geometry1, Geometry2, AssignPolicy, Tag1, Tag2, linear
{};
template <typename Geometry1, typename Geometry2, typename Point, typename SegmentRatio,
typename Tag1 = typename tag<Geometry1>::type, typename Tag2 = typename tag<Geometry2>::type,
typename TagBase1 = typename topological_tag_base<Geometry1>::type, typename TagBase2 = typename topological_tag_base<Geometry2>::type>
typename Tag1 = tag_t<Geometry1>, typename Tag2 = tag_t<Geometry2>,
typename TagBase1 = typename topological_tag_base<Geometry1>::type,
typename TagBase2 = typename topological_tag_base<Geometry2>::type>
struct turn_operation_type
{
using type = overlay::turn_operation<Point, SegmentRatio>;
@ -1017,16 +1024,16 @@ inline void get_turns(Geometry1 const& geometry1,
reverse_dispatch<Geometry1, Geometry2>::type::value,
dispatch::get_turns_reversed
<
typename tag<Geometry1>::type,
typename tag<Geometry2>::type,
tag_t<Geometry1>,
tag_t<Geometry2>,
Geometry1, Geometry2,
Reverse1, Reverse2,
TurnPolicy
>,
dispatch::get_turns
<
typename tag<Geometry1>::type,
typename tag<Geometry2>::type,
tag_t<Geometry1>,
tag_t<Geometry2>,
Geometry1, Geometry2,
Reverse1, Reverse2,
TurnPolicy

View File

@ -313,8 +313,8 @@ struct intersection_of_linestring_with_areal
dispatch::get_turns
<
typename geometry::tag<LineString>::type,
typename geometry::tag<Areal>::type,
geometry::tag_t<LineString>,
geometry::tag_t<Areal>,
LineString,
Areal,
false,
@ -443,8 +443,8 @@ struct intersection_linear_areal_point
dispatch::get_turns
<
typename geometry::tag<Geometry1>::type,
typename geometry::tag<Geometry2>::type,
geometry::tag_t<Geometry1>,
geometry::tag_t<Geometry2>,
Geometry1,
Geometry2,
false,

View File

@ -252,7 +252,7 @@ public:
LinestringOut,
OverlayType,
Linear1,
typename tag<Linear1>::type
tag_t<Linear1>
>::apply(linear1, oit);
}
@ -299,7 +299,7 @@ struct linear_linear_linestring
LinestringOut,
overlay_difference,
Linear1,
typename tag<Linear1>::type
tag_t<Linear1>
>::apply(linear1, oit);
return linear_linear_linestring

View File

@ -31,7 +31,7 @@ namespace detail { namespace overlay
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct needs_self_turns
{

View File

@ -53,7 +53,7 @@ template
<
typename PointOut,
typename GeometryIn,
typename TagIn = typename tag<GeometryIn>::type
typename TagIn = tag_t<GeometryIn>
>
struct copy_points
: not_implemented<PointOut, GeometryIn>
@ -421,8 +421,8 @@ struct union_pointlike_pointlike_point
return detail_dispatch::overlay::pointlike_pointlike_point
<
PointLike2, PointLike1, PointOut, overlay_difference,
typename tag<PointLike2>::type,
typename tag<PointLike1>::type
tag_t<PointLike2>,
tag_t<PointLike1>
>::apply(pointlike2, pointlike1, oit, strategy);
}

View File

@ -29,7 +29,7 @@ namespace detail { namespace overlay
template
<
typename Geometry,
typename Tag = typename geometry::tag<Geometry>::type
typename Tag = geometry::tag_t<Geometry>
>
struct points_range
{
@ -80,7 +80,7 @@ struct points_range<Box, box_tag>
template
<
typename Geometry,
typename Tag = typename geometry::tag<Geometry>::type
typename Tag = geometry::tag_t<Geometry>
>
struct point_in_geometry_helper
{

View File

@ -307,8 +307,8 @@ inline void select_rings(Geometry1 const& geometry1, Geometry2 const& geometry2,
RingPropertyMap& selected_ring_properties,
Strategy const& strategy)
{
typedef typename geometry::tag<Geometry1>::type tag1;
typedef typename geometry::tag<Geometry2>::type tag2;
using tag1 = geometry::tag_t<Geometry1>;
using tag2 = geometry::tag_t<Geometry2>;
RingPropertyMap all_ring_properties;
dispatch::select_rings<tag1, Geometry1>::apply(geometry1, geometry2,
@ -336,10 +336,8 @@ inline void select_rings(Geometry const& geometry,
RingPropertyMap& selected_ring_properties,
Strategy const& strategy)
{
typedef typename geometry::tag<Geometry>::type tag;
RingPropertyMap all_ring_properties;
dispatch::select_rings<tag, Geometry>::apply(geometry,
dispatch::select_rings<geometry::tag_t<Geometry>, Geometry>::apply(geometry,
ring_identifier(0, -1, -1), all_ring_properties,
strategy);

View File

@ -288,7 +288,7 @@ struct self_get_turn_points
dispatch::self_get_turn_points
<
Reverse,
typename tag<Geometry>::type,
tag_t<Geometry>,
Geometry,
turn_policy
>::apply(geometry, strategies, turns, interrupt_policy,

View File

@ -53,7 +53,7 @@ inline bool point_is_spike_or_equal(Point1 const& last_point, // prev | back
Point3 const& segment_b, // curr | back - 1 | spike's vertex
SideStrategy const& strategy)
{
typedef typename SideStrategy::cs_tag cs_tag;
using cs_tag = typename SideStrategy::cs_tag;
int const side = strategy.apply(segment_a, segment_b, last_point);
if (side == 0)

View File

@ -214,7 +214,7 @@ inline bool point_on_border(Point& point, Geometry const& geometry)
return dispatch::point_on_border
<
typename tag<Geometry>::type
tag_t<Geometry>
>::apply(point, geometry);
}

View File

@ -42,7 +42,7 @@ template
<
typename Geometry,
typename Strategy,
typename Tag = typename geometry::tag<Geometry>::type
typename Tag = geometry::tag_t<Geometry>
>
class boundary_checker {};

View File

@ -47,7 +47,7 @@ template
<
std::size_t OpId,
typename Geometry,
typename Tag = typename geometry::tag<Geometry>::type,
typename Tag = geometry::tag_t<Geometry>,
bool IsMulti = util::is_multi<Geometry>::value
>
struct for_each_disjoint_geometry_if

View File

@ -62,8 +62,8 @@ namespace dispatch {
template <typename Geometry1,
typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type,
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>,
int TopDim1 = geometry::topological_dimension<Geometry1>::value,
int TopDim2 = geometry::topological_dimension<Geometry2>::value,
bool IsGeneric = detail::relate::is_generic<Geometry1, Geometry2>::value
@ -231,8 +231,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct relate
{

View File

@ -51,7 +51,7 @@ namespace detail { namespace relate
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct multi_point_geometry_eb
{

View File

@ -43,8 +43,8 @@ struct relate_impl_base
>::value,
not_implemented
<
typename geometry::tag<Geometry1>::type,
typename geometry::tag<Geometry2>::type
geometry::tag_t<Geometry1>,
geometry::tag_t<Geometry2>
>,
implemented_tag
>

View File

@ -34,7 +34,7 @@ template
<
typename Geometry,
typename Strategy,
typename Tag = typename geometry::tag<Geometry>::type
typename Tag = geometry::tag_t<Geometry>
>
struct topology_check
: not_implemented<Tag>

View File

@ -94,8 +94,8 @@ struct get_turns
dispatch::get_turns
<
typename geometry::tag<Geometry1>::type,
typename geometry::tag<Geometry2>::type,
geometry::tag_t<Geometry1>,
geometry::tag_t<Geometry2>,
Geometry1,
Geometry2,
reverse1,

View File

@ -41,8 +41,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct relation
{

View File

@ -178,7 +178,7 @@ inline typename ring_return_type<Geometry const>::type
return dispatch::range_by_section
<
typename tag<Geometry>::type,
tag_t<Geometry>,
Geometry,
Section
>::apply(geometry, section);

View File

@ -872,7 +872,7 @@ inline void sectionalize(Geometry const& geometry,
dispatch::sectionalize
<
typename tag<Geometry>::type,
tag_t<Geometry>,
Geometry,
Reverse,
DimensionVector

View File

@ -25,7 +25,7 @@ namespace detail
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct first_geometry_type
{
using type = Geometry;

View File

@ -37,7 +37,7 @@ namespace detail_dispatch {
template
<
typename Geometry,
typename Tag = typename geometry::tag<Geometry>::type,
typename Tag = geometry::tag_t<Geometry>,
bool IsMulti = util::is_multi<Geometry>::value
>
struct sub_range : not_implemented<Tag>

View File

@ -149,8 +149,8 @@ namespace resolve_dynamic {
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct touches
{
@ -228,7 +228,7 @@ struct touches<Geometry1, Geometry2, dynamic_geometry_tag, dynamic_geometry_tag>
}
};
template <typename Geometry, typename Tag = typename geometry::tag<Geometry>::type>
template <typename Geometry, typename Tag = geometry::tag_t<Geometry>>
struct self_touches;
template <typename Geometry>

View File

@ -117,8 +117,7 @@ template <typename Tag>
struct tupled_output_find_index_pred
{
template <typename T>
struct pred
: std::is_same<typename geometry::tag<T>::type, Tag>
struct pred : std::is_same<geometry::tag_t<T>, Tag>
{};
};
@ -360,8 +359,7 @@ template <typename Tag>
struct is_tag_same_as_pred
{
template <typename T>
struct pred
: std::is_same<typename geometry::tag<T>::type, Tag>
struct pred : std::is_same<geometry::tag_t<T>, Tag>
{};
};
@ -374,7 +372,7 @@ template
typename GeometryOut,
typename Tag,
typename DefaultTag,
typename GeometryTag = typename geometry::tag<GeometryOut>::type
typename GeometryTag = geometry::tag_t<GeometryOut>
>
struct output_geometry_access
{};
@ -474,7 +472,7 @@ struct setop_insert_output_tag
<
geometry::detail::is_tupled_single_output<GeometryOut>::value,
tupled_output_tag,
typename geometry::tag<GeometryOut>::type
geometry::tag_t<GeometryOut>
>
{};

View File

@ -30,7 +30,7 @@ namespace boost { namespace geometry
namespace dispatch
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct visit_one
{
template <typename F, typename G>
@ -65,8 +65,8 @@ struct visit_one<Geometry, dynamic_geometry_tag>
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename tag<Geometry1>::type,
typename Tag2 = typename tag<Geometry2>::type
typename Tag1 = tag_t<Geometry1>,
typename Tag2 = tag_t<Geometry2>
>
struct visit_two
{
@ -144,7 +144,7 @@ struct visit_two<Geometry1, Geometry2, dynamic_geometry_tag, dynamic_geometry_ta
};
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct visit_breadth_first
{
template <typename F, typename G>

View File

@ -46,8 +46,8 @@ template
<
typename Geometry1,
typename Geometry2,
typename Tag1 = typename tag<Geometry1>::type,
typename Tag2 = typename tag<Geometry2>::type
typename Tag1 = tag_t<Geometry1>,
typename Tag2 = tag_t<Geometry2>
>
struct within
: not_implemented<Tag1, Tag2>
@ -130,8 +130,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct within
{

View File

@ -71,8 +71,7 @@ namespace detail_dispatch { namespace within {
// returns 0 if P is on the boundry of G
// returns -1 if P is in the exterior of G
template <typename Geometry,
typename Tag = typename geometry::tag<Geometry>::type>
template <typename Geometry, typename Tag = geometry::tag_t<Geometry>>
struct point_in_geometry
: not_implemented<Tag>
{};

View File

@ -332,9 +332,9 @@ namespace resolve_collection
template
<
typename Geometry1, typename Geometry2, typename Collection,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type,
typename CollectionTag = typename geometry::tag<Collection>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>,
typename CollectionTag = geometry::tag_t<Collection>
>
struct difference
{
@ -577,8 +577,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct difference
{

View File

@ -145,8 +145,8 @@ template
<
typename Geometry1,
typename Geometry2,
typename Tag1 = typename tag<Geometry1>::type,
typename Tag2 = typename tag<Geometry2>::type
typename Tag1 = tag_t<Geometry1>,
typename Tag2 = tag_t<Geometry2>
>
struct discrete_frechet_distance : not_implemented<Tag1, Tag2>
{};

View File

@ -215,8 +215,8 @@ template
<
typename Geometry1,
typename Geometry2,
typename Tag1 = typename tag<Geometry1>::type,
typename Tag2 = typename tag<Geometry2>::type
typename Tag1 = tag_t<Geometry1>,
typename Tag2 = tag_t<Geometry2>
>
struct discrete_hausdorff_distance : not_implemented<Tag1, Tag2>
{};

View File

@ -36,7 +36,7 @@ namespace dispatch
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct envelope : not_implemented<Tag>
{};

View File

@ -40,8 +40,8 @@ namespace dispatch
template
<
typename GeometryOut, typename Geometry,
typename TagOut = typename tag<GeometryOut>::type,
typename Tag = typename tag<Geometry>::type
typename TagOut = tag_t<GeometryOut>,
typename Tag = tag_t<Geometry>
>
struct expand : not_implemented<TagOut, Tag>
{};

View File

@ -23,7 +23,7 @@ namespace dispatch
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct is_simple
: not_implemented<Geometry>
{};

View File

@ -26,7 +26,7 @@ namespace dispatch
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type,
typename Tag = tag_t<Geometry>,
// for multi-geometries: determines if empty multi-geometries are allowed
bool AllowEmptyMultiGeometries = true
>

View File

@ -427,7 +427,7 @@ struct for_each_point<MultiGeometry, multi_tag>
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct for_each_segment: not_implemented<Tag>
{};

View File

@ -154,7 +154,7 @@ namespace dispatch
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct is_convex
{
@ -264,7 +264,7 @@ struct is_convex<default_strategy, false>
namespace resolve_dynamic {
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct is_convex
{
template <typename Strategy>

View File

@ -94,7 +94,7 @@ struct multi_is_empty
namespace dispatch
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct is_empty : not_implemented<Tag>
{};
@ -150,7 +150,7 @@ struct is_empty<Geometry, multi_polygon_tag>
namespace resolve_dynamic
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct is_empty
{
static inline bool apply(Geometry const& geometry)

View File

@ -116,7 +116,7 @@ namespace dispatch
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct length : detail::calculate_null
{
typedef typename default_length_result<Geometry>::type return_type;
@ -220,7 +220,7 @@ struct length<default_strategy, false>
namespace resolve_dynamic {
template <typename Geometry, typename Tag = typename geometry::tag<Geometry>::type>
template <typename Geometry, typename Tag = geometry::tag_t<Geometry>>
struct length
{
template <typename Strategy>

View File

@ -187,8 +187,8 @@ template
<
typename Geometry,
typename Pointlike,
typename Tag1 = typename tag<Geometry>::type,
typename Tag2 = typename tag<Pointlike>::type
typename Tag1 = tag_t<Geometry>,
typename Tag2 = tag_t<Pointlike>
>
struct line_interpolate
{

View File

@ -94,7 +94,7 @@ inline Geometry make(Type const& c1, Type const& c2)
Geometry geometry;
dispatch::assign
<
typename tag<Geometry>::type,
tag_t<Geometry>,
Geometry,
geometry::dimension<Geometry>::type::value
>::apply(geometry, c1, c2);
@ -150,7 +150,7 @@ inline Geometry make(Type const& c1, Type const& c2, Type const& c3)
Geometry geometry;
dispatch::assign
<
typename tag<Geometry>::type,
tag_t<Geometry>,
Geometry,
geometry::dimension<Geometry>::type::value
>::apply(geometry, c1, c2, c3);
@ -181,7 +181,7 @@ inline Geometry make(Type const& c1, Type const& c2, Type const& c3, Type const&
Geometry geometry;
dispatch::assign
<
typename tag<Geometry>::type,
tag_t<Geometry>,
Geometry,
geometry::dimension<Geometry>::type::value
>::apply(geometry, c1, c2, c3, c4);
@ -217,7 +217,7 @@ inline Geometry make_inverse()
Geometry geometry;
dispatch::assign_inverse
<
typename tag<Geometry>::type,
tag_t<Geometry>,
Geometry
>::apply(geometry);
return geometry;
@ -238,7 +238,7 @@ inline Geometry make_zero()
Geometry geometry;
dispatch::assign_zero
<
typename tag<Geometry>::type,
tag_t<Geometry>,
Geometry
>::apply(geometry);
return geometry;

View File

@ -346,7 +346,7 @@ namespace dispatch
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct merge_elements
: not_implemented<Geometry, Tag>
{};

View File

@ -46,7 +46,7 @@ namespace dispatch
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct num_interior_rings
: detail::counting::other_count<0>
{};

View File

@ -139,7 +139,7 @@ struct num_points<Geometry, AddForOpen, multi_tag>
namespace resolve_dynamic
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct num_points
{
static inline std::size_t apply(Geometry const& geometry, bool add_for_open)

View File

@ -66,7 +66,7 @@ struct range_count
namespace dispatch
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct num_segments
: not_implemented<Tag>
{};
@ -140,7 +140,7 @@ namespace resolve_dynamic
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct num_segments
{
static inline std::size_t apply(Geometry const& geometry)

View File

@ -51,7 +51,7 @@ namespace dispatch
{
// Default perimeter is 0.0, specializations implement calculated values
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct perimeter : detail::calculate_null
{
typedef typename default_length_result<Geometry>::type return_type;
@ -163,7 +163,7 @@ struct perimeter<default_strategy, false>
namespace resolve_dynamic {
template <typename Geometry, typename Tag = typename geometry::tag<Geometry>::type>
template <typename Geometry, typename Tag = geometry::tag_t<Geometry>>
struct perimeter
{
template <typename Strategy>

View File

@ -206,7 +206,7 @@ namespace dispatch
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct remove_spikes
{

View File

@ -79,7 +79,7 @@ namespace dispatch
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct reverse
{
static inline void apply(Geometry&)
@ -125,7 +125,7 @@ struct reverse<Geometry, multi_polygon_tag>
namespace resolve_dynamic
{
template <typename Geometry, typename Tag = typename tag<Geometry>::type>
template <typename Geometry, typename Tag = tag_t<Geometry>>
struct reverse
{
static void apply(Geometry& geometry)

View File

@ -653,11 +653,7 @@ struct has_same_tag_as
{
template <typename OtherGeometry>
struct pred
: std::is_same
<
typename geometry::tag<Geometry>::type,
typename geometry::tag<OtherGeometry>::type
>
: std::is_same<geometry::tag_t<Geometry>, geometry::tag_t<OtherGeometry>>
{};
};
@ -689,8 +685,8 @@ template
<
typename GeometryIn,
typename GeometryOut,
typename TagIn = typename tag<GeometryIn>::type,
typename TagOut = typename tag<GeometryOut>::type
typename TagIn = tag_t<GeometryIn>,
typename TagOut = tag_t<GeometryOut>
>
struct simplify: not_implemented<TagIn, TagOut>
{};
@ -751,7 +747,7 @@ struct simplify<MultiPolygonIn, MultiPolygonOut, multi_polygon_tag, multi_polygo
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct simplify_insert: not_implemented<Tag>
{};
@ -826,8 +822,8 @@ struct simplify<default_strategy, false>
default_strategy)
{
// NOTE: Alternatively take two geometry types in default_strategy
using cs_tag1_t = typename geometry::cs_tag<GeometryIn>::type;
using cs_tag2_t = typename geometry::cs_tag<GeometryOut>::type;
using cs_tag1_t = geometry::cs_tag_t<GeometryIn>;
using cs_tag2_t = geometry::cs_tag_t<GeometryOut>;
BOOST_GEOMETRY_STATIC_ASSERT(
(std::is_same<cs_tag1_t, cs_tag2_t>::value),
"Incompatible coordinate systems",
@ -915,8 +911,8 @@ namespace resolve_dynamic {
template
<
typename GeometryIn, typename GeometryOut,
typename TagIn = typename tag<GeometryIn>::type,
typename TagOut = typename tag<GeometryOut>::type
typename TagIn = tag_t<GeometryIn>,
typename TagOut = tag_t<GeometryOut>
>
struct simplify
{

View File

@ -486,9 +486,9 @@ namespace resolve_collection
template
<
typename Geometry1, typename Geometry2, typename Collection,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type,
typename CollectionTag = typename geometry::tag<Collection>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>,
typename CollectionTag = geometry::tag_t<Collection>
>
struct sym_difference
{
@ -680,8 +680,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct sym_difference
{

View File

@ -363,9 +363,9 @@ namespace resolve_collection
template
<
typename Geometry1, typename Geometry2, typename GeometryOut,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type,
typename TagOut = typename geometry::tag<GeometryOut>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>,
typename TagOut = geometry::tag_t<GeometryOut>
>
struct union_
{
@ -720,8 +720,8 @@ namespace resolve_dynamic
template
<
typename Geometry1, typename Geometry2,
typename Tag1 = typename geometry::tag<Geometry1>::type,
typename Tag2 = typename geometry::tag<Geometry2>::type
typename Tag1 = geometry::tag_t<Geometry1>,
typename Tag2 = geometry::tag_t<Geometry2>
>
struct union_
{

View File

@ -102,7 +102,7 @@ namespace dispatch
template
<
typename Geometry,
typename Tag = typename tag<Geometry>::type
typename Tag = tag_t<Geometry>
>
struct unique
{

Some files were not shown because too many files have changed in this diff Show More