aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/include/tr1/array
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2006-12-28 10:54:56 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2006-12-28 10:54:56 +0000
commit975a4fc1a3818c84aafa85aa49915426305f7ae5 (patch)
tree656e0c2e1846d9cc83ce28dab79c88b3382f701a /libstdc++-v3/include/tr1/array
parent036bcce8e4c7b41a6b432be21f65a8b50bf7de93 (diff)
downloadgcc-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/array43
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.