1/* This testcase is part of GDB, the GNU debugger. 2 3 Copyright 1992, 2004, 2007 Free Software Foundation, Inc. 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 3 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program. If not, see <http://www.gnu.org/licenses/>. 17 */ 18 19#include <string> 20#include <iostream> 21using namespace std; 22 23template <class T> 24class StringTest { 25public: 26 virtual void runTest(); 27 void testFunction(); 28}; 29 30template <class T> 31void StringTest<T>:: runTest() { 32 testFunction (); 33} 34 35template <class T> 36void StringTest <T>::testFunction() { 37 // initialize s with string literal 38 cout << "in StringTest" << endl; 39 string s("I am a shot string"); 40 cout << s << endl; 41 42 // insert 'r' to fix "shot" 43 s.insert(s.begin()+10,'r' ); 44 cout << s << endl; 45 46 // concatenate another string 47 s += "and now a longer string"; 48 cout << s << endl; 49 50 // find position where blank needs to be inserted 51 string::size_type spos = s.find("and"); 52 s.insert(spos, " "); 53 cout << s << endl; 54 55 // erase the concatenated part 56 s.erase(spos); 57 cout << s << endl; 58} 59 60int main() { 61 StringTest<wchar_t> ts; 62 ts.runTest(); 63} 64 65/* output: 66I am a shot string 67I am a short string 68I am a short stringand now a longer string 69I am a short string and now a longer string 70I am a short string 71*/ 72