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

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

Glue class between structural elements and implementation values. More...

Inheritance diagram for Element:

Inheritance graph
[legend]
List of all members.

Public Types

typedef S set_t
 Structure type for structural elements.

typedef T value_t
 Implementation type for values.


Public Member Functions

 Element ()
 Default constructor.

 Element (const Element &other)
 Copy constructor from Element instances of exactly the same type.

template<typename U>  Element (const Element< S, U > &other)
 Copy constructor from Element instances with different value type.

template<typename OtherS, typename U>  Element (const Element< OtherS, U > &other)
 Copy constructor from foreign Element instances.

 Element (const S &structure)
 Default constructor with the structural element specified.

 Element (const S &structure, const T &other)
 Explicit construction from structural element and value.

template<typename U>  Element (const S &structure, const U &other)
 Explicit construction from structural element and foreign value.

template<typename OtherS, typename U>  Element (const S &structure, const Element< OtherS, U > &other)
 Explicit construction with foreign Element conversion.

Elementoperator= (const Element &other)
 Assignment from the same Element type.

template<typename U> Elementoperator= (const Element< S, U > &other)
 Assignment from other implementation value types.

template<typename OtherS, typename U> Elementoperator= (const Element< OtherS, U > &other)
 Assignment from foreign Element types.

template<typename U> Elementoperator= (const U &other)
 Assignment from foreign implementation types.

const S & structure () const
 Accessor to the structural element.

void attach (const S &structure)
 Post-construction link to a structural element.

 Element (const T &other)
 Copy constructor from anonymous values.

template<typename U>  Element (const U &other)
 Copy constructor from anonymous values.

T & value ()
 Accessor to the value data.

const T & value () const
 Accessor to the value data.


Static Public Attributes

const bool dynamic
 Attribute indicating whether Element instances have run-time data.


Detailed Description

template<typename S, typename T>
class vcsn::Element< S, T >

Glue class between structural elements and implementation values.

Element is the center of the design pattern used in Vaucanson to have an orthogonal construction of object from two different viewpoints:

Element proposes a lot of different constructors so as to allow the largest structure of type conversions. Calling foreign constructors assume that there exist compatible op_convert() functions.

See also:


Constructor & Destructor Documentation

Element  ) 
 

Default constructor.

Note that it is not possible to use this contructor when the structural element has dynamic data. If you absolutely need to do so, please notice that it may be dangerous, and see utility::Deferrer.

See also:
utility::Deferrer

Element const Element< OtherS, U > &  other  ) 
 

Copy constructor from foreign Element instances.

Note that it is not possible to use this contructor when the structural element has dynamic data since it leaves it uninitialized.

Element const T &  other  ) 
 

Copy constructor from anonymous values.

Note that it is not possible to use this contructor when the structural element has dynamic data since it leaves it uninitialized.

Element const U &  other  ) 
 

Copy constructor from anonymous values.

Note that it is not possible to use this contructor when the structural element has dynamic data since it leaves it uninitialized.

Element const S &  structure  )  [explicit]
 

Default constructor with the structural element specified.

This constructor invokes the default constructor of the implementation value type.


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