]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
std_sstream.h (basic_istringstream): Adjust initialization.
authorBenjamin Kosnik <bkoz@redhat.com>
Fri, 28 Mar 2003 19:45:44 +0000 (19:45 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Fri, 28 Mar 2003 19:45:44 +0000 (19:45 +0000)
2003-03-28  Benjamin Kosnik  <bkoz@redhat.com>

* include/std/std_sstream.h (basic_istringstream): Adjust
initialization.
(basic_ostringstream): Same.
(basic_stringstream): Same.
* include/std/std_fstream.h (basic_ifstream): Adjust initialization.
(basic_ofstream): Same.
(basic_fstream): Same.
* include/std/std_ostream.h (basic_ostrem): Add protected ctor
that does not call init.
* include/std/std_istream.h (basic_istream): Same.
(basic_iostream): Construct istream, ostream uninitialized, use
init to initialize just once. Add protected ctor that does not
call init.

From-SVN: r64980

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/basic_ios.h
libstdc++-v3/include/std/std_fstream.h
libstdc++-v3/include/std/std_istream.h
libstdc++-v3/include/std/std_ostream.h
libstdc++-v3/include/std/std_sstream.h

index c038ba07ee90e55e894929f6be8724d41695b665..30a8b3ba689a30dfcea7c5bd8ae8af93cdbf2009 100644 (file)
@@ -1,3 +1,19 @@
+2003-03-28  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * include/std/std_sstream.h (basic_istringstream): Adjust
+       initialization.
+       (basic_ostringstream): Same.
+       (basic_stringstream): Same.     
+       * include/std/std_fstream.h (basic_ifstream): Adjust initialization.
+       (basic_ofstream): Same.
+       (basic_fstream): Same.
+       * include/std/std_ostream.h (basic_ostrem): Add protected ctor
+       that does not call init.
+       * include/std/std_istream.h (basic_istream): Same.              
+       (basic_iostream): Construct istream, ostream uninitialized, use
+       init to initialize just once. Add protected ctor that does not
+       call init.
+
 2003-03-28  Paolo Carlini  <pcarlini@unitus.it>
             Nathan Myers  <ncm@cantrip.org>
 
index 03b54b7198be56534223aab598a6d929611833cd..ba0fcee36baafec9645cf00c45ae4bb8f095361d 100644 (file)
@@ -419,7 +419,7 @@ namespace std
        *  The default constructor does nothing and is not normally
        *  accessible to users.
       */
-      basic_ios() : ios_base() 
+      basic_ios() : ios_base(), _M_fctype(0), _M_fnumput(0), _M_fnumget(0)
       { }
 
       /**
index a95b0640ff27128d6abaa5b553a44da28d34d90a..845a9147b8fe69239ecd8c7d24b1a5cf1e4da750 100644 (file)
@@ -525,8 +525,7 @@ namespace std
        *  @c &sb to the base class initializer.  Does not open any files
        *  (you haven't given it a filename to open).
       */
-      basic_ifstream()
-      : __istream_type(NULL), _M_filebuf()
+      basic_ifstream() : __istream_type(), _M_filebuf()
       { this->init(&_M_filebuf); }
 
       /**
@@ -541,7 +540,7 @@ namespace std
       */
       explicit
       basic_ifstream(const char* __s, ios_base::openmode __mode = ios_base::in)
-      : __istream_type(NULL), _M_filebuf()
+      : __istream_type(), _M_filebuf()
       {
        this->init(&_M_filebuf);
        this->open(__s, __mode);
@@ -648,8 +647,7 @@ namespace std
        *  @c &sb to the base class initializer.  Does not open any files
        *  (you haven't given it a filename to open).
       */
-      basic_ofstream()
-      : __ostream_type(NULL), _M_filebuf()
+      basic_ofstream(): __ostream_type(), _M_filebuf()
       { this->init(&_M_filebuf); }
 
       /**
@@ -666,7 +664,7 @@ namespace std
       explicit
       basic_ofstream(const char* __s,
                     ios_base::openmode __mode = ios_base::out|ios_base::trunc)
-      : __ostream_type(NULL), _M_filebuf()
+      : __ostream_type(), _M_filebuf()
       {
        this->init(&_M_filebuf);
        this->open(__s, __mode);
@@ -776,7 +774,7 @@ namespace std
        *  (you haven't given it a filename to open).
       */
       basic_fstream()
-      : __iostream_type(NULL), _M_filebuf()
+      : __iostream_type(), _M_filebuf()
       { this->init(&_M_filebuf); }
 
       /**
index fa97f72209399d0ec9b892d96262d4f6b012be77..616fd8ab10fdf413afd70b46f80fc1c552aaae4c 100644 (file)
@@ -1,6 +1,7 @@
 // Input streams -*- C++ -*-
 
-// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2001, 2002, 2003
+// 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
@@ -101,11 +102,8 @@ namespace std
        *  their own stream buffer.
       */
       explicit 
-      basic_istream(__streambuf_type* __sb)
-      { 
-       this->init(__sb);
-       _M_gcount = streamsize(0);
-      }
+      basic_istream(__streambuf_type* __sb): _M_gcount(streamsize(0))
+      { this->init(__sb); }
 
       /**
        *  @brief  Base destructor.
@@ -573,6 +571,10 @@ namespace std
       __istream_type& 
       seekg(off_type, ios_base::seekdir);
       //@}
+
+    protected:
+      explicit 
+      basic_istream(): _M_gcount(streamsize(0)) { }
     };
   
   /**
@@ -738,14 +740,19 @@ namespace std
       */
       explicit 
       basic_iostream(basic_streambuf<_CharT, _Traits>* __sb)
-      : __istream_type(__sb), __ostream_type(__sb)
-      { }
+      : __istream_type(), __ostream_type()
+      { this->init(__sb); }
 
       /**
        *  @brief  Destructor does nothing.
       */
       virtual 
       ~basic_iostream() { }
+
+    protected:
+      explicit 
+      basic_iostream() : __istream_type(), __ostream_type()
+      { }
     };
 
   // [27.6.1.4] standard basic_istream manipulators
index 103b3fd729997f33f720d2c10e64fe0a9e6dcaba..94b5a9637635a044dde9a87d310be6d95df79d6a 100644 (file)
@@ -355,6 +355,10 @@ namespace std
       */
        __ostream_type& 
       seekp(off_type, ios_base::seekdir);
+      
+    protected:
+      explicit 
+      basic_ostream() { }
     };
 
   /**
index cb538b563040deffbad5b02e387b3dd90d42a172..6c0e139bf373aec9b906f29ac7ee58091a74bca3 100644 (file)
@@ -326,7 +326,7 @@ namespace std
       */
       explicit
       basic_istringstream(ios_base::openmode __mode = ios_base::in)
-      : __istream_type(NULL), _M_stringbuf(__mode | ios_base::in)
+      : __istream_type(), _M_stringbuf(__mode | ios_base::in)
       { this->init(&_M_stringbuf); }
 
       /**
@@ -347,7 +347,7 @@ namespace std
       explicit
       basic_istringstream(const __string_type& __str,
                          ios_base::openmode __mode = ios_base::in)
-      : __istream_type(NULL), _M_stringbuf(__str, __mode | ios_base::in)
+      : __istream_type(), _M_stringbuf(__str, __mode | ios_base::in)
       { this->init(&_M_stringbuf); }
 
       /**
@@ -445,7 +445,7 @@ namespace std
       */
       explicit
       basic_ostringstream(ios_base::openmode __mode = ios_base::out)
-      : __ostream_type(NULL), _M_stringbuf(__mode | ios_base::out)
+      : __ostream_type(), _M_stringbuf(__mode | ios_base::out)
       { this->init(&_M_stringbuf); }
 
       /**
@@ -466,7 +466,7 @@ namespace std
       explicit
       basic_ostringstream(const __string_type& __str,
                          ios_base::openmode __mode = ios_base::out)
-      : __ostream_type(NULL), _M_stringbuf(__str, __mode | ios_base::out)
+      : __ostream_type(), _M_stringbuf(__str, __mode | ios_base::out)
       { this->init(&_M_stringbuf); }
 
       /**
@@ -562,7 +562,7 @@ namespace std
       */
       explicit
       basic_stringstream(ios_base::openmode __m = ios_base::out | ios_base::in)
-      : __iostream_type(NULL), _M_stringbuf(__m)
+      : __iostream_type(), _M_stringbuf(__m)
       { this->init(&_M_stringbuf); }
 
       /**
@@ -581,7 +581,7 @@ namespace std
       explicit
       basic_stringstream(const __string_type& __str,
                         ios_base::openmode __m = ios_base::out | ios_base::in)
-      : __iostream_type(NULL), _M_stringbuf(__str, __m)
+      : __iostream_type(), _M_stringbuf(__str, __m)
       { this->init(&_M_stringbuf); }
 
       /**