COIN-OR::LEMON - Graph Library

Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • lemon/lgf_reader.h

    r319 r517  
    33 * This file is a part of LEMON, a generic C++ optimization library.
    44 *
    5  * Copyright (C) 2003-2008
     5 * Copyright (C) 2003-2009
    66 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport
    77 * (Egervary Research Group on Combinatorial Optimization, EGRES).
     
    391391  class DigraphReader;
    392392
    393   /// \brief Return a \ref DigraphReader class
    394   ///
    395   /// This function just returns a \ref DigraphReader class.
    396   /// \relates DigraphReader
    397393  template <typename Digraph>
    398   DigraphReader<Digraph> digraphReader(Digraph& digraph,
    399                                        std::istream& is = std::cin) {
    400     DigraphReader<Digraph> tmp(digraph, is);
    401     return tmp;
    402   }
    403 
    404   /// \brief Return a \ref DigraphReader class
    405   ///
    406   /// This function just returns a \ref DigraphReader class.
    407   /// \relates DigraphReader
     394  DigraphReader<Digraph> digraphReader(Digraph& digraph,
     395                                       std::istream& is = std::cin);
    408396  template <typename Digraph>
    409   DigraphReader<Digraph> digraphReader(Digraph& digraph,
    410                                        const std::string& fn) {
    411     DigraphReader<Digraph> tmp(digraph, fn);
    412     return tmp;
    413   }
    414 
    415   /// \brief Return a \ref DigraphReader class
    416   ///
    417   /// This function just returns a \ref DigraphReader class.
    418   /// \relates DigraphReader
     397  DigraphReader<Digraph> digraphReader(Digraph& digraph, const std::string& fn);
    419398  template <typename Digraph>
    420   DigraphReader<Digraph> digraphReader(Digraph& digraph, const char* fn) {
    421     DigraphReader<Digraph> tmp(digraph, fn);
    422     return tmp;
    423   }
     399  DigraphReader<Digraph> digraphReader(Digraph& digraph, const char *fn);
    424400
    425401  /// \ingroup lemon_io
     
    585561  private:
    586562
    587     friend DigraphReader<Digraph> digraphReader<>(Digraph& digraph,
    588                                                   std::istream& is);
    589     friend DigraphReader<Digraph> digraphReader<>(Digraph& digraph,
    590                                                   const std::string& fn);
    591     friend DigraphReader<Digraph> digraphReader<>(Digraph& digraph,
    592                                                   const char *fn);
     563    template <typename DGR>
     564    friend DigraphReader<DGR> digraphReader(DGR& digraph, std::istream& is);
     565    template <typename DGR>
     566    friend DigraphReader<DGR> digraphReader(DGR& digraph,
     567                                            const std::string& fn);
     568    template <typename DGR>
     569    friend DigraphReader<DGR> digraphReader(DGR& digraph, const char *fn);
    593570
    594571    DigraphReader(DigraphReader& other)
     
    871848        readLine();
    872849      }
    873       line.putback(c);
     850      if (readSuccess()) {
     851        line.putback(c);
     852      }
    874853    }
    875854
     
    12111190  };
    12121191
     1192  /// \brief Return a \ref DigraphReader class
     1193  ///
     1194  /// This function just returns a \ref DigraphReader class.
     1195  /// \relates DigraphReader
     1196  template <typename Digraph>
     1197  DigraphReader<Digraph> digraphReader(Digraph& digraph, std::istream& is) {
     1198    DigraphReader<Digraph> tmp(digraph, is);
     1199    return tmp;
     1200  }
     1201
     1202  /// \brief Return a \ref DigraphReader class
     1203  ///
     1204  /// This function just returns a \ref DigraphReader class.
     1205  /// \relates DigraphReader
     1206  template <typename Digraph>
     1207  DigraphReader<Digraph> digraphReader(Digraph& digraph,
     1208                                       const std::string& fn) {
     1209    DigraphReader<Digraph> tmp(digraph, fn);
     1210    return tmp;
     1211  }
     1212
     1213  /// \brief Return a \ref DigraphReader class
     1214  ///
     1215  /// This function just returns a \ref DigraphReader class.
     1216  /// \relates DigraphReader
     1217  template <typename Digraph>
     1218  DigraphReader<Digraph> digraphReader(Digraph& digraph, const char* fn) {
     1219    DigraphReader<Digraph> tmp(digraph, fn);
     1220    return tmp;
     1221  }
     1222
    12131223  template <typename Graph>
    12141224  class GraphReader;
    1215 
    1216   /// \brief Return a \ref GraphReader class
    1217   ///
    1218   /// This function just returns a \ref GraphReader class.
    1219   /// \relates GraphReader
     1225 
    12201226  template <typename Graph>
    1221   GraphReader<Graph> graphReader(Graph& graph, std::istream& is = std::cin) {
    1222     GraphReader<Graph> tmp(graph, is);
    1223     return tmp;
    1224   }
    1225 
    1226   /// \brief Return a \ref GraphReader class
    1227   ///
    1228   /// This function just returns a \ref GraphReader class.
    1229   /// \relates GraphReader
     1227  GraphReader<Graph> graphReader(Graph& graph,
     1228                                 std::istream& is = std::cin);
    12301229  template <typename Graph>
    1231   GraphReader<Graph> graphReader(Graph& graph, const std::string& fn) {
    1232     GraphReader<Graph> tmp(graph, fn);
    1233     return tmp;
    1234   }
    1235 
    1236   /// \brief Return a \ref GraphReader class
    1237   ///
    1238   /// This function just returns a \ref GraphReader class.
    1239   /// \relates GraphReader
     1230  GraphReader<Graph> graphReader(Graph& graph, const std::string& fn);
    12401231  template <typename Graph>
    1241   GraphReader<Graph> graphReader(Graph& graph, const char* fn) {
    1242     GraphReader<Graph> tmp(graph, fn);
    1243     return tmp;
    1244   }
     1232  GraphReader<Graph> graphReader(Graph& graph, const char *fn);
    12451233
    12461234  /// \ingroup lemon_io
     
    13691357
    13701358  private:
    1371     friend GraphReader<Graph> graphReader<>(Graph& graph, std::istream& is);
    1372     friend GraphReader<Graph> graphReader<>(Graph& graph,
    1373                                             const std::string& fn);
    1374     friend GraphReader<Graph> graphReader<>(Graph& graph, const char *fn);
     1359    template <typename GR>
     1360    friend GraphReader<GR> graphReader(GR& graph, std::istream& is);
     1361    template <typename GR>
     1362    friend GraphReader<GR> graphReader(GR& graph, const std::string& fn);
     1363    template <typename GR>
     1364    friend GraphReader<GR> graphReader(GR& graph, const char *fn);
    13751365
    13761366    GraphReader(GraphReader& other)
     
    17001690        readLine();
    17011691      }
    1702       line.putback(c);
     1692      if (readSuccess()) {
     1693        line.putback(c);
     1694      }
    17031695    }
    17041696
     
    20412033  };
    20422034
     2035  /// \brief Return a \ref GraphReader class
     2036  ///
     2037  /// This function just returns a \ref GraphReader class.
     2038  /// \relates GraphReader
     2039  template <typename Graph>
     2040  GraphReader<Graph> graphReader(Graph& graph, std::istream& is) {
     2041    GraphReader<Graph> tmp(graph, is);
     2042    return tmp;
     2043  }
     2044
     2045  /// \brief Return a \ref GraphReader class
     2046  ///
     2047  /// This function just returns a \ref GraphReader class.
     2048  /// \relates GraphReader
     2049  template <typename Graph>
     2050  GraphReader<Graph> graphReader(Graph& graph, const std::string& fn) {
     2051    GraphReader<Graph> tmp(graph, fn);
     2052    return tmp;
     2053  }
     2054
     2055  /// \brief Return a \ref GraphReader class
     2056  ///
     2057  /// This function just returns a \ref GraphReader class.
     2058  /// \relates GraphReader
     2059  template <typename Graph>
     2060  GraphReader<Graph> graphReader(Graph& graph, const char* fn) {
     2061    GraphReader<Graph> tmp(graph, fn);
     2062    return tmp;
     2063  }
     2064
    20432065  class SectionReader;
    20442066
     
    22272249        readLine();
    22282250      }
    2229       line.putback(c);
     2251      if (readSuccess()) {
     2252        line.putback(c);
     2253      }
    22302254    }
    22312255
     
    25682592        readLine();
    25692593      }
    2570       line.putback(c);
     2594      if (readSuccess()) {
     2595        line.putback(c);
     2596      }
    25712597    }
    25722598
Note: See TracChangeset for help on using the changeset viewer.