summaryrefslogtreecommitdiff
path: root/boost/geometry/util/select_calculation_type.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/util/select_calculation_type.hpp')
-rw-r--r--boost/geometry/util/select_calculation_type.hpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/boost/geometry/util/select_calculation_type.hpp b/boost/geometry/util/select_calculation_type.hpp
index 4946c45e84..0e3faf229b 100644
--- a/boost/geometry/util/select_calculation_type.hpp
+++ b/boost/geometry/util/select_calculation_type.hpp
@@ -4,6 +4,11 @@
// Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
// Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
+// This file was modified by Oracle on 2014.
+// Modifications copyright (c) 2014 Oracle and/or its affiliates.
+
+// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
+
// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
@@ -50,6 +55,28 @@ struct select_calculation_type
>::type type;
};
+// alternative version supporting more than 2 Geometries
+
+template <typename CalculationType,
+ typename Geometry1,
+ typename Geometry2 = void,
+ typename Geometry3 = void>
+struct select_calculation_type_alt
+{
+ typedef typename
+ boost::mpl::if_
+ <
+ boost::is_void<CalculationType>,
+ typename select_coordinate_type
+ <
+ Geometry1,
+ Geometry2,
+ Geometry3
+ >::type,
+ CalculationType
+ >::type type;
+};
+
}} // namespace boost::geometry