+ for(Iter i=begin; i!=end; ++i)
+ shapes.push_back((*i)->clone());
+}
+
+template<typename T, unsigned D, typename O>
+inline CompositeShape<T, D, O>::CompositeShape(const CompositeShape<T, D, O> &other)
+{
+ shapes.reserve(other.shapes.size());
+ for(typename ShapeArray::const_iterator i=other.shapes.begin(); i!=other.shapes.end(); ++i)