Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

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

This class provides the standard operator delegations to Element. More...

Inheritance diagram for SyntacticDecorator:

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

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. Maps to op_in_sub().

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. Maps to op_in_div().

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. Maps to op_in_mul().

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. Maps to op_in_mod().

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. Maps to op_swap().

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

const bool dynamic_value = true
 Attribute indicating whether the implementation type has run-time data.


Detailed Description

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

This class provides the standard operator delegations to Element.

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


Member Function Documentation

Element< S, T > & self  ) 
 

Accessor to the real type.

This accessor is intended to be used by implementations in this class and derivated MetaElement specializations to obtain a reference to the Element instance with its most derivated type.

const Element< S, T > & self  )  const
 

Accessor to the real type.

This accessor is intended to be used by implementations in this class and derivated MetaElement specializations to obtain a reference to the Element instance with its most derivated type.


Generated on Sun Jul 18 14:30:59 2004 for Vaucanson by doxygen 1.3.7