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

Specialization of MetaElement for AlphabetSetBase. More...

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

Inheritance graph
[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  )  [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().

Element< S, T > & swap ( Element< S, U > &  other  )  [inline, 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::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.


Generated on Thu Jan 22 17:37:04 2009 for Vaucanson by  doxygen 1.5.6