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 39typedef char c; 40#endif 41#ifdef W 42typedef wchar_t c; 43#endif 44 45#if defined(TRAITS) && !defined(C) 46template class string_char_traits <c>; 47#else 48/* string_char_traits<char> is already explicitly specialized in 49 std/straits.h. */ 50#endif 51 52typedef basic_string <c> s; 53 54#ifdef MAIN 55template class basic_string <c>; 56#endif 57 58#ifdef ADDSS 59template s operator+ (const s&, const s&); 60#endif 61#ifdef ADDPS 62template s operator+ (const c*, const s&); 63#endif 64#ifdef ADDCS 65template s operator+ (c, const s&); 66#endif 67#ifdef ADDSP 68template s operator+ (const s&, const c*); 69#endif 70#ifdef ADDSC 71template s operator+ (const s&, c); 72#endif 73#ifdef EQSS 74template bool operator== (const s&, const s&); 75#endif 76#ifdef EQPS 77template bool operator== (const c*, const s&); 78#endif 79#ifdef EQSP 80template bool operator== (const s&, const c*); 81#endif 82#ifdef NESS 83template bool operator!= (const s&, const s&); 84#endif 85#ifdef NEPS 86template bool operator!= (const c*, const s&); 87#endif 88#ifdef NESP 89template bool operator!= (const s&, const c*); 90#endif 91#ifdef LTSS 92template bool operator< (const s&, const s&); 93#endif 94#ifdef LTPS 95template bool operator< (const c*, const s&); 96#endif 97#ifdef LTSP 98template bool operator< (const s&, const c*); 99#endif 100#ifdef GTSS 101template bool operator> (const s&, const s&); 102#endif 103#ifdef GTPS 104template bool operator> (const c*, const s&); 105#endif 106#ifdef GTSP 107template bool operator> (const s&, const c*); 108#endif 109#ifdef LESS 110template bool operator<= (const s&, const s&); 111#endif 112#ifdef LEPS 113template bool operator<= (const c*, const s&); 114#endif 115#ifdef LESP 116template bool operator<= (const s&, const c*); 117#endif 118#ifdef GESS 119template bool operator>= (const s&, const s&); 120#endif 121#ifdef GEPS 122template bool operator>= (const c*, const s&); 123#endif 124#ifdef GESP 125template bool operator>= (const s&, const c*); 126#endif 127#ifdef EXTRACT 128template istream& operator>> (istream&, s&); 129#endif // EXTRACT 130#ifdef INSERT 131template ostream& operator<< (ostream&, const s&); 132#endif // INSERT 133#ifdef GETLINE 134template istream& getline (istream&, s&, c); 135#endif 136