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

#include <mixin_collection.hpp>

Public Member Functions

 mixin_collection (const internal::mixin_type_info_vector &mixins)
 
 mixin_collection (const mixin_collection &)=delete
 
mixin_collectionoperator= (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
 

Detailed Description

A mixin collection is a class that allows the user to represent a number of mixins


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