Commit 681a6919 by Paolo Carlini Committed by Paolo Carlini

PR libstdc++/28080 (partial)

2007-02-26  Paolo Carlini  <pcarlini@suse.de>

	PR libstdc++/28080 (partial)
	* include/std/bitset: Do not include <istream> and <ostream>,
	<ios> is enough.
	* include/std/iomanip: Do not include the whole <istream>,
	<ios> is enough; do not include <functional>; reformat.
	* include/std/functional: Do not include <cstddef>.
	* include/std/list: Do not include <bits/stl_uninitialized.h>.
	* include/std/numeric: Do not include the whole <iterator> and
	<bits/stl_function.h>.
	* include/std/valarray: Do not include <numeric>.
	* include/bits/stl_numeric.h: Include <bits/concept_check.h>.
	* src/iostream-inst.cc: Include <istream>.
	* include/ext/functional: Include <cstddef>.
	* testsuite/util/testsuite_hooks.h: Do not include <locale>,
	<ctime> is enough; qualify tm.
	* testsuite/util/testsuite_hooks.cc: Qualify tm.

2007-02-26  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/locale_facets.h (class ctype_byname<char>,
	class ctype_byname<wchar_t>): Declare.
	* src/ctype.cc (ctype_byname<wchar_t>::ctype_byname(const char*,
	size_t), ctype_byname<wchar_t>::~ctype_byname): Define.
	* config/locale/generic/ctype_members.cc (ctype_byname<char>::
	ctype_byname(const char*, size_t), ctype_byname<char>::~ctype_byname):
	Likewise.
	* config/locale/gnu/ctype_members.cc (ctype_byname<char>::
	ctype_byname(const char*, size_t), ctype_byname<char>::~ctype_byname):
	Likewise.
	* config/locale/darwin/ctype_members.cc (ctype_byname<char>::
	ctype_byname(const char*, size_t), ctype_byname<char>::~ctype_byname):
	Likewise.
	* testsuite/22_locale/headers/locale/synopsis.cc: Remove xfail.

