1 #pragma once
2 
3 // mapbox
4 #include <mapbox/geometry/polygon.hpp>
5 // stl
6 #include <vector>
7 
8 namespace mapbox {
9 namespace geometry {
10 
11 template <typename T, template <typename...> class Cont = std::vector>
12 struct multi_polygon : Cont<polygon<T>>
13 {
14     using coordinate_type = T;
15     using polygon_type = polygon<T>;
16     using container_type = Cont<polygon_type>;
17     using size_type = typename container_type::size_type;
18 
19     template <class... Args>
multi_polygonmapbox::geometry::multi_polygon20     multi_polygon(Args&&... args) : container_type(std::forward<Args>(args)...) {}
multi_polygonmapbox::geometry::multi_polygon21     multi_polygon(std::initializer_list<polygon_type> args)
22         : container_type(std::move(args)) {}
23 };
24 
25 } // namespace geometry
26 } // namespace mapbox
27