Improve docs.
     7 ///\brief Graph maps that construates and destruates
 
     8 ///their elements dynamically.
 
    12 /// \addtogroup graphmaps
 
    15   /** The SymEdgeIt is wrapper class for the EdgeIt. It can be used to
 
    16    *  iterate on the symmetric maps when all of the edge - reverse edge pair
 
    17    *  has different parity.
 
    20   template <typename Graph, typename Edge, typename EdgeIt>
 
    21   class SymEdgeIt : public EdgeIt {
 
    24     /** Default constructor.
 
    29     /** Graph initialized constructor.
 
    31     SymEdgeIt(const Graph& graph) 
 
    33       while ( (n & 1) && n != -1) {
 
    38     /** Creating invelid SymEdgeIt.
 
    40     SymEdgeIt(Invalid invalid) 
 
    43     /** SymEdgeIt from the given Edge.
 
    45     SymEdgeIt(const Graph& graph, const Edge& edge)
 
    46       : EdgeIt(graph, edge) {
 
    47       while ( (n & 1) && n != -1) {
 
    52     /** Increase operator.
 
    54     SymEdgeIt& operator++() {
 
    56       while ( (n & 1) && n != -1) {
 
    63   /** The SymMap template class is graph map structure what
 
    64    *  wraps an other map structure to use as symmetric map structure.
 
    66    *  The template parameter is the MapRegistry that the maps
 
    67    *  will belong to and the ValueType.
 
    69   template <template <typename, typename> class DynMap, 
 
    70 	    typename MapRegistry, typename Value>
 
    71   class SymMap : public DynMap<MapRegistry, Value>{
 
    75     typedef DynMap<MapRegistry, Value> MapImpl;
 
    79     /// The graph type of the maps. 
 
    80     typedef typename MapRegistry::Graph Graph;
 
    82     typedef typename MapImpl::KeyType KeyType;
 
    87     /** Default constructor for the map.
 
    89     SymMap() : MapImpl() {}
 
    91     /** Graph and Registry initialized map constructor.
 
    93     SymMap(const Graph& g, MapRegistry& r) : MapImpl(g, r) {}
 
    95     /** Constructor to use default value to initialize the map. 
 
    97     SymMap(const Graph& g, MapRegistry& r, const Value& v) 
 
   100     /** Constructor to copy a map of the same map type.
 
   102     SymMap(const SymMap& copy) 
 
   103       : MapImpl(static_cast<const MapImpl&>(copy)) {}
 
   105     /** Constructor to copy a map of an other map type.
 
   107     template <typename CMap> SymMap(const CMap& copy) 
 
   110     /** Assign operator to copy a map of the same map type.
 
   112     SymMap& operator=(const SymMap& copy) {
 
   113       MapImpl::operator=(static_cast<const MapImpl&>(copy));
 
   117     /** Assign operator to copy a map of an other map type.
 
   119     template <typename CMap> SymMap& operator=(const CMap& copy) {
 
   120       MapImpl::operator=(copy);
 
   125      * The subscript operator. The map can be subscripted by the
 
   126      * actual keys of the graph. 
 
   128     typename MapImpl::ReferenceType operator[](const KeyType& key) {
 
   129       int id = MapImpl::getGraph()->id(key);	
 
   130       return MapImpl::operator[](id >> 1);
 
   134      * The const subscript operator. The map can be subscripted by the
 
   135      * actual keys of the graph. 
 
   137     typename MapImpl::ConstReferenceType operator[](const KeyType& key) const {
 
   138       int id = MapImpl::getGraph()->id(key);
 
   139       return MapImpl::operator[](id >> 1);
 
   142     /** Setter function of the map. Equivalent with map[key] = val.
 
   143      *  This is a compatibility feature with the not dereferable maps.
 
   145     void set(const KeyType& key, const typename MapImpl::ValueType& val) {
 
   146       int id = MapImpl::getGraph()->id(key);
 
   147       MapImpl::operator[](id >> 1) = val;
 
   150     /** Add a new key to the map. It called by the map registry.
 
   152     void add(const KeyType& key) {
 
   153       int id = MapImpl::getGraph()->id(key);
 
   158     /** Erase a key from the map. It called by the map registry.
 
   160     void erase(const KeyType& key) {
 
   161       int id = MapImpl::getGraph()->id(key);