array (array<>::_M_check): Remove, not necessary anymore.
authorPaolo Carlini <pcarlini@suse.de>
Sun, 25 Nov 2007 12:07:55 +0000 (12:07 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sun, 25 Nov 2007 12:07:55 +0000 (12:07 +0000)
2007-11-25  Paolo Carlini  <pcarlini@suse.de>

* include/tr1_impl/array (array<>::_M_check): Remove, not necessary
anymore.
(array<>::at): Adjust.

* docs/html/17_intro/c++0x_status.html: Fix array::data entry.

From-SVN: r130405

libstdc++-v3/ChangeLog
libstdc++-v3/docs/html/17_intro/c++0x_status.html
libstdc++-v3/include/tr1_impl/array

index 91aba14ac37ef864ceff7f89c9217042ebf7bcb3..0688b26524a2ec7f4edd0843d86562a604f637ab 100644 (file)
@@ -1,3 +1,11 @@
+2007-11-25  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/tr1_impl/array (array<>::_M_check): Remove, not necessary
+       anymore.
+       (array<>::at): Adjust.
+
+       * docs/html/17_intro/c++0x_status.html: Fix array::data entry.
+
 2007-11-25  Paolo Carlini  <pcarlini@suse.de>
 
        * include/bits/stl_algobase.h (__lexicographical_compare<>::__lc):
index 5627d6fe17806b39733791d34b1c336f6918cf0e..e4e07e01f3bb6a4aaf214322fd59a2995b75cf2a 100644 (file)
@@ -771,9 +771,9 @@ particular release.
     <tr>
       <td>23.2.1.4</td>
       <td><code>array </code>data</td>
+      <td>done</td>
       <td></td>
       <td></td>
-      <td>missing</td>
       <td></td>
     </tr>
     <tr>
index 425b87cffbb196ec092abb2b92aca8e83a34b502..7a13ba8ff8df543d5f30806bee3709a7a9e43c12 100644 (file)
@@ -136,15 +136,17 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
 
       reference
       at(size_type __n)
-      { 
-       _M_check<_Nm>(__n);
+      {
+       if (__builtin_expect(__n >= _Nm, false))
+         std::__throw_out_of_range(__N("array::at"));
        return _M_instance[__n];
       }
 
       const_reference
       at(size_type __n) const
       {
-       _M_check<_Nm>(__n);
+       if (__builtin_expect(__n >= _Nm, false))
+         std::__throw_out_of_range(__N("array::at"));
        return _M_instance[__n];
       }
 
@@ -171,21 +173,6 @@ _GLIBCXX_BEGIN_NAMESPACE_TR1
       const _Tp* 
       data() const
       { return &_M_instance[0]; }
-
-    private:
-      template<std::size_t _Mm>
-        typename __gnu_cxx::__enable_if<_Mm, void>::__type
-        _M_check(size_type __n) const
-        {
-         if (__builtin_expect(__n >= _Mm, false))
-           std::__throw_out_of_range(__N("array::_M_check"));
-       }
-
-      // Avoid "unsigned comparison with zero" warnings.
-      template<std::size_t _Mm>
-        typename __gnu_cxx::__enable_if<!_Mm, void>::__type
-        _M_check(size_type) const
-        { std::__throw_out_of_range(__N("array::_M_check")); }
     };
 
   // Array comparisons.