Structural element for free monoid product. More...
Public Types | |
typedef virtual_types< Self > ::first_monoid_t | first_monoid_t |
The type of free monoid A*. | |
typedef virtual_types< Self > ::second_monoid_t | second_monoid_t |
The type of free monoid B*. | |
typedef Self | self_t |
Exact type of the most derived type in the hierarchy. | |
Public Member Functions | |
first_monoid_t & | first_monoid () |
First 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. | |
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 contains that always returns 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. | |
const self_t & | self () const |
Accessor to the real type. | |
Protected Member Functions | |
FreeMonoidProductBase () | |
Default constructor accessor. | |
FreeMonoidProductBase (const FreeMonoidProductBase &m) | |
Copy constructor accessor. |
Structural element for free monoid product.
FreeMonoidProductBase
is the mother class of free monoid products. A free monoid product A* x B* is a monoid which is the product of the free monoids A* and B*.
Definition at line 45 of file freemonoid_product_base.hh.
bool contains | ( | const Element< OtherS, T > & | other | ) | const [inherited] |
Specialization of contains
that always returns false.
Indeed, elements structured by a particular type are always incompatible with structural elements of another type.
self_t& self | ( | ) | [inherited] |
Accessor to the real type.
To be used by implementations in this class and derived structures to obtain a reference to the structural element with its most derived type.
const self_t& self | ( | ) | const [inherited] |
Accessor to the real type.
To be used by implementations in this class and derived structures to obtain a reference to the structural element with its most derived type.