OSDN Git Service

2004-03-12 Paolo Carlini <pcarlini@suse.de>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Mar 2004 23:32:03 +0000 (23:32 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 Mar 2004 23:32:03 +0000 (23:32 +0000)
* docs/html/ext/howto.html: Add entry for DR 253 [Ready].
* include/bits/gslice_array.h: Add comment about DR 253.
* include/bits/indirect_array.h: Likewise.
* include/bits/mask_array.h: Likewise.
* include/bits/slice_array.h: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@79412 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/docs/html/ext/howto.html
libstdc++-v3/include/bits/gslice_array.h
libstdc++-v3/include/bits/indirect_array.h
libstdc++-v3/include/bits/mask_array.h
libstdc++-v3/include/bits/slice_array.h

index 6f53566..5e93b5e 100644 (file)
@@ -1,3 +1,11 @@
+2004-03-12  Paolo Carlini  <pcarlini@suse.de>
+
+       * docs/html/ext/howto.html: Add entry for DR 253 [Ready].
+       * include/bits/gslice_array.h: Add comment about DR 253.
+       * include/bits/indirect_array.h: Likewise.
+       * include/bits/mask_array.h: Likewise.
+       * include/bits/slice_array.h: Likewise.
+
 2004-03-12  Benjamin Kosnik  <bkoz@redhat.com>
 
        * testsuite/20_util/allocator/14176.cc: New.
index 682b34e..f17c617 100644 (file)
     <dd>This nested typdef was originally not specified.
     </dd>
 
+    <dt><a href="lwg-active.html#253">253</a>:
+        <em>valarray helper functions are almost entirely useless</em>
+    </dt>
+    <dd>Make the copy constructor and copy-assignment operator declarations
+        public in gslice_array, indirect_array, mask_array, slice_array; provide
+       definitions.
+    </dd>
+
     <dt><a href="lwg-defects.html#265">265</a>:
         <em>std::pair::pair() effects overly restrictive</em>
     </dt>
index e50a74d..7e2e684 100644 (file)
@@ -61,11 +61,12 @@ namespace std {
     public:
       typedef _Tp value_type;
 
-      // this constructor needs to be implemented.
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 253. valarray helper functions are almost entirely useless
+
       ///  Copy constructor.  Both slices refer to the same underlying array.
       gslice_array(const gslice_array&);
 
-      // This operator must be public.  See DR-253.
       ///  Assignment operator.  Assigns slice elements to corresponding
       ///  elements of @a a.
       gslice_array& operator=(const gslice_array&);
@@ -134,13 +135,13 @@ namespace std {
     inline
     gslice_array<_Tp>::gslice_array(_Array<_Tp> __a,
                                    const valarray<size_t>& __i)
-      : _M_array(__a), _M_index(__i) {}
+    : _M_array(__a), _M_index(__i) {}
 
 
   template<typename _Tp>
     inline
     gslice_array<_Tp>::gslice_array(const gslice_array<_Tp>& __a)
-      : _M_array(__a._M_array), _M_index(__a._M_index) {}
+    : _M_array(__a._M_array), _M_index(__a._M_index) {}
 
 
   template<typename _Tp>
index 1f4a713..912f522 100644 (file)
@@ -63,11 +63,12 @@ namespace std
     public:
       typedef _Tp value_type;
 
-      // this constructor needs to be implemented.
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 253. valarray helper functions are almost entirely useless
+
       ///  Copy constructor.  Both slices refer to the same underlying array.
       indirect_array(const indirect_array&);
 
-      // XXX: This is a proposed resolution for DR-253.
       ///  Assignment operator.  Assigns elements to corresponding elements
       ///  of @a a.
       indirect_array& operator=(const indirect_array&);
@@ -139,13 +140,13 @@ namespace std
   template<typename _Tp>
     inline
     indirect_array<_Tp>::indirect_array(const indirect_array<_Tp>& __a)
-      : _M_sz(__a._M_sz), _M_index(__a._M_index), _M_array(__a._M_array) {}
+    : _M_sz(__a._M_sz), _M_index(__a._M_index), _M_array(__a._M_array) {}
 
   template<typename _Tp>
      inline
      indirect_array<_Tp>::indirect_array(_Array<_Tp> __a, size_t __s,
                                         _Array<size_t> __i)
-       : _M_sz(__s), _M_index(__i), _M_array(__a) {}
+     : _M_sz(__s), _M_index(__i), _M_array(__a) {}
 
   template<typename _Tp>
      inline indirect_array<_Tp>&
index 4faa5d7..1a694f3 100644 (file)
@@ -63,11 +63,12 @@ namespace std {
     public:
       typedef _Tp value_type;
 
-      // this constructor needs to be implemented.
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 253. valarray helper functions are almost entirely useless
+
       ///  Copy constructor.  Both slices refer to the same underlying array.
       mask_array (const mask_array&);
       
-      // This operator must be public.  See DR-253.
       ///  Assignment operator.  Assigns elements to corresponding elements
       ///  of @a a.
       mask_array& operator=(const mask_array&);
@@ -136,12 +137,12 @@ namespace std {
 
   template<typename _Tp>
     inline mask_array<_Tp>::mask_array(const mask_array<_Tp>& a)
-      : _M_sz(a._M_sz), _M_mask(a._M_mask), _M_array(a._M_array) {}
+    : _M_sz(a._M_sz), _M_mask(a._M_mask), _M_array(a._M_array) {}
 
   template<typename _Tp>
     inline
     mask_array<_Tp>::mask_array(_Array<_Tp> __a, size_t __s, _Array<bool> __m)
-      : _M_sz(__s), _M_mask(__m), _M_array(__a) {}
+    : _M_sz(__s), _M_mask(__m), _M_array(__a) {}
 
   template<typename _Tp>
     inline mask_array<_Tp>&
index 571296d..31c89bc 100644 (file)
@@ -123,11 +123,12 @@ namespace std
     public:
       typedef _Tp value_type;
 
-      // This constructor is implemented since we need to return a value.
+      // _GLIBCXX_RESOLVE_LIB_DEFECTS
+      // 253. valarray helper functions are almost entirely useless
+
       ///  Copy constructor.  Both slices refer to the same underlying array.
       slice_array(const slice_array&);
 
-      // This operator must be public.  See DR-253.
       ///  Assignment operator.  Assigns slice elements to corresponding
       ///  elements of @a a.
       slice_array& operator=(const slice_array&);
@@ -196,13 +197,13 @@ namespace std
   template<typename _Tp>
     inline
     slice_array<_Tp>::slice_array(_Array<_Tp> __a, const slice& __s)
-      : _M_sz(__s.size()), _M_stride(__s.stride()),
-       _M_array(__a.begin() + __s.start()) {}
+    : _M_sz(__s.size()), _M_stride(__s.stride()),
+      _M_array(__a.begin() + __s.start()) {}
 
   template<typename _Tp>
     inline
     slice_array<_Tp>::slice_array(const slice_array<_Tp>& a)
-      : _M_sz(a._M_sz), _M_stride(a._M_stride), _M_array(a._M_array) {}
+    : _M_sz(a._M_sz), _M_stride(a._M_stride), _M_array(a._M_array) {}
 
   //    template<typename _Tp>
   //    inline slice_array<_Tp>::~slice_array () {}