86 : m_bit(bit), m_eit(eit), m_tok_eit(bit)
89 void setSource(Iterator bit, Iterator eit)
95 template<
typename DelimCont>
96 void setDelimList(
const DelimCont& cont)
98 m_delimPred.setDelimList(cont);
100 template<
typename It>
101 void setDelimList(It bit, It eit)
103 m_delimPred.setDelimList(bit, eit);
105 template<
typename DestCont>
106 bool next(DestCont& dst)
108 dst.erase(dst.begin(), dst.end());
109 if(m_tok_eit == m_eit)
111 m_tok_eit = std::find_if(m_bit, m_eit, m_delimPred);
113 if(m_tok_eit != m_eit)
114 m_matched = *m_tok_eit;
115 std::copy(m_bit, m_tok_eit, std::back_inserter<DestCont>(dst));
116 m_bit = (m_tok_eit != m_eit && ++m_tok_eit != m_eit ? m_tok_eit :m_eit);
119 const value_type& matched()
const
123 void addDelim(
const value_type& value)
125 m_delimPred.addDelim(value);
127 void removeDelim(
const value_type& value)
129 m_delimPred.removeDelim(value);
132 Iterator m_bit, m_eit, m_tok_eit;
133 IsDelim<value_type> m_delimPred;
134 value_type m_matched;
142 typedef typename Container::value_type value_type;
143 typedef typename Container::iterator iterator;
144 typedef typename Container::const_iterator const_iterator;
152 template<
typename DelimCont>
153 ContTokenizer(
const Container* cont,
const DelimCont& delims)
156 this->setDelimList(delims);
158 void setSource(
const Container* cont)