mirror of git://gcc.gnu.org/git/gcc.git
istream.tcc (operator>>(__istream_type& (*)(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)), operator>>(ios_base& (*)(ios_base&))): Move...
2006-10-13 Paolo Carlini <pcarlini@suse.de> * include/bits/istream.tcc (operator>>(__istream_type& (*)(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)), operator>>(ios_base& (*)(ios_base&))): Move... * include/std/std_istream.h: ... here. (operator>>(basic_istream<char,>&, unsigned char&), operator>>(basic_istream<char,>&, signed char&), operator>>(basic_istream<char,>&, unsigned char*), operator>>(basic_istream<char,>&, signed char*)): Mark inline. * include/bits/ostream.tcc (operator<<(__ostream_type& (*)(__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)), operator<<(ios_base& (*)(ios_base&))): Move... * include/std/std_ostream.h: ... here. (operator<<(basic_ostream<>&, _CharT), operator<<(basic_ostream<>&, char), operator<<(basic_ostream<char,>&, char), operator<<(basic_ostream<char,>&, signed char), operator<<(basic_ostream<char,>&, unsigned char), operator<<(basic_ostream<>&, const _CharT*), operator<<(basic_ostream<char,>&, const char*), operator<<(basic_ostream<char,>&, const signed char*), operator<<(basic_ostream<char,>&, const unsigned char*), endl(basic_ostream<>&), ends(basic_ostream<>&), flush(basic_ostream<>&)): Mark inline. From-SVN: r117715
This commit is contained in:
parent
164ea65a27
commit
f7ab3fd1dc
|
@ -1,3 +1,29 @@
|
|||
2006-10-13 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
* include/bits/istream.tcc (operator>>(__istream_type&
|
||||
(*)(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
|
||||
operator>>(ios_base& (*)(ios_base&))): Move...
|
||||
* include/std/std_istream.h: ... here.
|
||||
(operator>>(basic_istream<char,>&, unsigned char&),
|
||||
operator>>(basic_istream<char,>&, signed char&),
|
||||
operator>>(basic_istream<char,>&, unsigned char*),
|
||||
operator>>(basic_istream<char,>&, signed char*)): Mark inline.
|
||||
* include/bits/ostream.tcc (operator<<(__ostream_type&
|
||||
(*)(__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
|
||||
operator<<(ios_base& (*)(ios_base&))): Move...
|
||||
* include/std/std_ostream.h: ... here.
|
||||
(operator<<(basic_ostream<>&, _CharT),
|
||||
operator<<(basic_ostream<>&, char),
|
||||
operator<<(basic_ostream<char,>&, char),
|
||||
operator<<(basic_ostream<char,>&, signed char),
|
||||
operator<<(basic_ostream<char,>&, unsigned char),
|
||||
operator<<(basic_ostream<>&, const _CharT*),
|
||||
operator<<(basic_ostream<char,>&, const char*),
|
||||
operator<<(basic_ostream<char,>&, const signed char*),
|
||||
operator<<(basic_ostream<char,>&, const unsigned char*),
|
||||
endl(basic_ostream<>&), ends(basic_ostream<>&),
|
||||
flush(basic_ostream<>&)): Mark inline.
|
||||
|
||||
2006-10-13 Paolo Carlini <pcarlini@suse.de>
|
||||
|
||||
PR libstdc++/28277 (partial: ostream bits 2)
|
||||
|
|
|
@ -85,30 +85,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
}
|
||||
}
|
||||
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_istream<_CharT, _Traits>&
|
||||
basic_istream<_CharT, _Traits>::
|
||||
operator>>(__istream_type& (*__pf)(__istream_type&))
|
||||
{ return __pf(*this); }
|
||||
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_istream<_CharT, _Traits>&
|
||||
basic_istream<_CharT, _Traits>::
|
||||
operator>>(__ios_type& (*__pf)(__ios_type&))
|
||||
{
|
||||
__pf(*this);
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_istream<_CharT, _Traits>&
|
||||
basic_istream<_CharT, _Traits>::
|
||||
operator>>(ios_base& (*__pf)(ios_base&))
|
||||
{
|
||||
__pf(*this);
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<typename _CharT, typename _Traits>
|
||||
template<typename _ValueT>
|
||||
basic_istream<_CharT, _Traits>&
|
||||
|
|
|
@ -61,41 +61,6 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
__os.setstate(ios_base::failbit);
|
||||
}
|
||||
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_ostream<_CharT, _Traits>&
|
||||
basic_ostream<_CharT, _Traits>::
|
||||
operator<<(__ostream_type& (*__pf)(__ostream_type&))
|
||||
{
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// DR 60. What is a formatted input function?
|
||||
// The inserters for manipulators are *not* formatted output functions.
|
||||
return __pf(*this);
|
||||
}
|
||||
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_ostream<_CharT, _Traits>&
|
||||
basic_ostream<_CharT, _Traits>::
|
||||
operator<<(__ios_type& (*__pf)(__ios_type&))
|
||||
{
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// DR 60. What is a formatted input function?
|
||||
// The inserters for manipulators are *not* formatted output functions.
|
||||
__pf(*this);
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_ostream<_CharT, _Traits>&
|
||||
basic_ostream<_CharT, _Traits>::
|
||||
operator<<(ios_base& (*__pf)(ios_base&))
|
||||
{
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// DR 60. What is a formatted input function?
|
||||
// The inserters for manipulators are *not* formatted output functions.
|
||||
__pf(*this);
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<typename _CharT, typename _Traits>
|
||||
template<typename _ValueT>
|
||||
basic_ostream<_CharT, _Traits>&
|
||||
|
|
|
@ -127,14 +127,23 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
* functions in constructs like "std::cin >> std::ws". For more
|
||||
* information, see the iomanip header.
|
||||
*/
|
||||
inline __istream_type&
|
||||
operator>>(__istream_type& (*__pf)(__istream_type&));
|
||||
__istream_type&
|
||||
operator>>(__istream_type& (*__pf)(__istream_type&))
|
||||
{ return __pf(*this); }
|
||||
|
||||
inline __istream_type&
|
||||
operator>>(__ios_type& (*__pf)(__ios_type&));
|
||||
__istream_type&
|
||||
operator>>(__ios_type& (*__pf)(__ios_type&))
|
||||
{
|
||||
__pf(*this);
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline __istream_type&
|
||||
operator>>(ios_base& (*__pf)(ios_base&));
|
||||
__istream_type&
|
||||
operator>>(ios_base& (*__pf)(ios_base&))
|
||||
{
|
||||
__pf(*this);
|
||||
return *this;
|
||||
}
|
||||
//@}
|
||||
|
||||
// [27.6.1.2.2] arithmetic extractors
|
||||
|
@ -247,7 +256,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
* @return The number of characters extracted by the previous
|
||||
* unformatted input function dispatched for this stream.
|
||||
*/
|
||||
inline streamsize
|
||||
streamsize
|
||||
gcount() const
|
||||
{ return _M_gcount; }
|
||||
|
||||
|
@ -331,7 +340,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
*
|
||||
* Returns @c get(s,n,widen('\n')).
|
||||
*/
|
||||
inline __istream_type&
|
||||
__istream_type&
|
||||
get(char_type* __s, streamsize __n)
|
||||
{ return this->get(__s, __n, this->widen('\n')); }
|
||||
|
||||
|
@ -364,7 +373,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
*
|
||||
* Returns @c get(sb,widen('\n')).
|
||||
*/
|
||||
inline __istream_type&
|
||||
__istream_type&
|
||||
get(__streambuf_type& __sb)
|
||||
{ return this->get(__sb, this->widen('\n')); }
|
||||
|
||||
|
@ -404,7 +413,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
*
|
||||
* Returns @c getline(s,n,widen('\n')).
|
||||
*/
|
||||
inline __istream_type&
|
||||
__istream_type&
|
||||
getline(char_type* __s, streamsize __n)
|
||||
{ return this->getline(__s, __n, this->widen('\n')); }
|
||||
|
||||
|
@ -675,7 +684,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
* For ease of use, sentries may be converted to booleans. The
|
||||
* return value is that of the sentry state (true == okay).
|
||||
*/
|
||||
operator bool() const { return _M_ok; }
|
||||
operator bool() const
|
||||
{ return _M_ok; }
|
||||
|
||||
private:
|
||||
bool _M_ok;
|
||||
|
@ -699,12 +709,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
operator>>(basic_istream<_CharT, _Traits>& __in, _CharT& __c);
|
||||
|
||||
template<class _Traits>
|
||||
basic_istream<char, _Traits>&
|
||||
inline basic_istream<char, _Traits>&
|
||||
operator>>(basic_istream<char, _Traits>& __in, unsigned char& __c)
|
||||
{ return (__in >> reinterpret_cast<char&>(__c)); }
|
||||
|
||||
template<class _Traits>
|
||||
basic_istream<char, _Traits>&
|
||||
inline basic_istream<char, _Traits>&
|
||||
operator>>(basic_istream<char, _Traits>& __in, signed char& __c)
|
||||
{ return (__in >> reinterpret_cast<char&>(__c)); }
|
||||
//@}
|
||||
|
@ -745,12 +755,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
operator>>(basic_istream<char>& __in, char* __s);
|
||||
|
||||
template<class _Traits>
|
||||
basic_istream<char, _Traits>&
|
||||
inline basic_istream<char, _Traits>&
|
||||
operator>>(basic_istream<char, _Traits>& __in, unsigned char* __s)
|
||||
{ return (__in >> reinterpret_cast<char*>(__s)); }
|
||||
|
||||
template<class _Traits>
|
||||
basic_istream<char, _Traits>&
|
||||
inline basic_istream<char, _Traits>&
|
||||
operator>>(basic_istream<char, _Traits>& __in, signed char* __s)
|
||||
{ return (__in >> reinterpret_cast<char*>(__s)); }
|
||||
//@}
|
||||
|
|
|
@ -131,14 +131,34 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
* functions in constructs like "std::cout << std::endl". For more
|
||||
* information, see the iomanip header.
|
||||
*/
|
||||
inline __ostream_type&
|
||||
operator<<(__ostream_type& (*__pf)(__ostream_type&));
|
||||
|
||||
inline __ostream_type&
|
||||
operator<<(__ios_type& (*__pf)(__ios_type&));
|
||||
|
||||
inline __ostream_type&
|
||||
operator<<(ios_base& (*__pf) (ios_base&));
|
||||
__ostream_type&
|
||||
operator<<(__ostream_type& (*__pf)(__ostream_type&))
|
||||
{
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// DR 60. What is a formatted input function?
|
||||
// The inserters for manipulators are *not* formatted output functions.
|
||||
return __pf(*this);
|
||||
}
|
||||
|
||||
__ostream_type&
|
||||
operator<<(__ios_type& (*__pf)(__ios_type&))
|
||||
{
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// DR 60. What is a formatted input function?
|
||||
// The inserters for manipulators are *not* formatted output functions.
|
||||
__pf(*this);
|
||||
return *this;
|
||||
}
|
||||
|
||||
__ostream_type&
|
||||
operator<<(ios_base& (*__pf) (ios_base&))
|
||||
{
|
||||
// _GLIBCXX_RESOLVE_LIB_DEFECTS
|
||||
// DR 60. What is a formatted input function?
|
||||
// The inserters for manipulators are *not* formatted output functions.
|
||||
__pf(*this);
|
||||
return *this;
|
||||
}
|
||||
//@}
|
||||
|
||||
// [27.6.2.5.2] arithmetic inserters
|
||||
|
@ -405,7 +425,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
{
|
||||
// Data Members:
|
||||
bool _M_ok;
|
||||
basic_ostream<_CharT,_Traits>& _M_os;
|
||||
basic_ostream<_CharT, _Traits>& _M_os;
|
||||
|
||||
public:
|
||||
/**
|
||||
|
@ -420,7 +440,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
* true ("okay").
|
||||
*/
|
||||
explicit
|
||||
sentry(basic_ostream<_CharT,_Traits>& __os);
|
||||
sentry(basic_ostream<_CharT, _Traits>& __os);
|
||||
|
||||
/**
|
||||
* @brief Possibly flushes the stream.
|
||||
|
@ -469,29 +489,29 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
* @c char, the character is widened before insertion.
|
||||
*/
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_ostream<_CharT, _Traits>&
|
||||
inline basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __out, _CharT __c)
|
||||
{ return __out._M_insert(&__c, 1); }
|
||||
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_ostream<_CharT, _Traits>&
|
||||
inline basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __out, char __c)
|
||||
{ return (__out << __out.widen(__c)); }
|
||||
|
||||
// Specialization
|
||||
template <class _Traits>
|
||||
basic_ostream<char, _Traits>&
|
||||
inline basic_ostream<char, _Traits>&
|
||||
operator<<(basic_ostream<char, _Traits>& __out, char __c)
|
||||
{ return __out._M_insert(&__c, 1); }
|
||||
|
||||
// Signed and unsigned
|
||||
template<class _Traits>
|
||||
basic_ostream<char, _Traits>&
|
||||
inline basic_ostream<char, _Traits>&
|
||||
operator<<(basic_ostream<char, _Traits>& __out, signed char __c)
|
||||
{ return (__out << static_cast<char>(__c)); }
|
||||
|
||||
template<class _Traits>
|
||||
basic_ostream<char, _Traits>&
|
||||
inline basic_ostream<char, _Traits>&
|
||||
operator<<(basic_ostream<char, _Traits>& __out, unsigned char __c)
|
||||
{ return (__out << static_cast<char>(__c)); }
|
||||
//@}
|
||||
|
@ -511,7 +531,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
* determined by [22.2.2.2.2]). @c out.width(0) is then called.
|
||||
*/
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_ostream<_CharT, _Traits>&
|
||||
inline basic_ostream<_CharT, _Traits>&
|
||||
operator<<(basic_ostream<_CharT, _Traits>& __out, const _CharT* __s)
|
||||
{
|
||||
if (!__s)
|
||||
|
@ -527,7 +547,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
|
||||
// Partial specializationss
|
||||
template<class _Traits>
|
||||
basic_ostream<char, _Traits>&
|
||||
inline basic_ostream<char, _Traits>&
|
||||
operator<<(basic_ostream<char, _Traits>& __out, const char* __s)
|
||||
{
|
||||
if (!__s)
|
||||
|
@ -539,12 +559,12 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
|
||||
// Signed and unsigned
|
||||
template<class _Traits>
|
||||
basic_ostream<char, _Traits>&
|
||||
inline basic_ostream<char, _Traits>&
|
||||
operator<<(basic_ostream<char, _Traits>& __out, const signed char* __s)
|
||||
{ return (__out << reinterpret_cast<const char*>(__s)); }
|
||||
|
||||
template<class _Traits>
|
||||
basic_ostream<char, _Traits> &
|
||||
inline basic_ostream<char, _Traits> &
|
||||
operator<<(basic_ostream<char, _Traits>& __out, const unsigned char* __s)
|
||||
{ return (__out << reinterpret_cast<const char*>(__s)); }
|
||||
//@}
|
||||
|
@ -559,7 +579,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
* on this subject.
|
||||
*/
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_ostream<_CharT, _Traits>&
|
||||
inline basic_ostream<_CharT, _Traits>&
|
||||
endl(basic_ostream<_CharT, _Traits>& __os)
|
||||
{ return flush(__os.put(__os.widen('\n'))); }
|
||||
|
||||
|
@ -570,7 +590,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
* this correctly writes the ASCII @c NUL character string terminator.
|
||||
*/
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_ostream<_CharT, _Traits>&
|
||||
inline basic_ostream<_CharT, _Traits>&
|
||||
ends(basic_ostream<_CharT, _Traits>& __os)
|
||||
{ return __os.put(_CharT()); }
|
||||
|
||||
|
@ -580,7 +600,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
|
|||
* This manipulator simply calls the stream's @c flush() member function.
|
||||
*/
|
||||
template<typename _CharT, typename _Traits>
|
||||
basic_ostream<_CharT, _Traits>&
|
||||
inline basic_ostream<_CharT, _Traits>&
|
||||
flush(basic_ostream<_CharT, _Traits>& __os)
|
||||
{ return __os.flush(); }
|
||||
|
||||
|
|
Loading…
Reference in New Issue