summaryrefslogtreecommitdiff
path: root/boost/geometry/util/type_traits.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/geometry/util/type_traits.hpp')
-rw-r--r--boost/geometry/util/type_traits.hpp57
1 files changed, 57 insertions, 0 deletions
diff --git a/boost/geometry/util/type_traits.hpp b/boost/geometry/util/type_traits.hpp
index f1f89a7a1a..c58b5bad02 100644
--- a/boost/geometry/util/type_traits.hpp
+++ b/boost/geometry/util/type_traits.hpp
@@ -182,6 +182,22 @@ struct enable_if_segment
template <typename Geometry, typename T = void>
using enable_if_segment_t = typename enable_if_segment<Geometry, T>::type;
+template <typename Geometry, typename T = void>
+struct enable_if_linestring
+ : std::enable_if<is_linestring<Geometry>::value, T>
+{};
+
+template <typename Geometry, typename T = void>
+using enable_if_linestring_t = typename enable_if_linestring<Geometry, T>::type;
+
+template <typename Geometry, typename T = void>
+struct enable_if_multi_linestring
+ : std::enable_if<is_multi_linestring<Geometry>::value, T>
+{};
+
+template <typename Geometry, typename T = void>
+using enable_if_multi_linestring_t = typename enable_if_multi_linestring<Geometry, T>::type;
+
template <typename Geometry, typename T = void>
struct enable_if_polylinear
@@ -209,6 +225,30 @@ struct enable_if_box
template <typename Geometry, typename T = void>
using enable_if_box_t = typename enable_if_box<Geometry, T>::type;
+template <typename Geometry, typename T = void>
+struct enable_if_ring
+ : std::enable_if<is_ring<Geometry>::value, T>
+{};
+
+template <typename Geometry, typename T = void>
+using enable_if_ring_t = typename enable_if_ring<Geometry, T>::type;
+
+template <typename Geometry, typename T = void>
+struct enable_if_polygon
+ : std::enable_if<is_polygon<Geometry>::value, T>
+{};
+
+template <typename Geometry, typename T = void>
+using enable_if_polygon_t = typename enable_if_polygon<Geometry, T>::type;
+
+template <typename Geometry, typename T = void>
+struct enable_if_multi_polygon
+ : std::enable_if<is_multi_polygon<Geometry>::value, T>
+{};
+
+template <typename Geometry, typename T = void>
+using enable_if_multi_polygon_t = typename enable_if_multi_polygon<Geometry, T>::type;
+
template <typename Geometry, typename T = void>
struct enable_if_polygonal
@@ -237,6 +277,23 @@ template <typename Geometry, typename T = void>
using enable_if_polysegmental_t = typename enable_if_polysegmental<Geometry, T>::type;
+template <typename Geometry, typename T = void>
+struct enable_if_dynamic_geometry
+ : std::enable_if<is_dynamic_geometry<Geometry>::value, T>
+{};
+
+template <typename Geometry, typename T = void>
+using enable_if_dynamic_geometry_t = typename enable_if_dynamic_geometry<Geometry, T>::type;
+
+template <typename Geometry, typename T = void>
+struct enable_if_geometry_collection
+ : std::enable_if<is_geometry_collection<Geometry>::value, T>
+{};
+
+template <typename Geometry, typename T = void>
+using enable_if_geometry_collection_t = typename enable_if_geometry_collection<Geometry, T>::type;
+
+
} // namespace util