# UniqueMap< T > Struct Template Reference

Canonical type map. More...

List of all members.

## Classes

struct | TiSlot
| Helper to make `std::type_info` into a valid key type for `std::map`. More...

## Public Types

typedef std::map< ti_slot, uniquelist_base * > | map_t
| The map type used.

## Static Public Member Functions

static map_t & | instance ()
| Access to the unique instance of this structure.

## Protected Member Functions

| UniqueMap ()
| Constructor for the class.
| ~UniqueMap ()
| Destructor for the class.

## Detailed Description

### template<class T>
struct vcsn::misc::unique::UniqueMap< T >

Canonical type map.

This structure is a helper for the `get` operator, that retains associations between static types (represented by the `std::type_info` structure) and a hash map of dynamic values.

This structure is used for dynamic type instances canonicalization, i.e. storage and retrieval of unique instances of structural elements in Vaucanson.

See also:
  `vcsn::Structure`

Definition at line 72 of file unique.hh.

## Constructor & Destructor Documentation

UniqueMap | ( |  | ) | `[protected]`

Constructor for the class.

It is protected so that no secondary instances may be created.

Definition at line 122 of file unique.hxx.

~UniqueMap | ( |  | ) | `[protected]`

Destructor for the class.

This destructor actually destroys all stored canonical instances. Any further reference to the canonical values is invalid.

Definition at line 127 of file unique.hxx.