source: trunk/gcc/libstdc++-v3/src/misc-inst.cc

Last change on this file was 1392, checked in by bird, 21 years ago

This commit was generated by cvs2svn to compensate for changes in r1391,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 3.4 KB
Line 
1// Explicit instantiation file.
2
3// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002
4// Free Software Foundation, Inc.
5//
6// This file is part of the GNU ISO C++ Library. This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
9// Free Software Foundation; either version 2, or (at your option)
10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15// GNU General Public License for more details.
16
17// You should have received a copy of the GNU General Public License along
18// with this library; see the file COPYING. If not, write to the Free
19// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
20// USA.
21
22// As a special exception, you may use this file as part of a free software
23// library without restriction. Specifically, if other files instantiate
24// templates or use macros or inline functions from this file, or you compile
25// this file and link it with other files to produce an executable, this
26// file does not by itself cause the resulting executable to be covered by
27// the GNU General Public License. This exception does not however
28// invalidate any other reasons why the executable file might be covered by
29// the GNU General Public License.
30
31//
32// ISO C++ 14882:
33//
34
35#include <string>
36#include <istream>
37#include <ostream>
38#include <algorithm>
39#include <vector>
40#include <bits/atomicity.h>
41
42namespace std
43{
44 // string related to iostreams
45 template
46 basic_istream<char>&
47 operator>>(basic_istream<char>&, string&);
48 template
49 basic_ostream<char>&
50 operator<<(basic_ostream<char>&, const string&);
51 template
52 basic_istream<char>&
53 getline(basic_istream<char>&, string&, char);
54 template
55 basic_istream<char>&
56 getline(basic_istream<char>&, string&);
57#ifdef _GLIBCPP_USE_WCHAR_T
58 template
59 basic_istream<wchar_t>&
60 operator>>(basic_istream<wchar_t>&, wstring&);
61 template
62 basic_ostream<wchar_t>&
63 operator<<(basic_ostream<wchar_t>&, const wstring&);
64 template
65 basic_istream<wchar_t>&
66 getline(basic_istream<wchar_t>&, wstring&, wchar_t);
67 template
68 basic_istream<wchar_t>&
69 getline(basic_istream<wchar_t>&, wstring&);
70#endif
71#ifdef _GLIBCPP_INST_ATOMICITY_LOCK
72 template volatile int __Atomicity_lock<0>::_S_atomicity_lock;
73#endif
74
75#if 1
76 // XXX
77 // 2002-05-24 These are no longer needed and should eventually be deleted.
78 template
79 string*
80 __uninitialized_fill_n_aux<string*, size_t, string>
81 (string*, size_t, string const &, __false_type);
82
83 template
84 string*
85 __uninitialized_copy_aux<vector<string>::const_iterator, string *>
86 (vector<string>::const_iterator, vector<string>::const_iterator,
87 string*, __false_type);
88#endif
89} // namespace std
90
91#ifdef _GLIBCPP_NEED_GENERIC_MUTEX
92namespace __gnu_cxx
93{
94#ifdef __GTHREAD_MUTEX_INIT
95 __gthread_mutex_t _Atomic_add_mutex = __GTHREAD_MUTEX_INIT;
96#else
97 // generic atomicity.h without static initialization
98 __gthread_mutex_t _Atomic_add_mutex;
99 __gthread_once_t _Atomic_add_mutex_once = __GTHREAD_ONCE_INIT;
100 void __gthread_atomic_add_mutex_once()
101 {
102 __GTHREAD_MUTEX_INIT_FUNCTION (&_Atomic_add_mutex);
103 }
104#endif
105} // namespace __gnu_cxx
106#endif // _GLIBCPP_NEED_GLOBAL_MUTEX
107
Note: See TracBrowser for help on using the repository browser.