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 136