MonoidBase is the base class of all structures that are monoids.  
More...
Inheritance diagram for MonoidBase:

Public Types | |
| typedef Self | self_t | 
| Exact type of the most derivated type in the hierarchy.  | |
Public Member Functions | |
| template<typename T> | |
| Element< Self, T > | identity (SELECTOR(T)) const | 
| Returns the identity of the monoid (if mul_kind).  | |
| template<typename T> | |
| Element< Self, T > | zero (SELECTOR(T)) const | 
| Returns the zero of the monoid (if add_kind).  | |
| bool | contains (const Element< Self, T > &elt) const | 
| Check if a given element is compatible with the structural element.  | |
| bool | contains (const Element< OtherS, T > &other) const | 
Specialization of containts that always return false.   | |
| bool | contains (const T &elt_value) const | 
| Check if an anonymous value is compatible with a structural element.  | |
| Element< Self, T > | choose (SELECTOR(T)) const | 
| Choose randomly an element in the structure.  | |
| self_t & | self () | 
| Accessor to the real type.   | |
Protected Member Functions | |
| MonoidBase () | |
| Default constructor is protected since it is an abstract class.  | |
| MonoidBase (const MonoidBase &other) | |
| Copy constructor is protected since it is an abstract class.  | |
MonoidBase is the base class of all structures that are monoids. 
Monoid defines identity for semigroups of mul_kind and zero for semigroup of add_kind.
      
  | 
  
| 
 
Specialization of  Indeed, elements structured by a particular type are always incompatible with structural elements of another type.  | 
  
      
  | 
  
| 
 Accessor to the real type. This accessor is intended to be used by implementations in this class and derivated structures to obtain a reference to the structural element with its most derivated type.  | 
  
 1.4.1