# AlphabetSetBase< S > Struct Template Reference
[Algebra, Alphabet]

Base class for structural elements of alphabets. More...

Inheritance diagram for AlphabetSetBase< S >:
[legend]

List of all members.

## Public Types

typedef S | self_t
| Exact type of the most derived type in the hierarchy.

## Public Member Functions

template<typename T >
bool | contains (const Element< S, T > &elt) const
| Check if a given element is compatible with the structural element.
template<typename OtherS , typename T >
bool | contains (const Element< OtherS, T > &other) const
| Specialization of `contains` that always returns false.
template<typename T >
bool | contains (const T &elt_value) const
| Check if an anonymous value is compatible with a structural element.
template<class T >
Element< S, 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

| AlphabetSetBase ()
| Protected constructor.

## Detailed Description

### template<class S>
struct vcsn::algebra::AlphabetSetBase< S >

Base class for structural elements of alphabets.

This class is empty and should be used for typing purposes only.

Note that implementation types for alphabets should provide:

- `op_choose(AlphabetSet, T)`, which creates a random alphabet.
- `op_eq(AlphabetSet, T)`, which tests for equality between alphabets.

Definition at line 53 of file alphabets_base.hh.

## Member Function Documentation

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.

Definition at line 47 of file structure.hxx.

S & 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.

Definition at line 70 of file structure.hxx.

Referenced by vcsn::op_assign(), vcsn::algebra::op_rout(), and vcsn::operator!=().

const S & 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.

Definition at line 77 of file structure.hxx.