From: Paolo Carlini Date: Thu, 28 Dec 2006 10:54:56 +0000 (+0000) Subject: array (array<>::_M_at): Remove. X-Git-Tag: releases/gcc-4.3.0~7809 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=975a4fc1a3818c84aafa85aa49915426305f7ae5;p=thirdparty%2Fgcc.git array (array<>::_M_at): Remove. 2006-12-28 Paolo Carlini * include/tr1/array (array<>::_M_at): Remove. (array<>::_M_check): Add. (array<>::at): Use the latter. From-SVN: r120242 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 4a251af43788..ae6549b045ed 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2006-12-28 Paolo Carlini + + * include/tr1/array (array<>::_M_at): Remove. + (array<>::_M_check): Add. + (array<>::at): Use the latter. + 2006-12-22 Paolo Carlini DR 541, [WP]. diff --git a/libstdc++-v3/include/tr1/array b/libstdc++-v3/include/tr1/array index 153f334a575b..23808b334620 100644 --- a/libstdc++-v3/include/tr1/array +++ b/libstdc++-v3/include/tr1/array @@ -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 - 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 - typename __gnu_cxx::__enable_if::__type - _M_at(size_type) - { - std::__throw_out_of_range(__N("array::_M_at")); - return _M_instance[0]; - } - - template - 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 - typename __gnu_cxx::__enable_if::__type - _M_at(size_type) const - { - std::__throw_out_of_range(__N("array::_M_at")); - return _M_instance[0]; - } + typename __gnu_cxx::__enable_if::__type + _M_check(size_type) const + { std::__throw_out_of_range(__N("array::_M_check")); } }; // Array comparisons.