]> gcc.gnu.org Git - gcc.git/commitdiff
Clean up stdexcept.
authorBenjamin Kosnik <bkoz@redhat.com>
Wed, 7 Feb 2001 20:26:24 +0000 (20:26 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Wed, 7 Feb 2001 20:26:24 +0000 (20:26 +0000)
2001-02-07  Benjamin Kosnik  <bkoz@redhat.com>

Clean up stdexcept.
* include/bits/stringfwd.h: New file.
* include/bits/stl_string_fwd.h: Remove.
* include/bits/localefwd.h: Remove declaration for allocator.
* include/bits/std_iosfwd: Same.
* include/bits/std_string.h: Include it.
* include/bits/std_ios.h: Remove include.
* include/bits/basic_string.h: Tweak.
* libsupc++/new: Format.
* src/Makefile.am (base_headers): Add stringfwd.h, remove
stl_string_fwd.h
* src/Makefile.in: Regenerate.
* include/bits/std_stdexcept.h: Rewrite.
* src/stdexcept.cc: Same.

From-SVN: r39526

13 files changed:
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/basic_string.h
libstdc++-v3/include/bits/localefwd.h
libstdc++-v3/include/bits/std_ios.h
libstdc++-v3/include/bits/std_iosfwd.h
libstdc++-v3/include/bits/std_stdexcept.h
libstdc++-v3/include/bits/std_string.h
libstdc++-v3/include/bits/stl_string_fwd.h [deleted file]
libstdc++-v3/include/bits/stringfwd.h [new file with mode: 0644]
libstdc++-v3/libsupc++/new
libstdc++-v3/src/Makefile.am
libstdc++-v3/src/Makefile.in
libstdc++-v3/src/stdexcept.cc

index c2b7b8fc5c8fdd26f647d9ce786455ff3b4fd710..cb801578272b3fe0fa65cdf9436e703332a1491e 100644 (file)
@@ -1,3 +1,20 @@
+2001-02-07  Benjamin Kosnik  <bkoz@redhat.com>
+
+       Clean up stdexcept.
+       * include/bits/stringfwd.h: New file.
+       * include/bits/stl_string_fwd.h: Remove.
+       * include/bits/localefwd.h: Remove declaration for allocator.
+       * include/bits/std_iosfwd: Same.
+       * include/bits/std_string.h: Include it.
+       * include/bits/std_ios.h: Remove include.
+       * include/bits/basic_string.h: Tweak.
+       * libsupc++/new: Format.
+       * src/Makefile.am (base_headers): Add stringfwd.h, remove
+       stl_string_fwd.h
+       * src/Makefile.in: Regenerate.
+       * include/bits/std_stdexcept.h: Rewrite.
+       * src/stdexcept.cc: Same.
+       
 2001-02-06  Benjamin Kosnik  <bkoz@redhat.com>
 
        * acinclude.m4 (GLIBCPP_EXPORT_INSTALL_INFO): Deal with library
index 06b0820afbf00b26b5bfb835784b87cb6e6eb32f..b678dd27fd38945e4c55d2d3e4afb1216c6b2aa6 100644 (file)
@@ -1028,7 +1028,6 @@ namespace std {
     inline basic_istream<_CharT,_Traits>&
     getline(basic_istream<_CharT, _Traits>& __is,
            basic_string<_CharT, _Traits, _Alloc>& __str);
-
 } // namespace std
 
 #endif /* _CPP_BITS_STRING_H */
index 73b987a924371fdc1d676f5a3c15488c2c5573ab..5e08c7ec8afc6884d7202b811932f98d98759b32 100644 (file)
@@ -79,8 +79,8 @@ namespace std
     };
 
   // 22.1.1 Locale
-  template<typename _Tp> class allocator;
-  template<typename _Tp, typename _Alloc> class vector;
+  template<typename _Tp, typename _Alloc> 
+    class vector;
   class locale;
 
   // 22.1.3 Convenience interfaces
