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

Provides the standard operator delegations to Element. More...

Inheritance diagram for SyntacticDecorator:

[legend]

List of all members.

## Public Member Functions

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

Protected constructor for class abstraction
SyntacticDecorator ()
SyntacticDecorator (const SyntacticDecorator &other)

## Detailed Description

### template<typename S, typename T> struct vcsn::SyntacticDecorator< S, T >

Provides the standard operator delegations to Element.

It defines all the self-application operators of C++, and delegates them to corresponding `op_*` functions.

Definition at line 44 of file syntactic_decorator.hh.

## Member Function Documentation

 Element& operator+= ( const U & other ) ` [inline]`

Self addition between Element and foreign values.

Maps to `op_in_add()`.

 Element& operator-= ( const U & other ) ` [inline]`

Self substraction between Element and foreign values.

Maps to `op_in_sub()`.

 Element& operator/= ( const U & other ) ` [inline]`

Self division between Element and foreign values.

Maps to `op_in_div()`.

 Element& operator*= ( const U & other ) ` [inline]`

Self multiplication between Element and foreign values.

Maps to `op_in_mul()`.

 Element& operator%= ( const U & other ) ` [inline]`

Self modulus between Element and foreign values.

Maps to `op_in_mod()`.

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

Standard constant-time swap between Element instances.

Maps to `op_swap()`.

Definition at line 130 of file syntactic_decorator.hxx.

 Element< S, T > & self ( ) ` [inline]`

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]`

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:11 2009 for Vaucanson by  1.5.6