28 : data_(&data), delim_(delim) {
57 return (data_==i.data_ && valid_==i.valid_ && pos_==i.pos_)
58 || (!valid_ && !i.valid_);
68 valid_=data_ && (pos_<data_->size());
70 const std::size_t last_pos=pos_;
71 pos_=data_->find(delim_, last_pos);
72 if (pos_==std::string::npos) {
75 assert(pos_>last_pos);
76 field_=data_->substr(last_pos, pos_-last_pos);