friend std::ostream & operator<<(std::ostream &stream, Composition const &composition)
virtual boost::any accept(CompositionVisitor &visitor, boost::any const &data) const =0
virtual ~Composition()=default
virtual void writeToStream(std::ostream &stream) const =0