index 7fba3d75b2e10b6bc9768c774c912c1e54169f64..1471c1ca619a9c3388fd665f78cbbcd5d66466cc 100644 (file)
@@ -1,6 +1,6 @@
 // Iostreams base classes -*- C++ -*-
 
-// Copyright (C) 1997-1999 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 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
@@ -37,7 +37,6 @@
 #include <bits/std_iosfwd.h>
 #include <exception>           // For ios_base::failure
 #include <bits/char_traits.h>  // For char_traits, streamoff, streamsize, fpos
-#include <bits/stl_string_fwd.h>// For string.
 #include <bits/std_cstdio.h>   // For SEEK_SET, SEEK_CUR, SEEK_END
 #include <bits/localefwd.h>    // For class locale
 #include <bits/ios_base.h>     // For ios_base declarations.
index 8f198800a0161f549ab1707909468f1fdf4b5464..15631a29e2b0c370eeb5a775af5a5f66a1dfc3c7 100644 (file)
 
 #include <bits/c++config.h>
 #include <bits/std_cwchar.h> // For mbstate_t
+#include <bits/stringfwd.h> // For string forward declarations.
 
-namespace std {
-
-  // Generic declarations.
-  template<typename _CharT> struct char_traits;
-  template<typename _Alloc> class allocator;
-
+namespace std 
+{
   // Forward declarations
   template<> class char_traits<char>;
 #ifdef _GLIBCPP_USE_WCHAR_T
@@ -50,53 +47,53 @@ namespace std {
 #endif
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class basic_ios;
+    class basic_ios;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class basic_streambuf;
+    class basic_streambuf;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class basic_istream;
+    class basic_istream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class basic_ostream;
+    class basic_ostream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class basic_iostream;
+    class basic_iostream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT>,
            typename _Alloc = allocator<_CharT> >
-  class basic_stringbuf;
+    class basic_stringbuf;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT>,
           typename _Alloc = allocator<_CharT> >
-  class basic_istringstream;
+    class basic_istringstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT>,
           typename _Alloc = allocator<_CharT> >
-  class basic_ostringstream;
+    class basic_ostringstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT>,
           typename _Alloc = allocator<_CharT> >
-  class basic_stringstream;
+    class basic_stringstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class basic_filebuf;
+    class basic_filebuf;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class basic_ifstream;
+    class basic_ifstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class basic_ofstream;
+    class basic_ofstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class basic_fstream;
+    class basic_fstream;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class istreambuf_iterator;
+    class istreambuf_iterator;
 
   template<typename _CharT, typename _Traits = char_traits<_CharT> >
-  class ostreambuf_iterator;
+    class ostreambuf_iterator;
 
 #ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
   // Not included.
@@ -144,14 +141,6 @@ namespace std {
   typedef basic_ofstream<wchar_t>      wofstream;
   typedef basic_fstream<wchar_t>       wfstream;
 #endif
-
 } // namespace std
 
 #endif // _CPP_IOSFWD
-
-
-
-
-
-
-
index 05b351116cd18f44f36ff5dc275ae66724f4fb8e..b9c5dccf74ad99458cf31074dfa449b3258b268e 100644 (file)
-/*
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation.  Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose.  It is provided "as is" without express or implied warranty.
- */ 
+// Standard exception classes  -*- C++ -*-
+
+// 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.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 19.1  Exception classes
+//
 
 #ifndef _CPP_STDEXCEPT
-#define _CPP_STDEXCEPT 1
+#define _CPP_STDEXCEPT           1
 
 #include <exception>
-
-#if defined(__STL_USE_EXCEPTIONS) || \
-    !(defined(_MIPS_SIM) && defined(_ABIO32) && _MIPS_SIM == _ABIO32)
-
-#include <bits/stl_string_fwd.h>
-
-__STL_BEGIN_NAMESPACE
-
-class __Named_exception : public exception {
-public:
-  __Named_exception(const string& __str);
-  virtual const char* what() const __STL_NOTHROW { return _M_name; }
-
-private:
-  enum { _S_bufsize = 256 };
-  char _M_name[_S_bufsize];
-};
-
-class logic_error : public __Named_exception {
-public:
-  logic_error(const string& __s) : __Named_exception(__s) {}
-};
-
-class runtime_error : public __Named_exception {
-public:
-  runtime_error(const string& __s) : __Named_exception(__s) {}
-};
-
-class domain_error : public logic_error {
-public:
-  domain_error(const string& __arg) : logic_error(__arg) {}
-};
-
-class invalid_argument : public logic_error {
-public:
-  invalid_argument(const string& __arg) : logic_error(__arg) {}
-};
-
-class length_error : public logic_error {
-public:
-  length_error(const string& __arg) : logic_error(__arg) {}
-};
-
-class out_of_range : public logic_error {
-public:
-  out_of_range(const string& __arg) : logic_error(__arg) {}
-};
-
-class range_error : public runtime_error {
-public:
-  range_error(const string& __arg) : runtime_error(__arg) {}
-};
-
-class overflow_error : public runtime_error {
-public:
-  overflow_error(const string& __arg) : runtime_error(__arg) {}
-};
-
-class underflow_error : public runtime_error {
-public:
-  underflow_error(const string& __arg) : runtime_error(__arg) {}
-};
-
-__STL_END_NAMESPACE
-
-#endif /* Not o32, and no exceptions */
-
-#endif /* _CPP_STDEXCEPT */
-
-// Local Variables:
-// mode:C++
-// End:
-
+#include <bits/stringfwd.h>
+
+namespace std 
+{
+  class logic_error : public exception 
+  {
+    const string& _M_msg;
+
+  public:
+    explicit 
+    logic_error(const string&  __arg);
+
+    virtual 
+    ~logic_error() throw();
+
+    virtual const char* 
+    what() const throw();
+  };
+
+  class domain_error : public logic_error 
+  {
+  public:
+    explicit domain_error(const string&  __arg);
+  };
+
+  class invalid_argument : public logic_error 
+  {
+  public:
+    explicit invalid_argument(const string&  __arg);
+  };
+
+  class length_error : public logic_error 
+  {
+  public:
+    explicit length_error(const string&  __arg);
+  };
+
+  class out_of_range : public logic_error 
+  {
+  public:
+    explicit out_of_range(const string&  __arg);
+  };
+
+  class runtime_error : public exception 
+  {
+    const string& _M_msg;
+
+  public:
+    explicit 
+    runtime_error(const string&  __arg);
+
+    virtual 
+    ~runtime_error() throw();
+
+    virtual const char* 
+    what() const throw();
+  };
+
+  class range_error : public runtime_error 
+  {
+  public:
+    explicit range_error(const string&  __arg);
+  };
+
+  class overflow_error : public runtime_error 
+  {
+  public:
+    explicit overflow_error(const string&  __arg);
+  };
+
+  class underflow_error : public runtime_error 
+  {
+  public:
+    explicit underflow_error(const string&  __arg);
+  };
+} // namespace std
+
+#endif // _CPP_STDEXCEPT
index eb023df718e0face7748f41b497e074d4bbd317f..0a2da3ae72969c0642f2410d4c82ef2043cfaa10 100644 (file)
 #define _CPP_STRING    1
 
 #include <bits/c++config.h>
-#include <bits/stl_string_fwd.h>
-#include <bits/std_iterator.h>
+#include <bits/stringfwd.h>
 #include <bits/char_traits.h>
+#include <bits/std_iterator.h>
+#include <bits/std_memory.h>   // For allocator.
 #include <bits/type_traits.h>
-#include <bits/std_iosfwd.h> // for operators >>, <<, and getline decls
+#include <bits/std_iosfwd.h>   // For operators >>, <<, and getline decls.
 #include <bits/basic_string.h>
 
 #ifdef _GLIBCPP_NO_TEMPLATE_EXPORT
diff --git a/libstdc++-v3/include/bits/stl_string_fwd.h b/libstdc++-v3/include/bits/stl_string_fwd.h
deleted file mode 100644 (file)
index 46845b9..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (c) 1997
- * Silicon Graphics Computer Systems, Inc.
- *
- * Permission to use, copy, modify, distribute and sell this software
- * and its documentation for any purpose is hereby granted without fee,
- * provided that the above copyright notice appear in all copies and
- * that both that copyright notice and this permission notice appear
- * in supporting documentation.  Silicon Graphics makes no
- * representations about the suitability of this software for any
- * purpose.  It is provided "as is" without express or implied warranty.
- */ 
-
-#ifndef __SGI_STL_STRING_FWD_H
-#define __SGI_STL_STRING_FWD_H
-
-#include <bits/stl_config.h>
-#include <bits/stl_alloc.h>
-#include <bits/char_traits.h>
-
-__STL_BEGIN_NAMESPACE
-
-template <class _CharT, 
-          class _Traits = char_traits<_CharT>, 
-          class _Alloc = allocator<_CharT> >
-class basic_string;
-
-typedef basic_string<char>    string;
-#ifdef _GLIBCPP_USE_WCHAR_T
-typedef basic_string<wchar_t> wstring;
-#endif
-
-__STL_END_NAMESPACE
-
-#endif /* __SGI_STL_STRING_FWD_H */
-
-// Local Variables:
-// mode:C++
-// End:
-
-
-
-
-
-
-
diff --git a/libstdc++-v3/include/bits/stringfwd.h b/libstdc++-v3/include/bits/stringfwd.h
new file mode 100644 (file)
index 0000000..0202574
--- /dev/null
@@ -0,0 +1,61 @@
+// String support -*- C++ -*-
+
+// 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.
+
+// As a special exception, you may use this file as part of a free software
+// library without restriction.  Specifically, if other files instantiate
+// templates or use macros or inline functions from this file, or you compile
+// this file and link it with other files to produce an executable, this
+// file does not by itself cause the resulting executable to be covered by
+// the GNU General Public License.  This exception does not however
+// invalidate any other reasons why the executable file might be covered by
+// the GNU General Public License.
+
+//
+// ISO C++ 14882: 21 Strings library
+//
+
+#ifndef _CPP_BITS_STRINGFWD_H
+#define _CPP_BITS_STRINGFWD_H  1
+
+#include <bits/c++config.h>
+
+namespace std
+{
+  template<class _CharT>
+    struct char_traits;
+
+  template<typename _Alloc> 
+    class allocator;
+
+  template<typename _CharT, typename _Traits = char_traits<_CharT>, 
+           typename _Alloc = allocator<_CharT> >
+    class basic_string;
+
+  typedef basic_string<char>    string;
+#ifdef _GLIBCPP_USE_WCHAR_T
+  typedef basic_string<wchar_t> wstring;
+#endif
+} // namespace std
+
+#endif // _CPP_BITS_STRINGFWD_H
+
+// Local Variables:
+// mode:c++
+// End:
index cb66dacc44466188df118b7a1f5c2a2d3b4ef2ea..87c9d712f37fcc117e0f2ae3f24549b22549f5a6 100644 (file)
@@ -1,5 +1,6 @@
 // The -*- C++ -*- dynamic memory management header.
-// Copyright (C) 1994, 1996, 1997, 1998, 2000 Free Software Foundation
+
+// Copyright (C) 1994, 1996, 1997, 1998, 2000, 2001 Free Software Foundation
 
 // This file is part of GNU CC.
 //
 
 extern "C++" {
 
-namespace std {
-
-  class bad_alloc : public exception {
+namespace std 
+{
+  class bad_alloc : public exception 
+  {
   public:
     virtual const char* what() const throw() { return "bad_alloc"; }
   };
 
-  struct nothrow_t {};
+  struct nothrow_t { };
   extern const nothrow_t nothrow;
   typedef void (*new_handler)();
-  new_handler set_new_handler (new_handler);
-
+  new_handler set_new_handler(new_handler);
 } // namespace std
 
-// replaceable signatures
-void *operator new (std::size_t) throw (std::bad_alloc);
-void *operator new[] (std::size_t) throw (std::bad_alloc);
-void operator delete (void *) throw();
-void operator delete[] (void *) throw();
-void *operator new (std::size_t, const std::nothrow_t&) throw();
-void *operator new[] (std::size_t, const std::nothrow_t&) throw();
-void operator delete (void *, const std::nothrow_t&) throw();
-void operator delete[] (void *, const std::nothrow_t&) throw();
+// Replaceable signatures.
+void *operator new(std::size_t) throw (std::bad_alloc);
+void *operator new[](std::size_t) throw (std::bad_alloc);
+void operator delete(void *) throw();
+void operator delete[](void *) throw();
+void *operator new(std::size_t, const std::nothrow_t&) throw();
+void *operator new[](std::size_t, const std::nothrow_t&) throw();
+void operator delete(void *, const std::nothrow_t&) throw();
+void operator delete[](void *, const std::nothrow_t&) throw();
 
-// default placement versions of operator new
+// Default placement versions of operator new.
 inline void *operator new(std::size_t, void *place) throw() { return place; }
 inline void *operator new[](std::size_t, void *place) throw() { return place; }
 } // extern "C++"
index b74fc9d8b78269a086fff27297f735777bbd4078..788f968fe4b86a43331b6710960844e9cdcef6bc 100644 (file)
@@ -21,7 +21,7 @@
 ## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
 ## USA.
 
-## $Id: Makefile.am,v 1.69 2001/02/06 06:36:18 mmitchel Exp $
+## $Id: Makefile.am,v 1.70 2001/02/07 01:54:21 bkoz Exp $
 
 AUTOMAKE_OPTIONS = 1.3 gnits
 MAINT_CHARSET = latin1
@@ -66,7 +66,8 @@ INCLUDES = \
 
 base_headers = \
        bits/cpp_type_traits.h bits/char_traits.h bits/codecvt.h \
-       bits/std_string.h bits/basic_string.h bits/basic_string.tcc \
+       bits/stringfwd.h bits/std_string.h bits/basic_string.h \
+       bits/basic_string.tcc \
        bits/generic_shadow.h bits/std_utility.h \
        bits/std_complex.h \
        bits/valarray_array.h bits/valarray_array.tcc bits/valarray_meta.h \
@@ -94,7 +95,7 @@ base_headers = \
        bits/stl_multimap.h bits/stl_multiset.h bits/stl_numeric.h \
        bits/stl_pair.h bits/stl_queue.h bits/stl_raw_storage_iter.h \
        bits/stl_relops.h bits/stl_set.h \
-       bits/stl_stack.h bits/stl_string_fwd.h bits/stl_tempbuf.h \
+       bits/stl_stack.h bits/stl_tempbuf.h \
        bits/stl_tree.h bits/stl_uninitialized.h bits/stl_vector.h \
        bits/type_traits.h bits/stl_range_errors.h bits/std_algorithm.h \
        bits/concept_checks.h bits/container_concepts.h \
index 5e1fc2b24c2dbe11f16d23b9f84c39183b9a6e4b..f197451be7fff39597bacb02c1f6feb6e526255f 100644 (file)
@@ -144,7 +144,7 @@ TOPLEVEL_INCLUDES = @TOPLEVEL_INCLUDES@
 INCLUDES =     -nostdinc++     -I$(GLIBCPP_INCLUDE_DIR) $(CSTD_INCLUDES) -I$(top_builddir)/include     $(LIBSUPCXX_INCLUDES) $(LIBIO_INCLUDES) $(LIBMATH_INCLUDES)     $(TOPLEVEL_INCLUDES)    
 
 
-base_headers =         bits/cpp_type_traits.h bits/char_traits.h bits/codecvt.h        bits/std_string.h bits/basic_string.h bits/basic_string.tcc     bits/generic_shadow.h bits/std_utility.h        bits/std_complex.h      bits/valarray_array.h bits/valarray_array.tcc bits/valarray_meta.h      bits/std_valarray.h bits/mask_array.h bits/slice.h bits/slice_array.h   bits/gslice.h bits/gslice_array.h bits/indirect_array.h         bits/exception_support.h        bits/std_fstream.h bits/std_iomanip.h   bits/ios_base.h bits/fpos.h bits/basic_ios.h bits/basic_ios.tcc         bits/std_ios.h bits/std_iosfwd.h bits/std_iostream.h    bits/std_istream.h bits/istream.tcc bits/std_locale.h   bits/fstream.tcc bits/ostream.tcc bits/sbuf_iter.h bits/sstream.tcc     bits/std_ostream.h bits/std_sstream.h bits/std_streambuf.h      bits/streambuf.tcc bits/basic_file.h    bits/locale_facets.h bits/locale_facets.tcc bits/localefwd.h    bits/stl_pthread_alloc.h bits/pthread_allocimpl.h       bits/stl_threads.h bits/stl_iterator_base.h     bits/std_bitset.h bits/std_deque.h bits/std_functional.h        bits/std_iterator.h bits/std_list.h     bits/std_map.h bits/std_memory.h bits/std_numeric.h     bits/std_queue.h bits/std_set.h bits/std_stack.h        bits/std_stdexcept.h bits/std_vector.h  bits/stl_algo.h bits/stl_algobase.h bits/stl_alloc.h    bits/stl_deque.h bits/stl_function.h    bits/stl_heap.h bits/stl_iterator.h bits/stl_list.h bits/stl_map.h      bits/stl_multimap.h bits/stl_multiset.h bits/stl_numeric.h      bits/stl_pair.h bits/stl_queue.h bits/stl_raw_storage_iter.h    bits/stl_relops.h bits/stl_set.h        bits/stl_stack.h bits/stl_string_fwd.h bits/stl_tempbuf.h       bits/stl_tree.h bits/stl_uninitialized.h bits/stl_vector.h      bits/type_traits.h bits/stl_range_errors.h bits/std_algorithm.h         bits/concept_checks.h bits/container_concepts.h         bits/sequence_concepts.h bits/stl_config.h bits/stl_construct.h
+base_headers =         bits/cpp_type_traits.h bits/char_traits.h bits/codecvt.h        bits/stringfwd.h bits/std_string.h bits/basic_string.h  bits/basic_string.tcc   bits/generic_shadow.h bits/std_utility.h        bits/std_complex.h      bits/valarray_array.h bits/valarray_array.tcc bits/valarray_meta.h      bits/std_valarray.h bits/mask_array.h bits/slice.h bits/slice_array.h   bits/gslice.h bits/gslice_array.h bits/indirect_array.h         bits/exception_support.h        bits/std_fstream.h bits/std_iomanip.h   bits/ios_base.h bits/fpos.h bits/basic_ios.h bits/basic_ios.tcc         bits/std_ios.h bits/std_iosfwd.h bits/std_iostream.h    bits/std_istream.h bits/istream.tcc bits/std_locale.h   bits/fstream.tcc bits/ostream.tcc bits/sbuf_iter.h bits/sstream.tcc     bits/std_ostream.h bits/std_sstream.h bits/std_streambuf.h      bits/streambuf.tcc bits/basic_file.h    bits/locale_facets.h bits/locale_facets.tcc bits/localefwd.h    bits/stl_pthread_alloc.h bits/pthread_allocimpl.h       bits/stl_threads.h bits/stl_iterator_base.h     bits/std_bitset.h bits/std_deque.h bits/std_functional.h        bits/std_iterator.h bits/std_list.h     bits/std_map.h bits/std_memory.h bits/std_numeric.h     bits/std_queue.h bits/std_set.h bits/std_stack.h        bits/std_stdexcept.h bits/std_vector.h  bits/stl_algo.h bits/stl_algobase.h bits/stl_alloc.h    bits/stl_deque.h bits/stl_function.h    bits/stl_heap.h bits/stl_iterator.h bits/stl_list.h bits/stl_map.h      bits/stl_multimap.h bits/stl_multiset.h bits/stl_numeric.h      bits/stl_pair.h bits/stl_queue.h bits/stl_raw_storage_iter.h    bits/stl_relops.h bits/stl_set.h        bits/stl_stack.h bits/stl_tempbuf.h     bits/stl_tree.h bits/stl_uninitialized.h bits/stl_vector.h      bits/type_traits.h bits/stl_range_errors.h bits/std_algorithm.h         bits/concept_checks.h bits/container_concepts.h         bits/sequence_concepts.h bits/stl_config.h bits/stl_construct.h
 
 
 backward_headers =     backward/complex.h backward/iomanip.h backward/istream.h        backward/ostream.h backward/stream.h backward/streambuf.h       backward/algo.h backward/algobase.h backward/alloc.h    backward/bvector.h backward/defalloc.h backward/deque.h         backward/function.h backward/hash_map.h backward/hash_set.h     backward/hashtable.h backward/heap.h backward/iterator.h        backward/list.h backward/map.h backward/multimap.h backward/new.h       backward/multiset.h backward/pair.h backward/iostream.h         backward/rope.h backward/set.h backward/slist.h backward/stack.h        backward/tempbuf.h backward/tree.h backward/vector.h    backward/fstream.h backward/strstream.h backward/strstream
index 147ff11099d5d14955ba76383f9b69f9bdb0bf13..af22c9e0fa881c1afce94afe6718dd0d1844979d 100644 (file)
@@ -1,6 +1,6 @@
 // Methods for Exception Support for -*- C++ -*-
 
-// Copyright (C) 1997-1999 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1999, 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
 // invalidate any other reasons why the executable file might be covered by
 // the GNU General Public License.
 
-// Written by Mike Stump based upon the specification in the 20 September 1994
-// C++ working paper, ANSI document X3J16/94-0158.
-
 //
 // ISO C++ 14882: 19.1  Exception classes
 //
 
 #include <bits/std_string.h>
 #include <bits/std_stdexcept.h>
+#if 1
 #include <bits/stl_range_errors.h>
+#endif
+
+namespace std 
+{
+  logic_error::logic_error(const string& __arg) 
+  : exception(), _M_msg(__arg) { }
+
+  logic_error::~logic_error() throw() { };
+
+  const char*
+  logic_error::what() const throw()
+  { return _M_msg.c_str(); }
+
+  domain_error::domain_error(const string& __arg)
+  : logic_error(__arg) { }
+
+  invalid_argument::invalid_argument(const string& __arg)
+  : logic_error(__arg) { }
 
-// To break the circularity with the <stdexcept> and <string> header we
-// define two functions which throw exceptions as a direct call would do.
+  length_error::length_error(const string& __arg)
+  : logic_error(__arg) { }
 
-namespace std {
+  out_of_range::out_of_range(const string& __arg)
+  : logic_error(__arg) { }
 
-  __Named_exception::__Named_exception(const string& __str)
-  {
-    strncpy(_M_name, __str.c_str(), _S_bufsize);
-    _M_name[_S_bufsize - 1] = '\0';
-  }
+  runtime_error::runtime_error(const string& __arg) 
+  : exception(), _M_msg(__arg) { }
 
+  runtime_error::~runtime_error() throw() { };
+
+  const char*
+  runtime_error::what() const throw()
+  { return _M_msg.c_str(); }
+
+  range_error::range_error(const string& __arg)
+  : runtime_error(__arg) { }
+
+  overflow_error::overflow_error(const string& __arg)
+  : runtime_error(__arg) { }
+
+  underflow_error::underflow_error(const string& __arg)
+  : runtime_error(__arg) { }
+
+#if 1
+  // XXX need to deal with this.
   void
   __out_of_range(const char *str)
   { throw out_of_range(str); }
@@ -66,8 +97,8 @@ namespace std {
   void 
   __stl_throw_length_error(const char* __msg)
   { throw length_error(__msg); }
-
-} //namespace std
+#endif
+} // namespace std
 
 
 
This page took 0.09757 seconds and 5 git commands to generate.