1 #ifndef GENESIS_UTILS_FORMATS_SVG_DEFINITIONS_H_ 2 #define GENESIS_UTILS_FORMATS_SVG_DEFINITIONS_H_ 61 template<
typename T >
67 : pimpl_( other.pimpl_->clone() )
91 pimpl_->write_( out,
indent );
102 virtual ~Concept() {}
109 virtual std::unique_ptr< Concept > clone()
const = 0;
112 template<
typename T >
113 struct Model : Concept
115 Model( T
const& value )
123 object_.write( out,
indent );
126 std::unique_ptr< Concept > clone()
const override 128 return make_unique< Model<T> >( object_ );
134 std::unique_ptr< Concept > pimpl_;
141 #endif // include guard
void swap(SequenceSet &lhs, SequenceSet &rhs)
void write(std::ostream &out, size_t indent=0) const
Container namespace for all symbols of genesis in order to keep them separate when used as a library...
Provides some valuable additions to STD.
std::string indent(std::string const &text, std::string const &indentation)
Indent each line of text with indentation and return the result.
SvgDefinitions(T const &object)
SvgDefinitions(SvgDefinitions const &other)
SvgDefinitions & operator=(SvgDefinitions other)
std::unique_ptr< T > make_unique(Args &&... args)
Returns a std::unique_ptr for a given type.
~SvgDefinitions()=default