src/lemon/bits/item_reader.h
changeset 1427 14c75970840e
parent 1415 2a5810c2f806
child 1429 4283998fb2be
     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.