DynaMix
1.3.7
A new take on polymorphism in C++
|
#include <mixin_collection.hpp>
Public Member Functions | |
mixin_collection (const internal::mixin_type_info_vector &mixins) | |
mixin_collection (const mixin_collection &)=delete | |
mixin_collection & | operator= (const mixin_collection &)=delete |
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. | |
Public Attributes | |
internal::available_mixins_bitset | _mixins |
internal::mixin_type_info_vector | _compact_mixins |
A mixin collection is a class that allows the user to represent a number of mixins