Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / libstdc++ / sinst.cc
1 // Instantiation file for the -*- C++ -*- string classes.
2 // Copyright (C) 1994 Free Software Foundation
3
4 // This file is part of the GNU ANSI C++ Library.  This library is free
5 // software; you can redistribute it and/or modify it under the
6 // terms of the GNU General Public License as published by the
7 // Free Software Foundation; either version 2, or (at your option)
8 // any later version.
9
10 // This library 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 library; see the file COPYING.  If not, write to the Free
17 // Software Foundation, 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
18
19 // As a special exception, if you link this library with files
20 // compiled with a GNU compiler to produce an executable, this does not cause
21 // the resulting executable to be covered by the GNU General Public License.
22 // This exception does not however invalidate any other reasons why
23 // the executable file might be covered by the GNU General Public License.
24
25 // Written by Jason Merrill based upon the specification by Takanori Adachi
26 // in ANSI X3J16/94-0013R2.
27
28 #ifdef __GNUG__
29 #ifdef TRAITS
30 #ifdef C
31 #pragma implementation "std/straits.h"
32 #endif
33 #endif
34 #endif
35
36 #include <string>
37
38 #ifdef C
39 typedef char c;
40 #endif
41 #ifdef W
42 typedef wchar_t c;
43 #endif
44
45 #if defined(TRAITS) && !defined(C)
46 template class string_char_traits <c>;
47 #else
48 /* string_char_traits<char> is already explicitly specialized in
49    std/straits.h.  */
50 #endif
51
52 typedef basic_string <c> s;
53
54 #ifdef MAIN
55 template class basic_string <c>;
56 #endif
57
58 #ifdef ADDSS
59 template s operator+ (const s&, const s&);
60 #endif
61 #ifdef ADDPS
62 template s operator+ (const c*, const s&);
63 #endif
64 #ifdef ADDCS
65 template s operator+ (c, const s&);
66 #endif
67 #ifdef ADDSP
68 template s operator+ (const s&, const c*);
69 #endif
70 #ifdef ADDSC
71 template s operator+ (const s&, c);
72 #endif
73 #ifdef EQSS
74 template bool operator== (const s&, const s&);
75 #endif
76 #ifdef EQPS
77 template bool operator== (const c*, const s&);
78 #endif
79 #ifdef EQSP
80 template bool operator== (const s&, const c*);
81 #endif
82 #ifdef NESS
83 template bool operator!= (const s&, const s&);
84 #endif
85 #ifdef NEPS
86 template bool operator!= (const c*, const s&);
87 #endif
88 #ifdef NESP
89 template bool operator!= (const s&, const c*);
90 #endif
91 #ifdef LTSS
92 template bool operator< (const s&, const s&);
93 #endif
94 #ifdef LTPS
95 template bool operator< (const c*, const s&);
96 #endif
97 #ifdef LTSP
98 template bool operator< (const s&, const c*);
99 #endif
100 #ifdef GTSS
101 template bool operator> (const s&, const s&);
102 #endif
103 #ifdef GTPS
104 template bool operator> (const c*, const s&);
105 #endif
106 #ifdef GTSP
107 template bool operator> (const s&, const c*);
108 #endif
109 #ifdef LESS
110 template bool operator<= (const s&, const s&);
111 #endif
112 #ifdef LEPS
113 template bool operator<= (const c*, const s&);
114 #endif
115 #ifdef LESP
116 template bool operator<= (const s&, const c*);
117 #endif
118 #ifdef GESS
119 template bool operator>= (const s&, const s&);
120 #endif
121 #ifdef GEPS
122 template bool operator>= (const c*, const s&);
123 #endif
124 #ifdef GESP
125 template bool operator>= (const s&, const c*);
126 #endif
127 #ifdef EXTRACT
128 template istream& operator>> (istream&, s&);
129 #endif // EXTRACT
130 #ifdef INSERT
131 template ostream& operator<< (ostream&, const s&);
132 #endif // INSERT
133 #ifdef GETLINE
134 template istream& getline (istream&, s&, c);
135 #endif