Inheritance diagram for FreeMonoidProduct:
Public Types | |
typedef F | first_monoid_t |
The type of free monoid A*. | |
typedef S | second_monoid_t |
The type of free monoid B*. | |
typedef FreeMonoidProduct< F, S > | self_t |
Exact type of the most derivated type in the hierarchy. | |
Public Member Functions | |
FreeMonoidProduct (const F &a, const S &b) | |
Constructor based on two free monoids. | |
FreeMonoidProduct (const FreeMonoidProduct &w) | |
Copy constructor. | |
first_monoid_t & | first_monoid () |
Monoid's accessor. | |
const first_monoid_t & | first_monoid () const |
First monoid's const accessor. | |
second_monoid_t & | second_monoid () |
Second monoid's accessor. | |
const second_monoid_t & | second_monoid () const |
Second monoid's const accessor. | |
Element< FreeMonoidProduct< F, S >, T > | identity (SELECTOR(T)) const |
Returns the identity of the monoid (if mul_kind). | |
Element< FreeMonoidProduct< F, S >, T > | zero (SELECTOR(T)) const |
Returns the zero of the monoid (if add_kind). | |
bool | contains (const Element< FreeMonoidProduct< F, S >, 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< FreeMonoidProduct< F, S >, T > | choose (SELECTOR(T)) const |
Choose randomly an element in the structure. | |
self_t & | self () |
Accessor to the real type. |
|
Monoid's accessor.
Reimplemented from FreeMonoidProductBase< FreeMonoidProduct< F, S > >. |
|
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. |