]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
array (array<>::_M_at): Remove.
authorPaolo Carlini <pcarlini@suse.de>
Thu, 28 Dec 2006 10:54:56 +0000 (10:54 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Thu, 28 Dec 2006 10:54:56 +0000 (10:54 +0000)
2006-12-28  Paolo Carlini  <pcarlini@suse.de>

* include/tr1/array (array<>::_M_at): Remove.
(array<>::_M_check): Add.
(array<>::at): Use the latter.

From-SVN: r120242

libstdc++-v3/ChangeLog
libstdc++-v3/include/tr1/array

index 4a251af437888cc7f825e9d4d5c2aebb080f48d0..ae6549b045ed4e9ac478ecca0267498f91ae2c3d 100644 (file)
@@ -1,3 +1,9 @@
+2006-12-28  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/tr1/array (array<>::_M_at): Remove.
+       (array<>::_M_check): Add.
+       (array<>::at): Use the latter.
+
 2006-12-22  Paolo Carlini  <pcarlini@suse.de>
 
         DR 541, [WP].
index 153f334a575b8eabb39e72b6b8af7290493b2239..23808b334620b55dff9d556dd6670f226e625377 100644 (file)
@@ -128,11 +128,17 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
 
       reference
       at(size_type __n)
-      { return _M_at<_Nm>(__n); }
+      { 
+       _M_check<_Nm>(__n);
+       return _M_instance[__n];
+      }
 
       const_reference
       at(size_type __n) const
-      { return _M_at<_Nm>(__n); }
+      {
+       _M_check<_Nm>(__n);
+       return _M_instance[__n];
+      }
 
       reference 
       front()
@@ -160,39 +166,18 @@ _GLIBCXX_BEGIN_NAMESPACE(tr1)
 
     private:
       template<std::size_t _Mm>
-        typename __gnu_cxx::__enable_if<_Mm, reference>::__type
-        _M_at(size_type __n)
+        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_at"));
-         return _M_instance[__n];
+           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, reference>::__type
-        _M_at(size_type)
-        {
-         std::__throw_out_of_range(__N("array::_M_at"));
-         return _M_instance[0];
-       }
-
-      template<std::size_t _Mm>
-        typename __gnu_cxx::__enable_if<_Mm, const_reference>::__type
-        _M_at(size_type __n) const
-        {
-         if (__builtin_expect(__n >= _Mm, false))
-           std::__throw_out_of_range(__N("array::_M_at"));
-         return _M_instance[__n];
-       }
-
-      template<std::size_t _Mm>
-        typename __gnu_cxx::__enable_if<!_Mm, const_reference>::__type
-        _M_at(size_type) const
-        {
-         std::__throw_out_of_range(__N("array::_M_at"));
-         return _M_instance[0];
-       }     
+        typename __gnu_cxx::__enable_if<!_Mm, void>::__type
+        _M_check(size_type) const
+        { std::__throw_out_of_range(__N("array::_M_check")); }
     };
 
   // Array comparisons.