]> git.ipfire.org Git - thirdparty/gcc.git/blame - libstdc++-v3/src/string-inst.cc
Makefile.am (std_headers): Remove cXXX from list.
[thirdparty/gcc.git] / libstdc++-v3 / src / string-inst.cc
CommitLineData
b2dad0e3
BK
1// Components for manipulating sequences of characters -*- C++ -*-
2
e61c3e8c 3// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
b2dad0e3
BK
4//
5// This file is part of the GNU ISO C++ Library. This library is free
6// software; you can redistribute it and/or modify it under the
7// terms of the GNU General Public License as published by the
8// Free Software Foundation; either version 2, or (at your option)
9// any later version.
10
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU General Public License for more details.
15
16// You should have received a copy of the GNU General Public License along
17// with this library; see the file COPYING. If not, write to the Free
18// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
19// USA.
20
21// As a special exception, you may use this file as part of a free software
22// library without restriction. Specifically, if other files instantiate
23// templates or use macros or inline functions from this file, or you compile
5b5e609d 24// this file and link it with other files to produce an executable, this// file does not by itself cause the resulting executable to be covered by
b2dad0e3
BK
25// the GNU General Public License. This exception does not however
26// invalidate any other reasons why the executable file might be covered by
27// the GNU General Public License.
28
29//
30// ISO C++ 14882: 21 Strings library
31//
32
33// Written by Jason Merrill based upon the specification by Takanori Adachi
34// in ANSI X3J16/94-0013R2. Rewritten by Nathan Myers.
35
54c1bf78 36#include <string>
b2dad0e3
BK
37
38// Instantiation configuration.
39#ifndef C
40# define C char
b2dad0e3
BK
41#endif
42
43namespace std
44{
45 typedef basic_string<C> S;
46
e61c3e8c 47 template class basic_string<C>;
3acc0e76 48 template const C S::_Rep::_S_terminal;
3b8fd08f 49 template S::size_type S::_Rep::_S_max_size;
b2dad0e3 50
e61c3e8c
BK
51 template S operator+(const C*, const S&);
52 template S operator+(C, const S&);
53 template bool operator==(const S::iterator&, const S::iterator&);
54 template bool operator==(const S::const_iterator&, const S::const_iterator&);
b2dad0e3 55
e61c3e8c
BK
56 // Only one template keyword allowed here.
57 // See core issue #46 (NAD)
58 // http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/cwg_closed.html#46
bf6adbe2
MM
59 template
60 S::basic_string(C*, C*, const allocator<C>&);
61
ea0c0b6e
BK
62 template
63 S::basic_string(const C*, const C*, const allocator<C>&);
64
b2dad0e3 65 template
e61c3e8c 66 S::basic_string(S::iterator, S::iterator, const allocator<C>&);
9b30b506 67
9a304d17
PC
68 template
69 S::basic_string(S::const_iterator, S::const_iterator, const allocator<C>&);
70
71 template
72 S&
73 S::_M_replace(S::iterator, S::iterator, S::iterator, S::iterator,
78bd5031 74 input_iterator_tag);
9a304d17
PC
75
76 template
77 S&
78 S::_M_replace(S::iterator, S::iterator, S::const_iterator,
78bd5031 79 S::const_iterator, input_iterator_tag);
9a304d17 80
9b30b506
MM
81 template
82 S&
78bd5031 83 S::_M_replace(S::iterator, S::iterator, C*, C*, input_iterator_tag);
9b30b506
MM
84
85 template
86 S&
87 S::_M_replace(S::iterator, S::iterator, const C*, const C*,
78bd5031
PC
88 input_iterator_tag);
89
90 template
91 S&
92 S::_M_replace_safe(S::iterator, S::iterator, S::iterator, S::iterator);
93
94 template
95 S&
96 S::_M_replace_safe(S::iterator, S::iterator, S::const_iterator,
97 S::const_iterator);
98
99 template
100 S&
101 S::_M_replace_safe(S::iterator, S::iterator, C*, C*);
102
103 template
104 S&
105 S::_M_replace_safe(S::iterator, S::iterator, const C*, const C*);
9b30b506 106
9a304d17
PC
107 template
108 C*
109 S::_S_construct(S::iterator, S::iterator,
110 const allocator<C>&, forward_iterator_tag);
111
112 template
113 C*
114 S::_S_construct(S::const_iterator, S::const_iterator,
115 const allocator<C>&, forward_iterator_tag);
116
9b30b506
MM
117 template
118 C*
9a304d17 119 S::_S_construct(C*, C*, const allocator<C>&, forward_iterator_tag);
bf6adbe2
MM
120
121 template
122 C*
9a304d17
PC
123 S::_S_construct(const C*, const C*, const allocator<C>&,
124 forward_iterator_tag);
bf6adbe2
MM
125
126 template
127 void
8829f27a 128 __destroy_aux<S*>(S*, S*, __false_type);
e61c3e8c 129} // namespace std