MetaElement
for AlphabetSetBase
.
More...
Public Types | |
typedef algebra::alphabet_traits< S, T > ::letter_t | letter_t |
The type of letters in the alphabet. | |
typedef op_begin_traits< S, T > ::const_ret_t | const_iterator |
The type of the letter iterator for constant alphabets. | |
typedef op_begin_traits< S, T > ::ret_t | iterator |
The type of the letter iterator for mutable alphabets. | |
Public Member Functions | |
void | insert (const letter_t &l) |
Add a letter to the alphabet. | |
letter_t | choose () const |
Randomly choose a letter in the alphabet. | |
letter_t | random_letter () const |
Select a random letter in all the possible letters in letter_t. | |
size_t | size () const |
Retrieve the number of letters in the alphabet. | |
size_t | max_size () const |
Retrieve the maximum number of letters the alphabet can contain. | |
bool | letter_equality (letter_t, letter_t) const |
Test for matching letters modulo the alphabet meta-symbols. | |
bool | contains (const letter_t &l) const |
Whether the alphabet contains a specified letter. | |
bool | is_finite () const |
Whether the alphabet contains a finite number of letters. | |
const S & | structure () const |
Virtual accessor to the structural element. | |
template<typename OtherS, typename U> | |
Element< S, T > & | operator+= (const Element< OtherS, U > &other) |
Self addition between Element instances. Maps to op_in_add() . | |
template<typename U> | |
Element< S, T > & | operator+= (const U &other) |
Self addition between Element and foreign values. | |
template<typename OtherS, typename U> | |
Element< S, T > & | operator-= (const Element< OtherS, U > &other) |
Self substraction between Element instances. Maps to op_in_sub() . | |
template<typename U> | |
Element< S, T > & | operator-= (const U &other) |
Self substraction between Element and foreign values. | |
template<typename OtherS, typename U> | |
Element< S, T > & | operator/= (const Element< OtherS, U > &other) |
Self division between Element instances. Maps to op_in_div() . | |
template<typename U> | |
Element< S, T > & | operator/= (const U &other) |
Self division between Element and foreign values. | |
template<typename OtherS, typename U> | |
Element< S, T > & | operator*= (const Element< OtherS, U > &other) |
Self multiplication between Element instances. Maps to op_in_mul() . | |
template<typename U> | |
Element< S, T > & | operator*= (const U &other) |
Self multiplication between Element and foreign values. | |
template<typename OtherS, typename U> | |
Element< S, T > & | operator%= (const Element< OtherS, U > &other) |
Self modulus between Element instances. Maps to op_in_mod() . | |
template<typename U> | |
Element< S, T > & | operator%= (const U &other) |
Self modulus between Element and foreign values. | |
Element< S, T > & | operator++ () |
In-place, prefix incrementation. Maps to op_in_inc() . | |
Element< S, T > | operator++ (int) |
Postfix incrementation. Maps to op_in_dec() , with Element copy. | |
Element< S, T > & | operator-- () |
In-place, prefix decrementation. Maps to op_in_dec() . | |
Element< S, T > | operator-- (int) |
Postfix decrementation. Maps to op_in_dec() , with Element copy(). | |
template<typename U> | |
Element< S, T > & | swap (Element< S, U > &other) |
Standard constant-time swap between Element instances. | |
iterator | begin () |
Retrieve a begin iterator. | |
const_iterator | begin () const |
Retrieve a begin iterator. | |
iterator | end () |
Retrieve an end iterator. | |
const_iterator | end () const |
Retrieve an end iterator. | |
T & | value () |
Virtual accessor to value data. | |
const T & | value () const |
Virtual accessor to value data. | |
Element< S, T > & | self () |
Accessor to the real type. | |
const Element< S, T > & | self () const |
Accessor to the real type. | |
Static Public Attributes | |
static const bool | dynamic_value = true |
Whether the implementation type has run-time data. | |
Protected Member Functions | |
MetaElement () | |
Protected constructor. | |
MetaElement (const MetaElement &other) | |
Protected constructor. |
MetaElement
for AlphabetSetBase
.
Services shared by all alphabets.
Definition at line 123 of file alphabets_base.hh.
Element<S, T>& operator+= | ( | const U & | other | ) | [inline, inherited] |
Self addition between Element and foreign values.
Maps to op_in_add()
.
Element<S, T>& operator-= | ( | const U & | other | ) | [inline, inherited] |
Self substraction between Element and foreign values.
Maps to op_in_sub()
.
Element<S, T>& operator/= | ( | const U & | other | ) | [inline, inherited] |
Self division between Element and foreign values.
Maps to op_in_div()
.
Element<S, T>& operator*= | ( | const U & | other | ) | [inline, inherited] |
Self multiplication between Element and foreign values.
Maps to op_in_mul()
.
Element<S, T>& operator%= | ( | const U & | other | ) | [inline, inherited] |
Self modulus between Element and foreign values.
Maps to op_in_mod()
.
Standard constant-time swap between Element instances.
Maps to op_swap()
.
Definition at line 130 of file syntactic_decorator.hxx.
References vcsn::op_swap(), Element::structure(), SyntacticDecorator::structure(), Element::value(), and SyntacticDecorator::value().
Element< S, T > & self | ( | ) | [inline, inherited] |
Accessor to the real type.
To be used by implementations in this class and derived MetaElement specializations to obtain a reference to the Element instance with its most derived type.
Definition at line 27 of file syntactic_decorator.hxx.
const Element< S, T > & self | ( | ) | const [inline, inherited] |
Accessor to the real type.
To be used by implementations in this class and derived MetaElement specializations to obtain a reference to the Element instance with its most derived type.
Definition at line 34 of file syntactic_decorator.hxx.