- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# SetSlot Struct Template Reference
[Fundamental C++: the Element design pattern.]

Type of the `set_` attribute of the `Element` class. More...

Inheritance diagram for SetSlot:

[legend]

List of all members.

## Public Member Functions
const S & | _structure_get () const
| Access to the instance of the structural element.
bool | _structure_bound () const
| Whether the current set slot is linked to a structural element.
| SetSlot ()
| Trivial constructor.
| SetSlot (const SetSlot &other)
| Trivial constructor.
| SetSlot (const S &other)
| Trivial constructor.
Methods to link the Slot
Because this version of the class pertains to static S.E. 's, those methods actually do nothing and calls to it should be optimized away.
void | _structure_assign (const SetSlotAttribute &other)
| Link a `SetSlot` to another.
void | _structure_attach (const S &other)
| Link a `SetSlot` to a structural element.

## Detailed Description

### template<typename S, typename Tag>
struct vcsn::SetSlot< S, Tag >

Type of the `set_` attribute of the `Element` class.

Derives from `SetSlotAttribute`, a reference to a structural element to which an `Element` is related.

The actual implementation of `SetSlot<S>`, for a given structural element `S`, depends on the value of `dynamic_traits<S>ret`, which chooses which version of `SetSlotAttribute` to inherit from.

Additionnally, the class can be meta-tagged when multiple inheritance for the same structural element `S` is needed. This meta-tag (second template argument) makes the type unique w.r.t. the tag type.

See also:
  - `SetSlotAttribute`
  - `dynamic_traits`
  - `Element`

Definition at line 192 of file slots.hh.

## Constructor & Destructor Documentation

SetSlot | ( |  | ) | `[inline]`

Trivial constructor.

Calls the inherited constructor from `SetSlotAttribute`.

Definition at line 113 of file slots.hxx.

SetSlot | ( | const SetSlot< S, Tag > & | other | ) | `[inline]`

Trivial constructor.

Calls the inherited constructor from `SetSlotAttribute`.

Definition at line 118 of file slots.hxx.

SetSlot | ( | const S & | other | ) | `[inline]`

Trivial constructor.

Calls the inherited constructor from `SetSlotAttribute`.

Definition at line 123 of file slots.hxx.

## Member Function Documentation

const S & _structure_get | ( |  | ) | const`[inherited]`

Access to the instance of the structural element.

Because this version of the class pertains to static S.E.'s, this accessor returns a NULL reference, most likely inappropriate for any other form of dereferencing other than accessing methods of the S.E. (which do not use the reference anyway).

Referenced by Series::monoid(), Series::semiring(), and Element::structure().

bool _structure_bound | ( |  | ) | const`[inherited]`

Whether the current set slot is linked to a structural element.

This version always returns `true`.