re PR libstdc++/3829 (missing template instantiations)
2001-12-27 Phil Edwards <pme@gcc.gnu.org> PR libstdc++/3829 * src/misc-inst.cc: Many additional I/O-related instantiations. * testsuite/27_io/instantiations.cc: New file. From-SVN: r48324
This commit is contained in:
parent
7f729bc6b8
commit
2d53d9ebe7
@ -1,3 +1,9 @@
|
||||
2001-12-27 Phil Edwards <pme@gcc.gnu.org>
|
||||
|
||||
PR libstdc++/3829
|
||||
* src/misc-inst.cc: Many additional I/O-related instantiations.
|
||||
* testsuite/27_io/instantiations.cc: New file.
|
||||
|
||||
2001-12-26 Benjamin Kosnik <bkoz@waller.constant.com>
|
||||
|
||||
* testsuite/24_iterators/insert_iterator.cc (test02): Add.
|
||||
|
@ -44,6 +44,7 @@
|
||||
#include <bits/std_istream.h>
|
||||
#include <bits/std_ostream.h>
|
||||
#include <bits/std_string.h>
|
||||
#include <bits/std_iomanip.h>
|
||||
|
||||
// NB: unnecessary if the .h headers include these
|
||||
#ifndef _GLIBCPP_FULLY_COMPLIANT_HEADERS
|
||||
@ -93,6 +94,17 @@ namespace std
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// iomanip
|
||||
//
|
||||
template class _Setfill<char>;
|
||||
template _Setfill<char> setfill(char);
|
||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||
template class _Setfill<wchar_t>;
|
||||
template _Setfill<wchar_t> setfill(wchar_t);
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// istream
|
||||
//
|
||||
@ -104,11 +116,20 @@ namespace std
|
||||
template istream& operator>>(istream&, char*);
|
||||
template istream& operator>>(istream&, unsigned char*);
|
||||
template istream& operator>>(istream&, signed char*);
|
||||
|
||||
template istream& operator>>(istream&, _Setiosflags);
|
||||
template istream& operator>>(istream&, _Resetiosflags);
|
||||
template istream& operator>>(istream&, _Setbase);
|
||||
template istream& operator>>(istream&, _Setfill<char>);
|
||||
template istream& operator>>(istream&, _Setprecision);
|
||||
template istream& operator>>(istream&, _Setw);
|
||||
|
||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||
template class basic_istream<wchar_t>;
|
||||
template wistream& ws(wistream&);
|
||||
template wistream& operator>>(wistream&, wchar_t&);
|
||||
template wistream& operator>>(wistream&, wchar_t*);
|
||||
template wistream& operator>>(wistream&, _Setfill<wchar_t>);
|
||||
#endif
|
||||
|
||||
|
||||
@ -125,6 +146,14 @@ namespace std
|
||||
template ostream& operator<<(ostream&, const char*);
|
||||
template ostream& operator<<(ostream&, const unsigned char*);
|
||||
template ostream& operator<<(ostream&, const signed char*);
|
||||
|
||||
template ostream& operator<<(ostream&, _Setiosflags);
|
||||
template ostream& operator<<(ostream&, _Resetiosflags);
|
||||
template ostream& operator<<(ostream&, _Setbase);
|
||||
template ostream& operator<<(ostream&, _Setfill<char>);
|
||||
template ostream& operator<<(ostream&, _Setprecision);
|
||||
template ostream& operator<<(ostream&, _Setw);
|
||||
|
||||
#ifdef _GLIBCPP_USE_WCHAR_T
|
||||
template class basic_ostream<wchar_t>;
|
||||
template wostream& endl(wostream&);
|
||||
@ -134,6 +163,7 @@ namespace std
|
||||
template wostream& operator<<(wostream&, char);
|
||||
template wostream& operator<<(wostream&, const wchar_t*);
|
||||
template wostream& operator<<(wostream&, const char*);
|
||||
template wostream& operator<<(wostream&, _Setfill<wchar_t>);
|
||||
#endif
|
||||
|
||||
|
||||
|
68
libstdc++-v3/testsuite/27_io/instantiations.cc
Normal file
68
libstdc++-v3/testsuite/27_io/instantiations.cc
Normal file
@ -0,0 +1,68 @@
|
||||
// Copyright (C) 2001 Free Software Foundation, Inc.
|
||||
//
|
||||
// This file is part of the GNU ISO C++ Library. This library is free
|
||||
// software; you can redistribute it and/or modify it under the
|
||||
// terms of the GNU General Public License as published by the
|
||||
// Free Software Foundation; either version 2, or (at your option)
|
||||
// any later version.
|
||||
|
||||
// This library is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// You should have received a copy of the GNU General Public License along
|
||||
// with this library; see the file COPYING. If not, write to the Free
|
||||
// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
|
||||
// USA.
|
||||
|
||||
// Some members need to be explicitly instantiated, so that users can build
|
||||
// their own code with -fno-implicit-templates and not suffer from a zillion
|
||||
// link errors.
|
||||
|
||||
// { dg-options "-fno-implicit-templates" }
|
||||
|
||||
#include <fstream>
|
||||
#include <istream>
|
||||
#include <ostream>
|
||||
#include <sstream>
|
||||
#include <iomanip>
|
||||
#include <testsuite_hooks.h>
|
||||
|
||||
|
||||
// PR libstdc++/3829
|
||||
void
|
||||
test01()
|
||||
{
|
||||
using namespace std;
|
||||
string x (" this is text");
|
||||
istringstream sin (x);
|
||||
ostringstream sout;
|
||||
|
||||
// same order as in bits/std_iomanip.h
|
||||
sin >> resetiosflags(ios_base::dec)
|
||||
>> setiosflags(ios_base::dec)
|
||||
>> setbase(ios_base::dec)
|
||||
>> setfill('c')
|
||||
>> setprecision(5)
|
||||
>> setw(20)
|
||||
>> ws;
|
||||
VERIFY(sin);
|
||||
|
||||
sout << resetiosflags(ios_base::dec)
|
||||
<< setiosflags(ios_base::dec)
|
||||
<< setbase(ios_base::dec)
|
||||
<< setfill('c')
|
||||
<< setprecision(5)
|
||||
<< setw(20)
|
||||
<< ends << flush << endl;
|
||||
VERIFY(sout);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main()
|
||||
{
|
||||
test01();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user