diff options
author | Paolo Carlini <pcarlini@suse.de> | 2006-12-28 10:54:56 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2006-12-28 10:54:56 +0000 |
commit | 975a4fc1a3818c84aafa85aa49915426305f7ae5 (patch) | |
tree | 656e0c2e1846d9cc83ce28dab79c88b3382f701a /libstdc++-v3/include/tr1/array | |
parent | 036bcce8e4c7b41a6b432be21f65a8b50bf7de93 (diff) | |
download | gcc-975a4fc1a3818c84aafa85aa49915426305f7ae5.zip gcc-975a4fc1a3818c84aafa85aa49915426305f7ae5.tar.gz gcc-975a4fc1a3818c84aafa85aa49915426305f7ae5.tar.bz2 |
array (array<>::_M_at): Remove.
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
Diffstat (limited to 'libstdc++-v3/include/tr1/array')
-rw-r--r-- | libstdc++-v3/include/tr1/array | 43 |
1 files changed, 14 insertions, 29 deletions
diff --git a/libstdc++-v3/include/tr1/array b/libstdc++-v3/include/tr1/array index 153f334..23808b3 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<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. |