80 : m_bit(bit), m_eit(eit), m_tok_eit(bit)
83 void setSource(Iterator bit, Iterator eit)
89 template<
typename DelimCont>
90 void setDelimList(
const DelimCont& cont)
92 m_delimPred.setDelimList(cont);
95 void setDelimList(It bit, It eit)
97 m_delimPred.setDelimList(bit, eit);
99 template<
typename DestCont>
100 bool next(DestCont& dst)
102 dst.erase(dst.begin(), dst.end());
103 if(m_tok_eit == m_eit)
105 m_tok_eit = std::find_if(m_bit, m_eit, m_delimPred);
107 if(m_tok_eit != m_eit)
108 m_matched = *m_tok_eit;
109 std::copy(m_bit, m_tok_eit, std::back_inserter<DestCont>(dst));
110 m_bit = (m_tok_eit != m_eit && ++m_tok_eit != m_eit ? m_tok_eit :m_eit);
113 const value_type& matched()
const
117 void addDelim(
const value_type& value)
119 m_delimPred.addDelim(value);
121 void removeDelim(
const value_type& value)
123 m_delimPred.removeDelim(value);
126 Iterator m_bit, m_eit, m_tok_eit;
127 IsDelim<value_type> m_delimPred;
128 value_type m_matched;
136 typedef typename Container::value_type value_type;
137 typedef typename Container::iterator iterator;
138 typedef typename Container::const_iterator const_iterator;
146 template<
typename DelimCont>
147 ContTokenizer(
const Container* cont,
const DelimCont& delims)
150 this->setDelimList(delims);
152 void setSource(
const Container* cont)