16 #ifndef GEOS_OP_UNION_GEOMETRYLISTHOLDER_H
17 #define GEOS_OP_UNION_GEOMETRYLISTHOLDER_H
34 class GeometryListHolder :
public std::vector<geom::Geometry*> {
36 typedef std::vector<geom::Geometry*> base_type;
39 GeometryListHolder() {}
42 std::for_each(ownedItems.begin(), ownedItems.end(),
43 &GeometryListHolder::deleteItem);
48 push_back_owned(geom::Geometry* item)
50 this->base_type::push_back(item);
51 ownedItems.push_back(item);
55 getGeometry(std::size_t index)
57 if(index >= this->base_type::size()) {
60 return (*
this)[index];
64 static void deleteItem(geom::Geometry* item);
67 std::vector<geom::Geometry*> ownedItems;