]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/testsuite/gdb.cp/bs15503.cc
4a135783762a0acfb650d43de82b97209c469190
[thirdparty/binutils-gdb.git] / gdb / testsuite / gdb.cp / bs15503.cc
1 /* This testcase is part of GDB, the GNU debugger.
2
3 Copyright 1992-2020 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 #include <string>
19 #include <iostream>
20 using namespace std;
21
22 template <class T>
23 class StringTest {
24 public:
25 virtual void runTest();
26 void testFunction();
27 };
28
29 template <class T>
30 void StringTest<T>:: runTest() {
31 testFunction ();
32 }
33
34 template <class T>
35 void StringTest <T>::testFunction() {
36 // initialize s with string literal
37 cout << "in StringTest" << endl;
38 string s("I am a shot string");
39 cout << s << endl;
40
41 // insert 'r' to fix "shot"
42 s.insert(s.begin()+10,'r' );
43 cout << s << endl;
44
45 // concatenate another string
46 s += "and now a longer string";
47 cout << s << endl;
48
49 // find position where blank needs to be inserted
50 string::size_type spos = s.find("and");
51 s.insert(spos, " ");
52 cout << s << endl;
53
54 // erase the concatenated part
55 s.erase(spos);
56 cout << s << endl;
57 }
58
59 int main() {
60 StringTest<wchar_t> ts;
61 ts.runTest();
62
63 return 0;
64 }
65
66 /* output:
67 I am a shot string
68 I am a short string
69 I am a short stringand now a longer string
70 I am a short string and now a longer string
71 I am a short string
72 */