#include #include #include #include #include #include using namespace std; template > class basic_istringtraverser : public basic_istringstream { public: basic_istringtraverser(basic_string s) : basic_istringstream(s) {} charT operator*() {return (charT)(rdbuf()->sgetc());} basic_istringtraverser& operator++() {rdbuf()->sbumpc(); return *this;} }; int main (int argc, char* argv[]) { string my_string("Hello, this is my STRinG."); basic_istringtraverser st(my_string); char next; cout << "\n1"; st.get(next); cout << next; cout << "\n2"; st >> next; cout << next; cout << "\n3"; cout << *st; next = *++st; cout << next; cout << "\nbye..."; cout << endl; return EXIT_SUCCESS; }