From-SVN: r122329
parent ef585f86
2007-02-26 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/28080 (partial)
* include/std/bitset: Do not include <istream> and <ostream>,
<ios> is enough.
* include/std/iomanip: Do not include the whole <istream>,
<ios> is enough; do not include <functional>; reformat.
* include/std/functional: Do not include <cstddef>.
* include/std/list: Do not include <bits/stl_uninitialized.h>.
* include/std/numeric: Do not include the whole <iterator> and
<bits/stl_function.h>.
* include/std/valarray: Do not include <numeric>.
* include/bits/stl_numeric.h: Include <bits/concept_check.h>.
* src/iostream-inst.cc: Include <istream>.
* include/ext/functional: Include <cstddef>.
* testsuite/util/testsuite_hooks.h: Do not include <locale>,
<ctime> is enough; qualify tm.
* testsuite/util/testsuite_hooks.cc: Qualify tm.
2007-02-26 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.h (class ctype_byname<char>,
class ctype_byname<wchar_t>): Declare.
* src/ctype.cc (ctype_byname<wchar_t>::ctype_byname(const char*,
size_t), ctype_byname<wchar_t>::~ctype_byname): Define.
* config/locale/generic/ctype_members.cc (ctype_byname<char>::
ctype_byname(const char*, size_t), ctype_byname<char>::~ctype_byname):
Likewise.
* config/locale/gnu/ctype_members.cc (ctype_byname<char>::
ctype_byname(const char*, size_t), ctype_byname<char>::~ctype_byname):
Likewise.
* config/locale/darwin/ctype_members.cc (ctype_byname<char>::
ctype_byname(const char*, size_t), ctype_byname<char>::~ctype_byname):
Likewise.
* testsuite/22_locale/headers/locale/synopsis.cc: Remove xfail.
2007-02-25 Paolo Carlini <pcarlini@suse.de> 2007-02-25 Paolo Carlini <pcarlini@suse.de>
* testsuite/19_diagnostics/headers/cerrno/macros.cc: Include * testsuite/19_diagnostics/headers/cerrno/macros.cc: Include
......
// std::ctype implementation details, GNU version -*- C++ -*- // std::ctype implementation details, GNU version -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -40,16 +41,19 @@ namespace std ...@@ -40,16 +41,19 @@ namespace std
{ {
// NB: The other ctype<char> specializations are in src/locale.cc and // NB: The other ctype<char> specializations are in src/locale.cc and
// various /config/os/* files. // various /config/os/* files.
template<>
ctype_byname<char>::ctype_byname(const char* __s, size_t __refs) ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
: ctype<char>(0, false, __refs) : ctype<char>(0, false, __refs)
{ {
if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
{ {
this->_S_destroy_c_locale(this->_M_c_locale_ctype); this->_S_destroy_c_locale(this->_M_c_locale_ctype);
this->_S_create_c_locale(this->_M_c_locale_ctype, __s); this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
} }
} }
ctype_byname<char>::~ctype_byname()
{ }
#ifdef _GLIBCXX_USE_WCHAR_T #ifdef _GLIBCXX_USE_WCHAR_T
ctype<wchar_t>::__wmask_type ctype<wchar_t>::__wmask_type
......
// std::ctype implementation details, generic version -*- C++ -*- // std::ctype implementation details, generic version -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -39,16 +40,18 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -39,16 +40,18 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// NB: The other ctype<char> specializations are in src/locale.cc and // NB: The other ctype<char> specializations are in src/locale.cc and
// various /config/os/* files. // various /config/os/* files.
template<> ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
ctype_byname<char>::ctype_byname(const char* __s, size_t __refs) : ctype<char>(0, false, __refs)
: ctype<char>(0, false, __refs) {
{ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) {
{ this->_S_destroy_c_locale(this->_M_c_locale_ctype);
this->_S_destroy_c_locale(this->_M_c_locale_ctype); this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
this->_S_create_c_locale(this->_M_c_locale_ctype, __s); }
} }
}
ctype_byname<char>::~ctype_byname()
{ }
#ifdef _GLIBCXX_USE_WCHAR_T #ifdef _GLIBCXX_USE_WCHAR_T
ctype<wchar_t>::__wmask_type ctype<wchar_t>::__wmask_type
......
// std::ctype implementation details, GNU version -*- C++ -*- // std::ctype implementation details, GNU version -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -40,19 +41,21 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -40,19 +41,21 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// NB: The other ctype<char> specializations are in src/locale.cc and // NB: The other ctype<char> specializations are in src/locale.cc and
// various /config/os/* files. // various /config/os/* files.
template<> ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
ctype_byname<char>::ctype_byname(const char* __s, size_t __refs) : ctype<char>(0, false, __refs)
: ctype<char>(0, false, __refs) {
{ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) {
{ this->_S_destroy_c_locale(this->_M_c_locale_ctype);
this->_S_destroy_c_locale(this->_M_c_locale_ctype); this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
this->_S_create_c_locale(this->_M_c_locale_ctype, __s); this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper; this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower; this->_M_table = this->_M_c_locale_ctype->__ctype_b;
this->_M_table = this->_M_c_locale_ctype->__ctype_b; }
} }
}
ctype_byname<char>::~ctype_byname()
{ }
#ifdef _GLIBCXX_USE_WCHAR_T #ifdef _GLIBCXX_USE_WCHAR_T
ctype<wchar_t>::__wmask_type ctype<wchar_t>::__wmask_type
......
// Locale support -*- C++ -*- // Locale support -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
...@@ -1510,7 +1511,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -1510,7 +1511,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
class ctype_byname : public ctype<_CharT> class ctype_byname : public ctype<_CharT>
{ {
public: public:
typedef _CharT char_type; typedef typename ctype<_CharT>::mask mask;
explicit explicit
ctype_byname(const char* __s, size_t __refs = 0); ctype_byname(const char* __s, size_t __refs = 0);
...@@ -1522,10 +1523,30 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -1522,10 +1523,30 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
/// 22.2.1.4 Class ctype_byname specializations. /// 22.2.1.4 Class ctype_byname specializations.
template<> template<>
ctype_byname<char>::ctype_byname(const char*, size_t refs); class ctype_byname<char> : public ctype<char>
{
public:
explicit
ctype_byname(const char* __s, size_t __refs = 0);
protected:
virtual
~ctype_byname();
};
#ifdef _GLIBCXX_USE_WCHAR_T
template<> template<>
ctype_byname<wchar_t>::ctype_byname(const char*, size_t refs); class ctype_byname<wchar_t> : public ctype<wchar_t>
{
public:
explicit
ctype_byname(const char* __s, size_t __refs = 0);
protected:
virtual
~ctype_byname();
};
#endif
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
......
// Numeric functions implementation -*- C++ -*- // Numeric functions implementation -*- C++ -*-
// Copyright (C) 2001, 2004, 2005 Free Software Foundation, Inc. // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -61,6 +62,7 @@ ...@@ -61,6 +62,7 @@
#ifndef _STL_NUMERIC_H #ifndef _STL_NUMERIC_H
#define _STL_NUMERIC_H 1 #define _STL_NUMERIC_H 1
#include <bits/concept_check.h>
#include <debug/debug.h> #include <debug/debug.h>
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
......
// Functional extensions -*- C++ -*- // Functional extensions -*- C++ -*-
// Copyright (C) 2002, 2004, 2005 Free Software Foundation, Inc. // Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -64,6 +65,7 @@ ...@@ -64,6 +65,7 @@
#pragma GCC system_header #pragma GCC system_header
#include <functional> #include <functional>
#include <cstddef>
_GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
......
// <bitset> -*- C++ -*- // <bitset> -*- C++ -*-
// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
...@@ -52,14 +52,12 @@ ...@@ -52,14 +52,12 @@
#include <cstddef> // For size_t #include <cstddef> // For size_t
#include <cstring> // For memset #include <cstring> // For memset
#include <limits> // For numeric_limits
#include <string> #include <string>
#include <bits/functexcept.h> // For invalid_argument, out_of_range, #include <bits/functexcept.h> // For invalid_argument, out_of_range,
// overflow_error // overflow_error
#include <ostream> // For ostream (operator<<) #include <ios>
#include <istream> // For istream (operator>>)
#define _GLIBCXX_BITSET_BITS_PER_WORD numeric_limits<unsigned long>::digits #define _GLIBCXX_BITSET_BITS_PER_WORD (__CHAR_BIT__ * sizeof(unsigned long))
#define _GLIBCXX_BITSET_WORDS(__n) \ #define _GLIBCXX_BITSET_WORDS(__n) \
((__n) < 1 ? 0 : ((__n) + _GLIBCXX_BITSET_BITS_PER_WORD - 1) \ ((__n) < 1 ? 0 : ((__n) + _GLIBCXX_BITSET_BITS_PER_WORD - 1) \
/ _GLIBCXX_BITSET_BITS_PER_WORD) / _GLIBCXX_BITSET_BITS_PER_WORD)
......
// <functional> -*- C++ -*- // <functional> -*- C++ -*-
// Copyright (C) 2001, 2002 Free Software Foundation, Inc. // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -51,7 +52,6 @@ ...@@ -51,7 +52,6 @@
#pragma GCC system_header #pragma GCC system_header
#include <bits/c++config.h> #include <bits/c++config.h>
#include <cstddef>
#include <bits/stl_function.h> #include <bits/stl_function.h>
#endif /* _GLIBCXX_FUNCTIONAL */ #endif /* _GLIBCXX_FUNCTIONAL */
// Standard stream manipulators -*- C++ -*- // Standard stream manipulators -*- C++ -*-
// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003, 2005 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
// 2006, 2007
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
...@@ -42,8 +43,7 @@ ...@@ -42,8 +43,7 @@
#pragma GCC system_header #pragma GCC system_header
#include <bits/c++config.h> #include <bits/c++config.h>
#include <istream> #include <ios>
#include <functional>
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
...@@ -68,16 +68,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -68,16 +68,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_istream<_CharT,_Traits>& inline basic_istream<_CharT, _Traits>&
operator>>(basic_istream<_CharT,_Traits>& __is, _Resetiosflags __f) operator>>(basic_istream<_CharT, _Traits>& __is, _Resetiosflags __f)
{ {
__is.setf(ios_base::fmtflags(0), __f._M_mask); __is.setf(ios_base::fmtflags(0), __f._M_mask);
return __is; return __is;
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT,_Traits>& inline basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT,_Traits>& __os, _Resetiosflags __f) operator<<(basic_ostream<_CharT, _Traits>& __os, _Resetiosflags __f)
{ {
__os.setf(ios_base::fmtflags(0), __f._M_mask); __os.setf(ios_base::fmtflags(0), __f._M_mask);
return __os; return __os;
...@@ -102,15 +102,15 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -102,15 +102,15 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_istream<_CharT,_Traits>& inline basic_istream<_CharT, _Traits>&
operator>>(basic_istream<_CharT,_Traits>& __is, _Setiosflags __f) operator>>(basic_istream<_CharT, _Traits>& __is, _Setiosflags __f)
{ {
__is.setf(__f._M_mask); __is.setf(__f._M_mask);
return __is; return __is;
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT,_Traits>& inline basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT,_Traits>& __os, _Setiosflags __f) operator<<(basic_ostream<_CharT,_Traits>& __os, _Setiosflags __f)
{ {
__os.setf(__f._M_mask); __os.setf(__f._M_mask);
...@@ -137,19 +137,19 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -137,19 +137,19 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_istream<_CharT,_Traits>& inline basic_istream<_CharT, _Traits>&
operator>>(basic_istream<_CharT,_Traits>& __is, _Setbase __f) operator>>(basic_istream<_CharT, _Traits>& __is, _Setbase __f)
{ {
__is.setf(__f._M_base == 8 ? ios_base::oct : __is.setf(__f._M_base == 8 ? ios_base::oct :
__f._M_base == 10 ? ios_base::dec : __f._M_base == 10 ? ios_base::dec :
__f._M_base == 16 ? ios_base::hex : __f._M_base == 16 ? ios_base::hex :
ios_base::fmtflags(0), ios_base::basefield); ios_base::fmtflags(0), ios_base::basefield);
return __is; return __is;
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT,_Traits>& inline basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT,_Traits>& __os, _Setbase __f) operator<<(basic_ostream<_CharT, _Traits>& __os, _Setbase __f)
{ {
__os.setf(__f._M_base == 8 ? ios_base::oct : __os.setf(__f._M_base == 8 ? ios_base::oct :
__f._M_base == 10 ? ios_base::dec : __f._M_base == 10 ? ios_base::dec :
...@@ -179,16 +179,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -179,16 +179,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_istream<_CharT,_Traits>& inline basic_istream<_CharT, _Traits>&
operator>>(basic_istream<_CharT,_Traits>& __is, _Setfill<_CharT> __f) operator>>(basic_istream<_CharT, _Traits>& __is, _Setfill<_CharT> __f)
{ {
__is.fill(__f._M_c); __is.fill(__f._M_c);
return __is; return __is;
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT,_Traits>& inline basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT,_Traits>& __os, _Setfill<_CharT> __f) operator<<(basic_ostream<_CharT, _Traits>& __os, _Setfill<_CharT> __f)
{ {
__os.fill(__f._M_c); __os.fill(__f._M_c);
return __os; return __os;
...@@ -213,16 +213,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -213,16 +213,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_istream<_CharT,_Traits>& inline basic_istream<_CharT, _Traits>&
operator>>(basic_istream<_CharT,_Traits>& __is, _Setprecision __f) operator>>(basic_istream<_CharT, _Traits>& __is, _Setprecision __f)
{ {
__is.precision(__f._M_n); __is.precision(__f._M_n);
return __is; return __is;
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT,_Traits>& inline basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT,_Traits>& __os, _Setprecision __f) operator<<(basic_ostream<_CharT, _Traits>& __os, _Setprecision __f)
{ {
__os.precision(__f._M_n); __os.precision(__f._M_n);
return __os; return __os;
...@@ -247,16 +247,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -247,16 +247,16 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_istream<_CharT,_Traits>& inline basic_istream<_CharT, _Traits>&
operator>>(basic_istream<_CharT,_Traits>& __is, _Setw __f) operator>>(basic_istream<_CharT, _Traits>& __is, _Setw __f)
{ {
__is.width(__f._M_n); __is.width(__f._M_n);
return __is; return __is;
} }
template<typename _CharT, typename _Traits> template<typename _CharT, typename _Traits>
inline basic_ostream<_CharT,_Traits>& inline basic_ostream<_CharT, _Traits>&
operator<<(basic_ostream<_CharT,_Traits>& __os, _Setw __f) operator<<(basic_ostream<_CharT, _Traits>& __os, _Setw __f)
{ {
__os.width(__f._M_n); __os.width(__f._M_n);
return __os; return __os;
......
// <list> -*- C++ -*- // <list> -*- C++ -*-
// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc. // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -66,7 +67,6 @@ ...@@ -66,7 +67,6 @@
#include <bits/stl_algobase.h> #include <bits/stl_algobase.h>
#include <bits/allocator.h> #include <bits/allocator.h>
#include <bits/stl_construct.h> #include <bits/stl_construct.h>
#include <bits/stl_uninitialized.h>
#include <bits/stl_list.h> #include <bits/stl_list.h>
#ifndef _GLIBCXX_EXPORT_TEMPLATE #ifndef _GLIBCXX_EXPORT_TEMPLATE
......
...@@ -64,8 +64,7 @@ ...@@ -64,8 +64,7 @@
#include <bits/c++config.h> #include <bits/c++config.h>
#include <cstddef> #include <cstddef>
#include <iterator> #include <bits/stl_iterator_base_types.h>
#include <bits/stl_function.h>
#include <bits/stl_numeric.h> #include <bits/stl_numeric.h>
#endif /* _GLIBCXX_NUMERIC */ #endif /* _GLIBCXX_NUMERIC */
// The template and inlines for the -*- C++ -*- valarray class. // The template and inlines for the -*- C++ -*- valarray class.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
...@@ -43,7 +44,6 @@ ...@@ -43,7 +44,6 @@
#include <cstddef> #include <cstddef>
#include <cmath> #include <cmath>
#include <cstdlib> #include <cstdlib>
#include <numeric>
#include <algorithm> #include <algorithm>
#include <debug/debug.h> #include <debug/debug.h>
......
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004, 2005,
// 2006, 2007
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
...@@ -98,17 +99,20 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -98,17 +99,20 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
ctype<wchar_t>::~ctype() ctype<wchar_t>::~ctype()
{ _S_destroy_c_locale(_M_c_locale_ctype); } { _S_destroy_c_locale(_M_c_locale_ctype); }
template<> ctype_byname<wchar_t>::ctype_byname(const char* __s, size_t __refs)
ctype_byname<wchar_t>::ctype_byname(const char* __s, size_t __refs) : ctype<wchar_t>(__refs)
: ctype<wchar_t>(__refs) {
{ if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0) {
{ this->_S_destroy_c_locale(this->_M_c_locale_ctype);
this->_S_destroy_c_locale(this->_M_c_locale_ctype); this->_S_create_c_locale(this->_M_c_locale_ctype, __s);
this->_S_create_c_locale(this->_M_c_locale_ctype, __s); this->_M_initialize_ctype();
this->_M_initialize_ctype(); }
} }
}
ctype_byname<wchar_t>::~ctype_byname()
{ }
#endif #endif
_GLIBCXX_END_NAMESPACE _GLIBCXX_END_NAMESPACE
// Explicit instantiation file. // Explicit instantiation file.
// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
// 2006, 2007
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
...@@ -33,6 +34,7 @@ ...@@ -33,6 +34,7 @@
// //
#include <iomanip> #include <iomanip>
#include <istream>
_GLIBCXX_BEGIN_NAMESPACE(std) _GLIBCXX_BEGIN_NAMESPACE(std)
......
// { dg-do compile { xfail *-*-* } } // { dg-do compile }
// { dg-excess-errors "" }
// Copyright (C) 2007 Free Software Foundation, Inc. // Copyright (C) 2007 Free Software Foundation, Inc.
// //
......
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
// Utility subroutines for the C++ library testsuite. // Utility subroutines for the C++ library testsuite.
// //
// Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. // Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // 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 // software; you can redistribute it and/or modify it under the
...@@ -314,11 +315,11 @@ namespace __gnu_test ...@@ -314,11 +315,11 @@ namespace __gnu_test
} }
// For use in 22_locale/time_get and time_put. // For use in 22_locale/time_get and time_put.
tm std::tm
test_tm(int sec, int min, int hour, int mday, int mon, test_tm(int sec, int min, int hour, int mday, int mon,
int year, int wday, int yday, int isdst) int year, int wday, int yday, int isdst)
{ {
static tm tmp; static std::tm tmp;
tmp.tm_sec = sec; tmp.tm_sec = sec;
tmp.tm_min = min; tmp.tm_min = min;
tmp.tm_hour = hour; tmp.tm_hour = hour;
......
// -*- C++ -*- // -*- C++ -*-
// Utility subroutines for the C++ library testsuite. // Utility subroutines for the C++ library testsuite.
// //
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006 // Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
// Free Software Foundation, Inc. // Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
...@@ -59,7 +59,8 @@ ...@@ -59,7 +59,8 @@
#include <bits/c++config.h> #include <bits/c++config.h>
#include <bits/functexcept.h> #include <bits/functexcept.h>
#include <cstddef> #include <cstddef>
#include <locale> #include <ctime>
#ifdef _GLIBCXX_HAVE_SYS_STAT_H #ifdef _GLIBCXX_HAVE_SYS_STAT_H
#include <sys/stat.h> #include <sys/stat.h>
#endif #endif
...@@ -387,8 +388,8 @@ namespace __gnu_test ...@@ -387,8 +388,8 @@ namespace __gnu_test
}; };
// For use in 22_locale/time_get and time_put. // For use in 22_locale/time_get and time_put.
tm test_tm(int sec, int min, int hour, int mday, int mon, std::tm test_tm(int sec, int min, int hour, int mday, int mon,
int year, int wday, int yday, int isdst); int year, int wday, int yday, int isdst);
} // namespace __gnu_test } // namespace __gnu_test
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment