1 #ifndef GENESIS_TREE_TREE_EDGE_DATA_H_ 2 #define GENESIS_TREE_TREE_EDGE_DATA_H_ 117 static std::unique_ptr< BaseEdgeData >
create()
119 return std::unique_ptr< BaseEdgeData >(
new BaseEdgeData() );
126 virtual std::unique_ptr< BaseEdgeData >
recreate()
const 128 return std::unique_ptr< BaseEdgeData >(
new BaseEdgeData() );
134 virtual std::unique_ptr< BaseEdgeData >
clone()
const 136 return std::unique_ptr< BaseEdgeData >(
new BaseEdgeData( *
this ));
144 #endif // include guard virtual std::unique_ptr< BaseEdgeData > clone() const
Polymorphically copy an instance of this class. Use instead of copy constructor.
virtual std::unique_ptr< BaseEdgeData > recreate() const
Polymorphically create a default-constructed instance of this class with the same derived type as it ...
Container namespace for all symbols of genesis in order to keep them separate when used as a library...
static std::unique_ptr< BaseEdgeData > create()
Create a new instance of this class. Use instead of default constructor.
virtual ~BaseEdgeData()=default
Virtual destructor. Needed for polymorphism.
BaseEdgeData()=default
Protected default constructor. Called from the create() function.
Base class for storing data on Edges of a Tree.
BaseEdgeData & operator=(BaseEdgeData &&)=delete
Deleted move assignment.