COIN-OR::LEMON - Graph Library

Changeset 515:a7eeb8af6b34 in lemon-0.x for src/work/alpar/list_graph.h


Ignore:
Timestamp:
05/03/04 19:06:38 (20 years ago)
Author:
Alpar Juttner
Branch:
default
Phase:
public
Convert:
svn:c9d7d8f5-90d6-0310-b91f-818b3a526b0e/lemon/trunk@675
Message:

To be compatible with gcc-3.4.0 ...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/work/alpar/list_graph.h

    r508 r515  
    6464      const ListGraph* G;
    6565    public:
    66       virtual void add(const Key k) = NULL;
    67       virtual void erase(const Key k) = NULL;
     66      virtual void add(const Key k) = 0;
     67      virtual void erase(const Key k) = 0;
    6868      DynMapBase(const ListGraph &_G) : G(&_G) {}
    6969      virtual ~DynMapBase() {}
     
    764764      const NodeSet* G;
    765765    public:
    766       virtual void add(const Key k) = NULL;
    767       virtual void erase(const Key k) = NULL;
     766      virtual void add(const Key k) = 0;
     767      virtual void erase(const Key k) = 0;
    768768      DynMapBase(const NodeSet &_G) : G(&_G) {}
    769769      virtual ~DynMapBase() {}
     
    11531153    NodeGraphType &G;
    11541154
     1155  public:
    11551156    class Node;
    1156    
     1157
     1158  private:
    11571159    //Edges are double linked.
    11581160    //The free edges are only single linked using the "next_in" field.
     
    11711173
    11721174   
    1173     typename NodeGraphType::NodeMap<NodeT> nodes;
     1175    typename NodeGraphType::template NodeMap<NodeT> nodes;
    11741176   
    11751177    std::vector<EdgeT> edges;
     
    11841186      const EdgeSet* G;
    11851187    public:
    1186       virtual void add(const Key k) = NULL;
    1187       virtual void erase(const Key k) = NULL;
     1188      virtual void add(const Key k) = 0;
     1189      virtual void erase(const Key k) = 0;
    11881190      DynMapBase(const EdgeSet &_G) : G(&_G) {}
    11891191      virtual ~DynMapBase() {}
     
    14501452        for(G.first(m);
    14511453            G.valid(m) && G.nodes[m].first_in == -1;  G.next(m));
    1452         n = G.valid(m)?-1:G.nodes[m].first_in;
     1454        //AJJAJ! This is a non sense!!!!!!!
     1455        this->n = G.valid(m)?-1:G.nodes[m].first_in;
    14531456      }
    14541457      EdgeIt (Invalid i) : Edge(i) { }
     
    14561459      ///\bug This is a workaround until somebody tells me how to
    14571460      ///make class \c SymEdgeSet::SymEdgeMap friend of Edge
    1458       int &idref() {return n;}
     1461      int &idref() {return this->n;}
    14591462    };
    14601463   
     
    14761479    };
    14771480
    1478     template <typename T> class NodeMap : public NodeGraphType::NodeMap<T>
     1481    template <typename T> class NodeMap :
     1482      public NodeGraphType::template NodeMap<T>
    14791483    {
    14801484    public:
    14811485      NodeMap(const EdgeSet &_G) :
    1482         NodeGraphType::NodeMap<T>(_G.G) { }
     1486        NodeGraphType::NodeMap(_G.G) { } //AJAJJ <T> would be wrong!!!
    14831487      NodeMap(const EdgeSet &_G,const T &t) :
    1484         NodeGraphType::NodeMap<T>(_G.G,t) { }
     1488        NodeGraphType::NodeMap(_G.G,t) { }
    14851489      //It is unnecessary
    1486       NodeMap(const typename NodeGraphType::NodeMap<T> &m)
    1487         : NodeGraphType::NodeMap<T>(m) { }
     1490      NodeMap(const typename NodeGraphType::template NodeMap<T> &m) :
     1491        NodeGraphType::NodeMap(m) { }
    14881492
    14891493      ///\todo It can copy between different types.
    14901494      ///
    14911495      template<typename TT>
    1492       NodeMap(const typename NodeGraphType::NodeMap<TT> &m)
    1493         : NodeGraphType::NodeMap<T>(m) { }
     1496      NodeMap(const typename NodeGraphType::template NodeMap<TT> &m)
     1497        : NodeGraphType::NodeMap(m) { }
    14941498    };
    14951499   
Note: See TracChangeset for help on using the changeset viewer.