1 /* $Id: iter.h 616 2005-08-19 20:11:01Z bruce $ */ 2 // Copyright (C) 2018 Bruce Guenter <bruce@untroubled.org> 3 // 4 // This program is free software; you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation; either version 2 of the License, or 7 // (at your option) any later version. 8 // 9 // This program is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with this program; if not, write to the Free Software 16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 18 #ifndef MYSTRING__ITER__H__ 19 #define MYSTRING__ITER__H__ 20 21 class mystring_iter 22 { 23 const mystring str; 24 const char sep; 25 int pos; 26 mystring part; 27 28 void advance(); 29 public: 30 mystring_iter(const mystring&, char = '\0'); 31 ~mystring_iter(); 32 33 operator bool() const { return pos >= 0; } 34 bool operator!() const { return pos < 0; } 35 mystring operator*() const { return part; } 36 void operator++() { advance(); } 37 }; 38 39 #endif 40