1.1 --- a/src/lemon/bits/item_reader.h Wed May 18 09:39:06 2005 +0000
1.2 +++ b/src/lemon/bits/item_reader.h Wed May 18 13:02:47 2005 +0000
1.3 @@ -341,6 +341,30 @@
1.4 }
1.5 };
1.6
1.7 + template <>
1.8 + class DefaultReader<std::string> {
1.9 + public:
1.10 + typedef std::string Value;
1.11 +
1.12 + void read(std::istream& is, Value& value) const {
1.13 + char c;
1.14 + if (!(is >> c)) return;
1.15 + is.putback(c);
1.16 + switch (c) {
1.17 + case '\"':
1.18 + QuotedStringReader().read(is, value);
1.19 + break;
1.20 + case '(':
1.21 + ParsedStringReader().read(is, value);
1.22 + break;
1.23 + default:
1.24 + is >> value;
1.25 + break;
1.26 + }
1.27 + }
1.28 +
1.29 + };
1.30 +
1.31 template <typename Item>
1.32 class DefaultReader<std::vector<Item> >
1.33 : public PushBackReader<std::vector<Item> > {};
1.34 @@ -368,27 +392,7 @@
1.35 /// The default item reader for skipping a value in the stream.
1.36 ///
1.37 /// \author Balazs Dezso
1.38 - class DefaultSkipper {
1.39 - public:
1.40 - typedef std::string Value;
1.41 -
1.42 - void read(std::istream& is, Value& value) const {
1.43 - char c;
1.44 - if (!(is >> c)) return;
1.45 - is.putback(c);
1.46 - switch (c) {
1.47 - case '\"':
1.48 - QuotedStringReader().read(is, value);
1.49 - break;
1.50 - case '(':
1.51 - ParsedStringReader().read(is, value);
1.52 - break;
1.53 - default:
1.54 - DefaultReader<std::string>().read(is, value);
1.55 - break;
1.56 - }
1.57 - }
1.58 - };
1.59 + class DefaultSkipper : public DefaultReader<std::string> {};
1.60
1.61 /// \ingroup item_io
1.62 /// \brief Standard ReaderTraits for the GraphReader class.