equal
  deleted
  inserted
  replaced
  
    
    
     8 { | 
     8 { | 
     9 public:  | 
     9 public:  | 
    10   typedef GG Graph;  | 
    10   typedef GG Graph;  | 
    11   typedef typename GG::Edge Edge;  | 
    11   typedef typename GG::Edge Edge;  | 
    12     | 
    12     | 
    13   typedef Edge KeyType;  | 
    13   typedef Edge Key;  | 
    14   typedef TT ValueType;  | 
    14   typedef TT Value;  | 
    15     | 
    15     | 
    16   class RefType   | 
    16   class RefType   | 
    17   { | 
    17   { | 
    18     Graph &G;  | 
    18     Graph &G;  | 
    19     Edge e;  | 
    19     Edge e;  | 
    20   public:  | 
    20   public:  | 
    21     RefType(Graph &_G,Edge _e) : G(_G), e(_e) { } | 
    21     RefType(Graph &_G,Edge _e) : G(_G), e(_e) { } | 
    22       | 
    22       | 
    23     operator ValueType() const   | 
    23     operator Value() const   | 
    24     { | 
    24     { | 
    25       ValueType tmp;  | 
    25       Value tmp;  | 
    26       std::cout << G.id(G.source(e)) << "->"  | 
    26       std::cout << G.id(G.source(e)) << "->"  | 
    27 		<< G.id(G.target(e)) << ": ";  | 
    27 		<< G.id(G.target(e)) << ": ";  | 
    28       std::cin  >> tmp;  | 
    28       std::cin  >> tmp;  | 
    29       return tmp;  | 
    29       return tmp;  | 
    30     }  | 
    30     }  | 
    31     ValueType operator = (ValueType v) const  | 
    31     Value operator = (Value v) const  | 
    32     { | 
    32     { | 
    33       std::cout << G.id(G.source(e)) << "->"  | 
    33       std::cout << G.id(G.source(e)) << "->"  | 
    34 		<< G.id(G.target(e)) << ": " << v << '\n';  | 
    34 		<< G.id(G.target(e)) << ": " << v << '\n';  | 
    35       return v;  | 
    35       return v;  | 
    36     }  | 
    36     }  | 
    45   | 
    45   | 
    46 template<class K,class T>  | 
    46 template<class K,class T>  | 
    47 class NullMap  | 
    47 class NullMap  | 
    48 { | 
    48 { | 
    49 public:  | 
    49 public:  | 
    50   typedef K KeyType;  | 
    50   typedef K Key;  | 
    51   typedef T ValueType;  | 
    51   typedef T Value;  | 
    52     | 
    52     | 
    53   class RefType   | 
    53   class RefType   | 
    54   { | 
    54   { | 
    55     ValueType val;  | 
    55     Value val;  | 
    56   public:  | 
    56   public:  | 
    57     RefType(ValueType v) : val(v) { }    | 
    57     RefType(Value v) : val(v) { }    | 
    58     operator ValueType() const { return val; } | 
    58     operator Value() const { return val; } | 
    59     ValueType operator = (ValueType v) const { return val; } | 
    59     Value operator = (Value v) const { return val; } | 
    60   };  | 
    60   };  | 
    61     | 
    61     | 
    62 private:  | 
    62 private:  | 
    63   ValueType val;  | 
    63   Value val;  | 
    64 public:  | 
    64 public:  | 
    65   NullMap(ValueType v) : val(v) { } | 
    65   NullMap(Value v) : val(v) { } | 
    66   RefType operator[] (KeyType e) const { return RefType(v);}   | 
    66   RefType operator[] (Key e) const { return RefType(v);}   | 
    67 };  | 
    67 };  | 
    68   | 
    68   | 
    69 int main()  | 
    69 int main()  | 
    70 { | 
    70 { | 
    71   typedef SmartGraph Graph;  | 
    71   typedef SmartGraph Graph;  |