mirror of
https://github.com/boostorg/geometry.git
synced 2026-02-12 12:12:10 +00:00
Moved OutputIterator template param from class to function level in dispatch::union.
[SVN r80242]
This commit is contained in:
@@ -263,7 +263,7 @@ struct intersection_insert
|
||||
OverlayType,
|
||||
Strategy
|
||||
> : detail::overlay::overlay
|
||||
<Geometry1, Geometry2, Reverse1, Reverse2, ReverseOut, OutputIterator, GeometryOut, OverlayType>
|
||||
<Geometry1, Geometry2, Reverse1, Reverse2, ReverseOut, GeometryOut, OverlayType>
|
||||
{};
|
||||
|
||||
|
||||
@@ -288,7 +288,7 @@ struct intersection_insert
|
||||
OverlayType,
|
||||
Strategy
|
||||
> : detail::overlay::overlay
|
||||
<Geometry, Box, Reverse1, Reverse2, ReverseOut, OutputIterator, GeometryOut, OverlayType>
|
||||
<Geometry, Box, Reverse1, Reverse2, ReverseOut, GeometryOut, OverlayType>
|
||||
{};
|
||||
|
||||
|
||||
|
||||
@@ -134,12 +134,12 @@ template
|
||||
<
|
||||
typename Geometry1, typename Geometry2,
|
||||
bool Reverse1, bool Reverse2, bool ReverseOut,
|
||||
typename OutputIterator, typename GeometryOut,
|
||||
typename GeometryOut,
|
||||
overlay_type Direction
|
||||
>
|
||||
struct overlay
|
||||
{
|
||||
template <typename Strategy>
|
||||
template <typename OutputIterator, typename Strategy>
|
||||
static inline OutputIterator apply(
|
||||
Geometry1 const& geometry1, Geometry2 const& geometry2,
|
||||
OutputIterator out,
|
||||
|
||||
@@ -28,9 +28,7 @@ namespace dispatch
|
||||
|
||||
template
|
||||
<
|
||||
typename Geometry1, typename Geometry2,
|
||||
typename OutputIterator,
|
||||
typename GeometryOut,
|
||||
typename Geometry1, typename Geometry2, typename GeometryOut,
|
||||
typename TagIn1 = typename tag<Geometry1>::type,
|
||||
typename TagIn2 = typename tag<Geometry2>::type,
|
||||
typename TagOut = typename tag<GeometryOut>::type,
|
||||
@@ -56,31 +54,27 @@ struct union_insert
|
||||
|
||||
template
|
||||
<
|
||||
typename Geometry1, typename Geometry2,
|
||||
typename OutputIterator,
|
||||
typename GeometryOut,
|
||||
typename Geometry1, typename Geometry2, typename GeometryOut,
|
||||
typename TagIn1, typename TagIn2, typename TagOut,
|
||||
bool Reverse1, bool Reverse2, bool ReverseOut
|
||||
>
|
||||
struct union_insert
|
||||
<
|
||||
Geometry1, Geometry2,
|
||||
OutputIterator, GeometryOut,
|
||||
Geometry1, Geometry2, GeometryOut,
|
||||
TagIn1, TagIn2, TagOut,
|
||||
true, true, true,
|
||||
Reverse1, Reverse2, ReverseOut,
|
||||
true
|
||||
>: union_insert<Geometry2, Geometry1, OutputIterator, GeometryOut>
|
||||
>: union_insert<Geometry2, Geometry1, GeometryOut>
|
||||
{
|
||||
template <typename Strategy>
|
||||
template <typename OutputIterator, typename Strategy>
|
||||
static inline OutputIterator apply(Geometry1 const& g1,
|
||||
Geometry2 const& g2, OutputIterator out,
|
||||
Strategy const& strategy)
|
||||
{
|
||||
return union_insert
|
||||
<
|
||||
Geometry2, Geometry1,
|
||||
OutputIterator, GeometryOut
|
||||
Geometry2, Geometry1, GeometryOut
|
||||
>::apply(g2, g1, out, strategy);
|
||||
}
|
||||
};
|
||||
@@ -88,22 +82,19 @@ struct union_insert
|
||||
|
||||
template
|
||||
<
|
||||
typename Geometry1, typename Geometry2,
|
||||
typename OutputIterator,
|
||||
typename GeometryOut,
|
||||
typename Geometry1, typename Geometry2, typename GeometryOut,
|
||||
typename TagIn1, typename TagIn2, typename TagOut,
|
||||
bool Reverse1, bool Reverse2, bool ReverseOut
|
||||
>
|
||||
struct union_insert
|
||||
<
|
||||
Geometry1, Geometry2,
|
||||
OutputIterator, GeometryOut,
|
||||
Geometry1, Geometry2, GeometryOut,
|
||||
TagIn1, TagIn2, TagOut,
|
||||
true, true, true,
|
||||
Reverse1, Reverse2, ReverseOut,
|
||||
false
|
||||
> : detail::overlay::overlay
|
||||
<Geometry1, Geometry2, Reverse1, Reverse2, ReverseOut, OutputIterator, GeometryOut, overlay_union>
|
||||
<Geometry1, Geometry2, Reverse1, Reverse2, ReverseOut, GeometryOut, overlay_union>
|
||||
{};
|
||||
|
||||
|
||||
@@ -128,8 +119,7 @@ inline OutputIterator insert(Geometry1 const& geometry1,
|
||||
{
|
||||
return dispatch::union_insert
|
||||
<
|
||||
Geometry1, Geometry2,
|
||||
OutputIterator, GeometryOut
|
||||
Geometry1, Geometry2, GeometryOut
|
||||
>::apply(geometry1, geometry2, out, strategy);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user