Creatableclass template is the base class for class types that can be extended by application-defined subclasses.
template <class type, typename param = Unpacker&> class Creatable
||Installs a creator object for application-defined subclasses of the template parameter.|
||Removes a creator object for application-defined subclasses of the template parameter.|
||The type of the base class of a hierarchy of extensible classes.|
||The type of the data passed to the creator callback functions.|
Creatableclass template appears as a base class for types of objects that can have custom subclasses defined by an application. So that the engine can create these custom subclasses when necessary (e.g., when loading a world), an application installs a special creator object by calling the
Creatable::InstallCreatorfunction. This object has a member function that is responsible for returning a pointer to a newly created instance of the subclass of a given type.