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