DynaMix  1.3.7
A new take on polymorphism in C++
dynamix::internal::object_type_info Class Reference

Public Member Functions

const mixin_collectionas_mixin_collection () const
 
size_t mixin_index (mixin_id id) const
 
mixin_data_in_objectalloc_mixin_data (const object *obj) const
 
void dealloc_mixin_data (mixin_data_in_object *data, const object *obj) const
 

Static Public Member Functions

static const object_type_infonull ()
 

Private Member Functions

template<typename Mixin >
bool has () const
 Checks if a mixin type is present in the collection.
 
bool has (mixin_id id) const
 
template<typename Mixin >
void add ()
 Adds a mixin type is to the collection.
 
void add (mixin_id id)
 
template<typename Mixin >
void remove ()
 Removes a mixin type from the collection.
 
void remove (mixin_id id)
 
template<typename Feature >
bool implements (const Feature *f) const
 Checks if a feature is implemented by any mixin in the collection.
 
template<typename Feature >
void clear_all_implementing (const Feature *f)
 Clears all mixins implementing a feature from the collection.
 
void rebuild_from_compact_mixins ()
 
void check_valid_mixin (const internal::mixin_type_info &mixin_info)
 
void clear ()
 Removes all elements from the collection.
 
bool empty () const
 Checks if a collection is empty.
 

Private Attributes

internal::available_mixins_bitset _mixins
 
internal::mixin_type_info_vector _compact_mixins
 

The documentation for this class was generated from the following file: