# MetaElement< algebra::AlphabetSetBase< S >, T > Struct Template Reference
[Alphabet]

Specialization of `MetaElement` for `AlphabetSetBase`. More...

Inheritance diagram for MetaElement< algebra::AlphabetSetBase< S >, T >:
[legend]

List of all members.

## 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.
void | insert (const std::string &lit)
| Add a letter to the alphabet from a literal representation.
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.

## Detailed Description

### template<class S, typename T>
struct vcsn::MetaElement< algebra::AlphabetSetBase< S >, T >

Specialization of `MetaElement` for `AlphabetSetBase`.

Services shared by all alphabets.

Definition at line 131 of file alphabets_base.hh.

## Member Function Documentation

Element<S, T>& operator+= | ( | const U & | other | ) | `[inherited]`

Self addition between Element and foreign values.

Maps to `op_in_add()`.

Element<S, T>& operator-= | ( | const U & | other | ) | `[inherited]`

Self substraction between Element and foreign values.

Maps to `op_in_sub()`.

Element<S, T>& operator/= | ( | const U & | other | ) | `[inherited]`

Self division between Element and foreign values.

Maps to `op_in_div()`.

Element<S, T>& operator*= | ( | const U & | other | ) | `[inherited]`

Self multiplication between Element and foreign values.

Maps to `op_in_mul()`.

Element<S, T>& operator%= | ( | const U & | other | ) | `[inherited]`

Self modulus between Element and foreign values.

Maps to `op_in_mod()`.

Element< S, T > & swap | ( | Element< S, U > & | other | ) | `[inherited]`

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< S, T >::structure(), SyntacticDecorator< S, T >::structure(), Element< S, T >::value(), and SyntacticDecorator< S, T >::value().

Element< S, T > & self | ( |  | ) | `[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`[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.